Préparer la location pour le développement de fonctions

Pour permettre à une fonction d'accéder à une autre ressource Oracle Cloud Infrastructure, vous devez inclure la fonction dans un groupe dynamique, puis créer une stratégie permettant d'accorder l'accès dynamique au groupe à cette ressource.

Créer un groupe dynamique pour les fonctions

Les groupes dynamiques vous permettent de regrouper des instances d'ordinateur Oracle Cloud Infrastructure en tant qu'acteurs "principaux" (similaires à des groupes d'utilisateurs). Vous pouvez ensuite créer des stratégies permettant aux instances d'effectuer des appels API contre les services Oracle Cloud Infrastructure.

Lorsque vous créez un groupe dynamique, au lieu d'ajouter explicitement des membres au groupe, vous définissez plutôt un ensemble de règles de mise en correspondance pour définir les membres du groupe. Par exemple, une règle peut spécifier que toutes les instances d'un compartiment particulier sont membres du groupe dynamique. Les membres peuvent changer dynamiquement au fur et à mesure que les instances sont lancées et terminées dans ce compartiment.

  1. Ouvrez la console, cliquez sur Identité, puis sur Groupes dynamiques. La liste des groupes dynamiques dans la location s'affiche.
  2. Cliquez sur Créer un groupe dynamique.
  3. Entrez les informations suivantes :
    • Nom : nom unique pour le groupe. Le nom doit être unique pour tous les groupes de votre location (groupes dynamiques et groupes d'utilisateurs). Vous ne pouvez pas modifier cette valeur ultérieurement.
    • Description : Description conviviale. Vous ne pouvez pas le modifier dans la console, mais vous pouvez le modifier à l'aide de l'API.
  4. Entrez les règles de mise en correspondance. Les ressources qui répondent aux critères de règle sont membres du groupe.
    • Règle 1: pour permettre à toutes les fonctions d'un compartiment d'accéder à une ressource, entrez une règle semblable à la suivante, où <compartment_id> est l'OCID du compartiment où l'application et les fonctions associées seront déployées :
      ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_id>'}
    • Saisissez des règles supplémentaires selon vos besoins. Pour ajouter une règle, cliquez sur Règle +Additional.

  5. Si vous disposez des droits d'accès nécessaires pour créer une ressource, vous disposez également des droits d'accès nécessaires pour appliquer des balises de format libre à cette ressource. Pour appliquer une balise définie, vous devez disposer des droits d'accès nécessaires pour utiliser l'espace de noms de balise. Si vous ne savez pas si vous devez appliquer des balises, ignorez cette option (vous pouvez appliquer des balises ultérieurement) ou demandez à l'administrateur.
  6. Cliquez sur Créer un groupe dynamique.

    La syntaxe de règle de mise en correspondance est vérifiée, mais les OCID que vous avez utilisés dans les règles ne le sont pas. Assurez-vous que les OCID que vous saisissez sont corrects.

Créer des stratégies pour les fonctions

Une stratégie permet à un groupe de travailler de certaines manières avec des types de ressources spécifiques dans un compartiment particulier.

Le groupe et le compartiment pour lesquels vous écrivez la stratégie doivent déjà exister.

Les étapes suivantes ajoutent des règles au compartiment où l'application et les fonctions associées seront déployées, ainsi qu'au compartiment racine de l'instance.

  1. Ouvrez le menu de navigation. Sous Gouvernance et administration, cliquez sur Identité, puis sur Stratégies.
    La liste des stratégies dans le compartiment que vous visualisez apparaît.
  2. Dans la liste des compartiments de gauche, sélectionnez le compartiment dans lequel l'application et les fonctions associées seront déployées.
  3. Cliquez sur Créer une stratégie.
  4. Entrez les informations suivantes :
    • Nom : nom unique de la stratégie. Ce nom doit être unique pour toutes les stratégies de location. Vous ne pouvez pas le modifier ultérieurement.
    • Description : Description conviviale. Si vous le souhaitez, vous pouvez le modifier ultérieurement.
    • Versionnement de stratégie : sélectionnez Conserver la stratégie à jour si vous souhaitez que la stratégie reste à jour avec toute modification future des définitions de verbes et de ressources du service. Ou si vous préférez limiter l'accès selon les définitions en cours à une date donnée, sélectionnez Utiliser la date de version et entrez cette date au format AAAA-MM-JJ.
  5. Indiquez un énoncé de politique. Pour ajouter des instructions prédéfinies, cliquez sur Personnaliser (avancé).
    Ajoutez les instructions de stratégie suivantes dans lesquelles <group_name> est le nom du groupe dynamique associé et <compartment_name> le compartiment dans lequel l'application et les fonctions associées seront déployées :
    • Ajoutez les instructions suivantes pour permettre aux fonctions d'accéder aux ressources du compartiment :
      Allow dynamic-group <group_name> to manage buckets in compartment <compartment_name>
      Allow dynamic-group <group_name> to manage objects in compartment <compartment_name>
      allow dynamic-group <group_name> to use autonomous-databases in compartment <compartment_name> where request.permission='AUTONOMOUS_DATABASE_CONTENT_READ'
      Allow dynamic-group <group_name> to inspect instances in compartment <compartment_name>
      Allow service FaaS to use virtual-network-family in compartment <compartment_name>
      Allow group fleetAdmins to manage functions-family in compartment <compartment_name>
    • Ajoutez les instructions suivantes pour permettre à Oracle Cloud Infrastructure Events d'appeler des fonctions lors du téléchargement d'un fichier vers Oracle Cloud Infrastructure Object Storage :
      Allow dynamic-group <group_name> to inspect streams in compartment <compartment_name>
      Allow dynamic-group <group_name> to manage cloudevents-rules in compartment <compartment_name>
      Allow dynamic-group <group_name> to use stream-push in compartment <compartment_name>
      Allow dynamic-group <group_name> to use stream-pull in compartment <compartment_name>
  6. Cliquez sur Créer.
    La stratégie nouvellement créée est répertoriée avec les stratégies du compartiment.
  7. Dans la liste des compartiments à gauche, sélectionnez le compartiment racine (<instance-name> (root)) et répétez les étapes 3 et 4 ci-dessus.
  8. Indiquez un énoncé de politique. Pour ajouter des instructions prédéfinies, cliquez sur Personnaliser (avancé).
    Ajoutez les instructions de stratégie suivantes dans lesquelles <compartment_name> est le compartiment dans lequel l'application et les fonctions associées seront déployées :
    Allow service FaaS to manage repos in tenancy
    Allow service FaaS to use virtual-network-family in compartment <compartment_name>
  9. Cliquez sur Créer.
    La stratégie nouvellement créée est répertoriée avec les stratégies du compartiment racine.