Contrôle de l'accès à l'appel et à la gestion de fonctions

Découvrez comment contrôler les fonctions que les utilisateurs peuvent appeler et gérer dans OCI Functions.

Lors de la configuration d'une location pour le développement de fonctions, vous indiquez l'instruction de stratégie d'identité suivante (comme décrit dans Instructions de stratégie permettant aux utilisateurs OCI Functions d'accéder aux ressources liées aux fonctions) :

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

Cette stratégie d'identité permet aux utilisateurs authentifiés du groupe spécifié de gérer (c'est-à-dire de créer, de mettre à jour et de supprimer) des fonctions et des applications dans le compartiment nommé, ainsi que d'appeler des fonctions dans le compartiment. Cette stratégie répond généralement aux exigences des développeurs développant et testant plusieurs fonctions dans votre organisation.

Cependant, cette stratégie d'identité est peut-être trop permissive pour répondre aux exigences de sécurité relatives au contrôle de l'appel et de la gestion des fonctions dans les environnements de production. Par exemple, dans un environnement de production, vous souhaiterez peut-être empêcher les utilisateurs d'appeler entièrement des fonctions, ou les limiter à appeler les fonctions d'une application spécifique ou uniquement une fonction particulière.

Remarque

La spécification d'un sous-réseau privé pour une application n'empêche pas l'accès d'Internet aux adresses d'appel des fonctions de l'application. Utilisez des stratégies d'identité pour contrôler l'accès aux adresses 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 stratégies d'identité :

  1. Pour contrôler les fonctions qu'un utilisateur peut appeler et gérer, vérifiez qu'il ne figure pas dans un groupe auquel le droit d'accès manage functions-family a été accordé.

  2. Pour permettre aux utilisateurs d'un groupe de créer, de mettre à jour et de supprimer des applications et des fonctions dans un compartiment, mais leur interdire d'appeler des fonctions, entrez les instructions de stratégie suivantes :
    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 souhaitez autoriser les appels de fonctions particulières uniquement, ou les appels de fonctions dans des applications particulières uniquement, incluez les OCID de fonction et d'application appropriés dans les instructions de stratégie appropriées. Par exemple :

    • Pour permettre aux utilisateurs d'appeler toutes les fonctions d'une application spécifique, entrez une instruction de stratégie au 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 une instruction de stratégie au 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 de celles d'une application spécifique, entrez une instruction de stratégie au 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 une instruction de stratégie au 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 une instruction de stratégie au 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 spécifique, ainsi que toutes les fonctions d'une application spécifique, entrez une instruction de stratégie au 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 souhaitez autoriser l'appel de fonction et les demandes de gestion uniquement à partir d'adresses IP particulières :

    1. Créez une source réseau pour indiquer les adresses IP autorisées, si aucune source réseau appropriée n'existe déjà (reportez-vous à https://docs.oracle.com/iaas/Content/Identity/Tasks/managingnetworksources.htm).
    2. Ajoutez une instruction de stratégie pour permettre uniquement aux adresses IP de la source 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 réseau nommée corpnet, entrez une instruction de stratégie au 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 provenant d'adresses IP définies dans une source réseau nommée corpnet, entrez une instruction de stratégie au format suivant :

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