Contrôle de l'accès pour appeler et gérer des fonctions

Découvrez comment contrôler les fonctions que les utilisateurs peuvent appeler et gérer dans le service des fonctions pour OCI.

Lors de la configuration d'une location pour le développement de fonctions, vous spécifiez l'énoncé de politique d'identité suivant (comme décrit dans Énoncés de politique pour permettre aux utilisateurs du service des fonctions pour OCI d'accéder aux ressources liées aux fonctions) :

Allow group <group-name> to manage functions-family in compartment <compartment-name>

Cette politique d'identité permet aux utilisateurs authentifiés dans le groupe spécifié pour gérer (c'est-à-dire créer, mettre à jour et supprimer) des fonctions et des applications dans le compartiment nommé, et leur permet également d'appeler des fonctions dans le compartiment. Cette politique répond généralement aux exigences des développeurs de fonctions qui développent et testent de multiples fonctions dans votre organisation.

Toutefois, cette politique d'identité peut être trop permissive pour répondre aux exigences de sécurité liées au contrôle de l'appel et de la gestion des fonctions dans des environnements de production. Par exemple, dans un environnement de production, vous pourriez vouloir empêcher les utilisateurs d'appeler des fonctions dans leur intégralité ou vouloir les limiter à appeler des fonctions dans une application spécifique ou à appeler seulement une fonction spécifique.

Note

La spécification d'un sous-réseau privé pour une application n'empêche pas l'accès d'Internet aux points d'extrémité d'appel des fonctions de l'application. Utilisez des politiques d'identité pour contrôler l'accès aux points d'extrémité d'appel de fonction, comme décrit dans cette rubrique.

Pour contrôler les fonctions que les utilisateurs d'un groupe peuvent appeler et gérer, configurez des politiques d'identité :

  1. Pour contrôler les fonctions qu'un utilisateur peut appeler et gérer, confirmez qu'il ne se trouve pas dans un groupe ayant l'autorisation manage functions-family.

  2. Si vous voulez permettre aux utilisateurs d'un groupe de créer, mettre à jour et supprimer des applications et des fonctions dans un compartiment, mais pas d'appeler des fonctions, entrez les énoncés de politique suivants :
    Allow group <group-name> to manage fn-app in compartment <compartment-name>
    Allow group <group-name> to manage fn-function in compartment <compartment-name>
  3. Si vous voulez autoriser uniquement les appels de fonctions particulières, ou les appels de fonctions dans des applications particulières uniquement, incluez les OCID de fonction et d'application appropriés dans les énoncés de politique appropriés. Par exemple :

    • Pour permettre aux utilisateurs d'appeler toutes les fonctions d'une application spécifique, entrez un énoncé de politique dans le format suivant :
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where target.app.id = '<application-OCID>'
    • Pour permettre aux utilisateurs d'appeler une fonction spécifique, entrez un énoncé de politique dans le format suivant :
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where target.function.id = '<function-OCID>'
    • Pour permettre aux utilisateurs d'appeler toutes les fonctions de toutes les applications à l'exception des fonctions d'une application spécifique, entrez un énoncé de politique dans le format suivant :
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where target.app.id != '<application-OCID>'
    • Pour permettre aux utilisateurs d'appeler toutes les fonctions d'un compartiment à l'exception d'une fonction spécifique, entrez un énoncé de politique dans le format suivant :
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where target.function.id != '<function-OCID>'
    • Pour permettre aux utilisateurs d'appeler deux fonctions spécifiques, entrez un énoncé de politique dans le format suivant :
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where ANY {target.function.id='<function-OCID>', target.function.id='<function-OCID>'}
    • Pour permettre aux utilisateurs d'appeler une fonction particulière ainsi que toutes les fonctions d'une application spécifique, entrez un énoncé de politique dans le format suivant :
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where ANY {target.function.id='<function-OCID>', target.app.id='<application-OCID>'}
  4. Si vous voulez autoriser les demandes d'appel et de gestion de fonction uniquement à partir d'adresses IP particulières :

    1. Créez une source de réseau pour spécifier les adresses IP autorisées, si aucune source de réseau appropriée n'existe déjà (voir https://docs.oracle.com/iaas/Content/Identity/Tasks/managingnetworksources.htm).
    2. Ajoutez un énoncé de politique pour permettre uniquement aux adresses IP de la source de réseau d'appeler ou de gérer des fonctions. Par exemple :

      • Pour autoriser uniquement les demandes d'appel de fonction à partir d'adresses IP définies dans une source de réseau nommée corpnet, entrez un énoncé de politique dans le format suivant :

        Allow group <group-name> to use fn-invocation in compartment <compartment-name> where request.networkSource.name='corpnet'
      • Pour autoriser uniquement les demandes de gestion des fonctions à partir d'adresses IP définies dans une source de réseau nommée corpnet, entrez un énoncé de politique dans le format suivant :

        Allow group <group-name> to manage functions-family in compartment <compartment-name> where request.networkSource.name='corpnet'