Créer des rôles et les attribuer à des agents de service

Dans Google Cloud, des agents de service sont créés automatiquement au niveau du projet, du dossier et de l'organisation lorsque vous activez et utilisez des services Google Cloud. Parfois, ces agents de service se voient attribuer automatiquement des rôles qui leur permettent de créer des ressources et d'y accéder en votre nom.

Si nécessaire, vous pouvez également demander à Google Cloud de créer des agents de service au niveau du projet, du dossier et de l'organisation pour un service avant de l'utiliser. Si vous demandez à Google Cloud de créer des agents de service, vous pouvez attribuer des rôles à ces agents avant d'utiliser un service. Si un agent de service n'a pas encore été créé, vous ne pouvez pas lui attribuer de rôles.

Cette option peut s'avérer utile si vous utilisez l'une des stratégies suivantes pour gérer vos stratégies d'autorisation :

  • Un framework déclaratif comme Terraform. Si votre configuration Terraform n'inclut pas les rôles des agents de service, ils sont révoqués lorsque vous appliquez votre configuration. En créant des agents de service et en leur attribuant des rôles dans votre configuration Terraform, vous vous assurez que ces rôles ne sont pas révoqués.
  • Un système de codification des stratégies qui stocke des copies de vos stratégies d'autorisation actuelles dans un dépôt de code. Si vous laissez Google Cloud attribuer automatiquement des rôles aux agents de service, ceux-ci apparaissent dans votre stratégie d'autorisation proprement dite, mais pas dans la copie stockée de la stratégie d'autorisation. Pour résoudre cette incohérence, vous pouvez révoquer ces rôles à tort. En créant des agents de service et en leur attribuant des rôles de manière proactive, vous pouvez éviter les écarts entre votre dépôt de code et vos stratégies d'autorisation proprement dites.

Après avoir déclenché la création d'un agent de service, vous devez lui attribuer les rôles qui lui sont généralement accordés automatiquement. Sinon, certains services risquent de ne pas fonctionner correctement. En effet, les agents de service créés à la demande d'un utilisateur ne reçoivent pas automatiquement de rôles.

Avant de commencer

  • Activez Resource Manager API.

    Activer l'API

  • Familiarisez-vous avec les agents de service.

Rôles requis

Le déclenchement de la création d'un agent de service ne nécessite aucune autorisation IAM. Cependant, vous avez besoin d'autorisations IAM spécifiques pour les autres tâches de cette page :

  • Pour obtenir l'autorisation nécessaire pour répertorier les services disponibles et leurs points de terminaison, demandez à votre administrateur de vous accorder le rôle IAM Lecteur Service Usage (roles/serviceusage.serviceUsageViewer) sur le projet, le dossier ou l'organisation pour lesquels vous souhaitez répertorier les services disponibles. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

    Ce rôle prédéfini contient l'autorisation serviceusage.services.list, qui est nécessaire pour répertorier les services disponibles et leurs points de terminaison.

    Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

  • Pour obtenir les autorisations nécessaires pour accorder l'accès aux agents de service, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur le projet, le dossier ou l'organisation auxquels vous accordez l'accès dans les objectifs suivants :

    • Autoriser les agents de service à accéder à un projet : Administrateur de projet IAM (roles/resourcemanager.projectIamAdmin)
    • Autoriser les agents de service à accéder à un dossier : Administrateur de dossier (roles/resourcemanager.folderAdmin)
    • Autoriser les agents de service à accéder aux projets, aux dossiers et aux organisations : Administrateur d'organisation (roles/resourcemanager.organizationAdmin)

    Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

    Ces rôles prédéfinis contiennent les autorisations requises pour accorder l'accès aux agents de service. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :

    Autorisations requises

    Vous devez disposer des autorisations suivantes pour accorder l'accès aux agents de service :

    • Autoriser les agents de service à accéder à un projet :
      • resourcemanager.projects.getIamPolicy
      • resourcemanager.projects.setIamPolicy
    • Autoriser les agents de service à accéder à un dossier :
      • resourcemanager.folders.getIamPolicy
      • resourcemanager.folders.setIamPolicy
    • Autoriser les agents de service à accéder à une organisation :
      • resourcemanager.organizations.getIamPolicy
      • resourcemanager.organizations.setIamPolicy

    Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Identifier les agents de service à créer

Pour identifier les agents de service au niveau du projet, du dossier et de l'organisation que vous devez demander à Google Cloud de créer, procédez comme suit :

  1. Faites une liste des services que vous utilisez et des points de terminaison d'API associés. Pour afficher tous les services disponibles et leurs points de terminaison, utilisez l'une des méthodes suivantes :

    Console

    Accédez à la page Bibliothèque d'API de la console Google Cloud.

    Accéder à la bibliothèque d'API

    Le point de terminaison de l'API correspond au nom du service indiqué dans la section Informations supplémentaires.

    gcloud

    La commande gcloud services list répertorie tous les services disponibles pour un projet.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • EXPRESSION : facultatif. Expression permettant de filtrer les résultats. Par exemple, l'expression suivante filtre tous les services dont les noms contiennent googleapis.com, mais pas sandbox :

      name ~ googleapis.com AND name !~ sandbox

      Pour obtenir la liste des expressions de filtre, consultez gcloud topic filters.

    • LIMIT : facultatif. Nombre maximal de résultats à répertorier. La valeur par défaut est unlimited.

    Exécutez la commande suivante :

    Linux, macOS ou Cloud Shell

    gcloud services list --available --filter='EXPRESSION' --limit=LIMIT
    

    Windows (PowerShell)

    gcloud services list --available --filter='EXPRESSION' --limit=LIMIT
    

    Windows (cmd.exe)

    gcloud services list --available --filter='EXPRESSION' --limit=LIMIT
    

    La réponse contient les noms et les titres de tous les services disponibles. Le point de terminaison de l'API correspond à la valeur du champ NAME.

    REST

    La méthode services.list de l'API Service Usage répertorie tous les services disponibles pour un projet.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez répertorier les services disponibles. Utilisez projects, folders ou organizations.
    • RESOURCE_ID : ID du projet, du dossier ou de l'organisation Google Cloud pour lequel vous souhaitez répertorier les services disponibles. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.
    • PAGE_SIZE : facultatif. Nombre de services à inclure dans la réponse. La valeur par défaut est 50 et la valeur maximale 200. Si le nombre de services est supérieur à la taille de la page, la réponse contient un jeton de pagination que vous pouvez utiliser pour récupérer la page de résultats suivante.
    • NEXT_PAGE_TOKEN : facultatif. Jeton de pagination renvoyé dans une réponse précédente de cette méthode. Si spécifié, la liste des services commence à la fin de la requête précédente.

    Méthode HTTP et URL :

    GET https://serviceusage.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/services?pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN

    Pour envoyer votre requête, développez l'une des options suivantes :

    La réponse contient les noms et les titres de tous les services disponibles pour la ressource. Si le nombre de services disponibles est supérieur à la taille de la page, la réponse contient également un jeton de pagination.

    Le point de terminaison de l'API correspond à la valeur du champ name.

  2. Sur la page de référence des agents de service, recherchez chaque point de terminaison de l'API.

    Si le point de terminaison est répertorié dans la table, recherchez tous les agents de service de ce point de terminaison. Vous pouvez ignorer tous les agents de service dont l'adresse e-mail contient l'espace réservé IDENTIFIER. Ces agents sont destinés à des ressources spécifiques au service, et non à des projets, des dossiers ou des organisations.

    Pour chaque agent de service au niveau du projet, du dossier et de l'organisation, consignez les éléments suivants :

    • Format de l'adresse e-mail de l'agent de service
    • Rôle attribué à l'agent de service, le cas échéant

Déclencher la création d'un agent de service

Une fois que vous avez identifié les agents de service que vous devez créer, vous pouvez demander à Google Cloud de le faire.

Lorsque vous demandez à Google Cloud de créer des agents de service, vous lui fournissez un service et une ressource. Ensuite, Google Cloud crée tous les agents de service pour ce service et cette ressource.

gcloud

Pour chaque service pour lequel vous devez créer des agents de service, procédez comme suit :

  1. Vérifiez les adresses e-mail des agents de service pour le service. Utilisez les espaces réservés dans les adresses e-mail afin de déterminer les ressources pour lesquelles vous devez créer des agents de service :

    Espace réservé Où créer des agents de service
    PROJECT_NUMBER Chaque projet dans lequel vous utiliserez le service
    FOLDER_NUMBER Chaque dossier dans lequel vous utiliserez le service
    ORGANIZATION_NUMBER Chaque organisation dans laquelle vous utiliserez le service

  2. Créez des agents de service pour chaque ressource.

    La commande gcloud beta services identity create crée tous les agents de service pour l'API et la ressource spécifiées.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • ENDPOINT : point de terminaison de l'API pour lequel vous souhaitez créer un agent de service, par exemple aiplatform.googleapis.com.
    • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez créer un agent de service. Utilisez project, folder ou organization.
    • RESOURCE_ID : ID du projet, du dossier ou de l'organisation Google Cloud pour lequel vous souhaitez créer un agent de service. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.

      Vous pouvez créer des agents de service pour une ressource à la fois. Si vous devez créer des agents de service pour plusieurs ressources, exécutez la commande une fois pour chaque ressource.

    Exécutez la commande suivante :

    Linux, macOS ou Cloud Shell

    gcloud beta services identity create --service=ENDPOINT \
        --RESOURCE_TYPE=RESOURCE_ID
    

    Windows (PowerShell)

    gcloud beta services identity create --service=ENDPOINT `
        --RESOURCE_TYPE=RESOURCE_ID
    

    Windows (cmd.exe)

    gcloud beta services identity create --service=ENDPOINT ^
        --RESOURCE_TYPE=RESOURCE_ID
    

    La réponse contient l'adresse e-mail de l'agent de service principal du service. Cette adresse e-mail inclut l'ID numérique du projet, du dossier ou de l'organisation pour lequel vous avez créé des agents de service.

    Si le service ne dispose pas d'un agent de service principal, la réponse ne contient pas d'adresse e-mail.

    Voici un exemple de réponse pour un service comportant un agent de service principal.

    Service identity created: service-232332569935@gcp-sa-aiplatform.iam.gserviceaccount.com
    

  3. (Facultatif) Consignez l'adresse e-mail de l'agent de service dans la réponse, le cas échéant. Cette adresse e-mail identifie l'agent de service principal du service. Vous pouvez utiliser cet identifiant pour attribuer des rôles à l'agent de service principal.

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.

Pour chaque service pour lequel vous devez créer des agents de service, procédez comme suit :

  1. Vérifiez les adresses e-mail des agents de service pour le service. Utilisez les espaces réservés dans les adresses e-mail afin de déterminer les ressources pour lesquelles vous devez créer des agents de service :

    Espace réservé Où créer des agents de service
    PROJECT_NUMBER Chaque projet dans lequel vous utiliserez le service
    FOLDER_NUMBER Chaque dossier dans lequel vous utiliserez le service
    ORGANIZATION_NUMBER Chaque organisation dans laquelle vous utiliserez le service

  2. Créez des agents de service pour chaque ressource. Par exemple, le code suivant crée tous les agents de service au niveau du projet pour AI Platform :

data "google_project" "default" {
}

# Create all project-level aiplatform.googleapis.com service agents
resource "google_project_service_identity" "default" {
  provider = google-beta

  project = data.google_project.default.project_id
  service = "aiplatform.googleapis.com"
}

REST

Pour chaque service pour lequel vous devez créer des agents de service, procédez comme suit :

  1. Vérifiez les adresses e-mail des agents de service pour le service. Utilisez les espaces réservés dans les adresses e-mail afin de déterminer les ressources pour lesquelles vous devez créer des agents de service :

    Espace réservé Où créer des agents de service
    PROJECT_NUMBER Chaque projet dans lequel vous utiliserez le service
    FOLDER_NUMBER Chaque dossier dans lequel vous utiliserez le service
    ORGANIZATION_NUMBER Chaque organisation dans laquelle vous utiliserez le service

  2. Créez des agents de service pour chaque ressource.

    La méthode services.generateServiceIdentity de l'API Service Usage crée tous les agents de service pour l'API et la ressource spécifiées.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez créer un agent de service. Utilisez projects, folders ou organizations.
    • RESOURCE_ID : ID du projet, du dossier ou de l'organisation Google Cloud pour lequel vous souhaitez créer des agents de service. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.

      Vous pouvez créer des agents de service pour une ressource à la fois. Si vous devez créer des agents de service pour plusieurs ressources, envoyez une requête pour chaque ressource.

    • ENDPOINT : point de terminaison de l'API pour lequel vous souhaitez créer un agent de service, par exemple aiplatform.googleapis.com.

    Méthode HTTP et URL :

    POST https://serviceusage.googleapis.com/v1beta1/RESOURCE_TYPE/RESOURCE_ID/services/ENDPOINT:generateServiceIdentity

    Pour envoyer votre requête, développez l'une des options suivantes :

    La réponse contient une Operation qui indique l'état de votre requête. Pour suivre l'état de l'opération, utilisez la méthode operations.get.

    Les opérations terminées contiennent l'adresse e-mail de l'agent de service principal du service. Cette adresse e-mail inclut l'ID numérique du projet, du dossier ou de l'organisation pour lequel vous avez créé des agents de service.

    Si le service ne dispose pas d'un agent de service principal, la réponse ne contient pas d'adresse e-mail.

    Voici un exemple d'opération terminée pour un service disposant d'un agent de service principal.

    {
      "name": "operations/finished.DONE_OPERATION",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.api.serviceusage.v1beta1.ServiceIdentity",
        "email": "service-232332569935@gcp-sa-aiplatform.iam.gserviceaccount.com",
        "uniqueId": "112245693826560101651"
      }
    }
    

  3. (Facultatif) Consignez l'adresse e-mail de l'agent de service dans la réponse, le cas échéant. Cette adresse e-mail identifie l'agent de service principal du service. Vous pouvez utiliser cet identifiant pour attribuer des rôles à l'agent de service principal.

Attribuer des rôles aux agents de service

Une fois que Google Cloud a créé les agents de service nécessaires pour vos projets, dossiers et organisations, vous devez utiliser les adresses e-mail des agents de service pour leur attribuer des rôles.

Si vous avez demandé à Google Cloud de créer des agents de service, vous devez attribuer à ces agents les rôles qui leur sont généralement attribués automatiquement. Sinon, certains services risquent de ne pas fonctionner correctement. En effet, les agents de service créés à la demande d'un utilisateur ne reçoivent pas automatiquement de rôles.

Pour savoir comment identifier les rôles attribués automatiquement, consultez la section Identifier les agents de service à créer.

Rechercher l'adresse e-mail d'un agent de service

Pour trouver l'adresse e-mail d'un agent de service, procédez comme suit :

gcloud

  1. Si vous ne l'avez pas déjà fait, recherchez le format de l'adresse e-mail de l'agent de service. Ce format est décrit dans la documentation de référence sur les agents de service.

  2. Remplacez tous les espaces réservés dans l'adresse e-mail par le numéro de projet, de dossier ou d'organisation correspondant.

Si l'agent de service est un agent de service principal, vous pouvez obtenir son adresse e-mail en déclenchant la création d'un agent de service pour le service. La commande permettant de déclencher la création d'un agent de service renvoie l'adresse e-mail de l'agent de service principal.

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.

  1. Si vous ne l'avez pas déjà fait, recherchez le format de l'adresse e-mail de l'agent de service. Ce format est décrit dans la documentation de référence sur les agents de service.

  2. Remplacez les espaces réservés dans l'adresse e-mail par des expressions qui font référence au numéro de projet, de dossier ou d'organisation approprié.

    Prenons l'exemple suivant :

    • Le format de l'adresse e-mail est service-PROJECT_NUMBER@gcp-sa-aiplatform-cc.iam.gserviceaccount.com.
    • L'agent de service est destiné à un projet étiqueté default.

    Dans ce cas, l'adresse e-mail de l'agent de service est la suivante :

    service-${data.google_project.default.number}@gcp-sa-aiplatform-cc.iam.gserviceaccount.com
    

Si un agent de service est l'agent de service principal, vous pouvez obtenir son adresse e-mail à partir de l'attribut email de la ressource google_project_service_identity.

Par exemple, si vous disposez d'un bloc google_project_service_identity étiqueté default, vous pouvez obtenir l'adresse e-mail de l'agent de service principal du service à l'aide de l'expression suivante :

${google_project_service_identity.default.email}

REST

  1. Si vous ne l'avez pas déjà fait, recherchez le format de l'adresse e-mail de l'agent de service. Ce format est décrit dans la documentation de référence sur les agents de service.

  2. Remplacez tous les espaces réservés dans l'adresse e-mail par le numéro de projet, de dossier ou d'organisation correspondant.

Si l'agent de service est un agent de service principal, vous pouvez obtenir son adresse e-mail en déclenchant la création d'un agent de service pour le service. La commande permettant de déclencher la création d'un agent de service renvoie l'adresse e-mail de l'agent de service principal.

Attribuer un rôle à l'agent de service

Une fois que vous avez trouvé l'adresse e-mail de l'agent de service, vous pouvez lui attribuer un rôle, comme vous le feriez pour un autre compte principal.

Console

  1. Dans la console Google Cloud, accédez à la page IAM.

    Accéder à IAM

  2. Sélectionnez un projet, un dossier ou une organisation.

  3. Cliquez sur  Accorder l'accès, puis saisissez l'adresse e-mail de l'agent de service.

  4. Sélectionnez un rôle à attribuer dans la liste déroulante.

  5. Facultatif : ajoutez une condition au rôle.

  6. Cliquez sur Enregistrer. Le rôle est attribué à l'agent de service sur la ressource.

gcloud

La commande add-iam-policy-binding vous permet d'attribuer rapidement un rôle à un compte principal.

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • RESOURCE_TYPE : type de ressource dont vous souhaitez gérer l'accès. Utilisez projects, resource-manager folders ou organizations.

  • RESOURCE_ID : ID de votre projet, dossier ou organisation Google Cloud. Les ID de projets sont alphanumériques, par exemple my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.

  • PRINCIPAL : identifiant du compte principal ou membre, se présentant généralement sous la forme suivante : PRINCIPAL_TYPE:ID. Exemple : user:my-user@example.com Pour obtenir la liste complète des valeurs possibles pour PRINCIPAL, consultez la documentation de référence sur les liaisons de stratégie.

    Pour le type de compte principal user, le nom de domaine indiqué dans l'identifiant doit être un domaine Google Workspace ou Cloud Identity. Pour savoir comment configurer un domaine Cloud Identity, consultez la présentation de Cloud Identity.

  • ROLE_NAME : nom du rôle que vous souhaitez révoquer. Utilisez l'un des formats suivants :

    • Rôles prédéfinis : roles/SERVICE.IDENTIFIER
    • Rôles personnalisés au niveau du projet : projects/PROJECT_ID/roles/IDENTIFIER
    • Rôles personnalisés au niveau de l'organisation: organizations/ORG_ID/roles/IDENTIFIER

    Pour obtenir la liste complète des rôles prédéfinis, consultez la page Comprendre les rôles.

  • CONDITION : condition à ajouter à la liaison de rôle. Si vous ne souhaitez pas ajouter de condition, utilisez la valeur None. Pour en savoir plus sur les conditions, consultez la présentation des conditions.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \
    --member=PRINCIPAL --role=ROLE_NAME \
    --condition=CONDITION

Windows (PowerShell)

gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID `
    --member=PRINCIPAL --role=ROLE_NAME `
    --condition=CONDITION

Windows (cmd.exe)

gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ^
    --member=PRINCIPAL --role=ROLE_NAME ^
    --condition=CONDITION

La réponse contient la stratégie IAM mise à jour.

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.

# Grant the AI Platform Custom Code Service Account the Vertex AI Custom
# Code Service Agent role (roles/aiplatform.customCodeServiceAgent)
resource "google_project_iam_member" "custom_code" {
  project = data.google_project.default.project_id
  role    = "roles/aiplatform.customCodeServiceAgent"
  member  = "serviceAccount:service-${data.google_project.default.number}@gcp-sa-aiplatform-cc.iam.gserviceaccount.com"
}

# Grant the primary aiplatform.googleapis.com service agent (AI Platform
# Service Agent) the Vertex AI Service Agent role
# (roles/aiplatform.serviceAgent)
resource "google_project_iam_member" "primary" {
  project = data.google_project.default.project_id
  role    = "roles/aiplatform.serviceAgent"
  member  = "serviceAccount:${google_project_service_identity.default.email}"
}

REST

Pour attribuer un rôle à l'aide de l'API REST, utilisez le schéma lire-modifier-écrire :

  1. Lisez la stratégie d'autorisation actuelle en appelant getIamPolicy().

    La méthode getIamPolicy de l'API Resource Manager permet d'obtenir la stratégie d'autorisation d'un projet, d'un dossier ou d'une organisation.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • API_VERSION : version de l'API à utiliser. Pour les projets et les organisations, utilisez v1. Pour les dossiers, utilisez v2.
    • RESOURCE_TYPE : type de ressource dont vous souhaitez gérer la stratégie. Utilisez la valeur projects, folders ou organizations.
    • RESOURCE_ID : ID du projet, de l'organisation ou du dossier Google Cloud. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.
    • POLICY_VERSION : version de la stratégie à renvoyer. Les requêtes doivent spécifier la version de stratégie la plus récente, qui est la version 3. Pour plus d'informations, consultez la section Spécifier une version de stratégie lors de l'obtention d'une stratégie.

    Méthode HTTP et URL :

    POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy

    Corps JSON de la requête :

    {
      "options": {
        "requestedPolicyVersion": POLICY_VERSION
      }
    }
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    La réponse contient la stratégie d'autorisation de la ressource. Par exemple :

    {
      "version": 1,
      "etag": "BwWKmjvelug=",
      "bindings": [
        {
          "role": "roles/owner",
          "members": [
            "user:owner@example.com"
          ]
        }
      ]
    }
    

  2. Modifiez la stratégie d'autorisation de la ressource à l'aide d'un éditeur de texte ou de manière automatisée pour ajouter ou supprimer des comptes principaux ou des liaisons de rôles. Par exemple, vous pouvez ajouter une liaison de rôle, supprimer une liaison de rôle existante, ou ajouter ou supprimer des comptes principaux d'une liaison de rôle existante.

  3. Écrivez la stratégie d'autorisation mise à jour en appelant setIamPolicy().

    La méthode setIamPolicy de l'API Resource Manager définit la stratégie de la requête comme nouvelle stratégie d'autorisation pour le projet, le dossier ou l'organisation.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • API_VERSION : version de l'API à utiliser. Pour les projets et les organisations, utilisez v1. Pour les dossiers, utilisez v2.
    • RESOURCE_TYPE : type de ressource dont vous souhaitez gérer la stratégie. Utilisez la valeur projects, folders ou organizations.
    • RESOURCE_ID : ID du projet, de l'organisation ou du dossier Google Cloud. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.
    • POLICY : représentation JSON de la stratégie que vous souhaitez définir. Pour en savoir plus sur le format d'une stratégie, consultez la documentation de référence sur les stratégies.

    Méthode HTTP et URL :

    POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy

    Corps JSON de la requête :

    {
      "policy": POLICY
    }
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    La réponse contient la stratégie d'autorisation mise à jour.

Étapes suivantes