Créer et appliquer des stratégies de limite d'accès des comptes principaux

Les stratégies de limite d'accès des comptes principaux (PAB, Principal Access Boundary) vous permettent de limiter les ressources auxquelles un ensemble de comptes principaux est autorisé à accéder. Cette page explique comment créer et appliquer des stratégies de limite d'accès des comptes principaux.

Avant de commencer

  • Configurez l'authentification.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

  • Consultez la présentation des stratégies de limite d'accès des comptes principaux.

Rôles requis pour créer des stratégies de limite d'accès des comptes principaux

Pour obtenir l'autorisation nécessaire pour créer des stratégies de limite d'accès des principaux, demandez à votre administrateur de vous accorder le rôle IAM Administrateur des limites d'accès des principaux (roles/iam.principalAccessBoundaryAdmin) dans votre organisation. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l'autorisation iam.principalaccessboundarypolicies.create, qui est nécessaire pour créer des stratégies de limite d'accès des comptes principaux.

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

Rôles requis pour appliquer des stratégies de limite d'accès des comptes principaux

Les autorisations dont vous avez besoin pour appliquer une stratégie de limite d'accès des comptes principaux dépendent de l'ensemble de comptes principaux auquel vous souhaitez appliquer la stratégie.

Pour obtenir les autorisations nécessaires pour appliquer des stratégies de limite d'accès des principaux, demandez à votre administrateur de vous accorder les rôles IAM suivants:

  • Utilisateur de la limite d'accès des comptes principaux (roles/iam.principalAccessBoundaryUser) sur l'organisation
  • Appliquez des stratégies de limite d'accès des comptes principaux aux pools de fédération des identités des employés : Administrateur de pools d'employés IAM (roles/iam.workforcePoolAdmin) sur le pool de fédération des identités des employés cible.
  • Appliquez des stratégies de limite d'accès des comptes principaux aux pools de fédération d'identité de charge de travail : Administrateur de pools d'identités de charge de travail IAM (roles/iam.workloadIdentityPoolAdmin) sur le projet propriétaire du pool de fédération d'identité de personnel cible.
  • Appliquer des stratégies de limite d'accès des comptes principaux à un domaine Google Workspace : Administrateur IAM de pools d'espaces de travail (roles/iam.workspacePoolAdmin) de l'organisation
  • Appliquer des stratégies de limite d'accès des comptes principaux à l'ensemble de comptes principaux d'un projet : Administrateur IAM du projet (roles/resourcemanager.projectIamAdmin) sur le projet
  • Appliquer des stratégies de limite d'accès des comptes principaux à l'ensemble de comptes principaux d'un dossier : Administrateur IAM du dossier (roles/resourcemanager.folderIamAdmin) sur le dossier
  • Appliquer des stratégies de limite d'accès des comptes principaux à un ensemble de comptes principaux d'une organisation : Administrateur de l'organisation (roles/resourcemanager.organizationAdmin) de l'organisation

Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour appliquer des stratégies de limite d'accès des comptes principaux. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour appliquer des stratégies de limite d'accès des comptes principaux:

  • iam.principalaccessboundarypolicies.bind sur l'organisation
  • Appliquez des stratégies de limite d'accès des comptes principaux aux pools de fédération d'identités de personnel : iam.workforcePools.createPolicyBinding sur le pool de fédération d'identités de personnel cible
  • Appliquez des stratégies de limite d'accès des comptes principaux aux pools de fédération d'identité de charge de travail : iam.workloadIdentityPools.createPolicyBinding sur le projet propriétaire du pool de fédération d'identité de personnel cible
  • Appliquer des stratégies de limite d'accès des comptes principaux à un domaine Google Workspace : iam.workspacePools.createPolicyBinding sur l'organisation
  • Appliquer des stratégies de limite d'accès des comptes principaux à un ensemble de comptes principaux d'un projet : resourcemanager.projects.createPolicyBinding sur le projet
  • Appliquer des stratégies de limite d'accès des comptes principaux à l'ensemble de comptes principaux d'un dossier : resourcemanager.folders.createPolicyBinding sur le dossier
  • Appliquer des stratégies de limite d'accès des comptes principaux à l'ensemble de comptes principaux d'une organisation : resourcemanager.organizations.createPolicyBinding sur l'organisation

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

Créer une stratégie de limite d'accès des comptes principaux

Vous pouvez créer une stratégie de limite d'accès des comptes principaux à l'aide de la console Google Cloud, de gcloud CLI ou de l'API REST IAM.

Console

  1. Dans la console Google Cloud, accédez à la page Stratégies de limite d'accès des principaux.

    Accéder aux stratégies de limite d'accès des comptes principaux

  2. Sélectionnez l'organisation pour laquelle vous souhaitez créer des stratégies de limite d'accès des comptes principaux.

  3. Cliquez sur Créer une règle.

  4. Ajoutez des règles de limite d'accès des comptes principaux à la stratégie:

    1. Cliquez sur  Ajouter une règle de limite.
    2. Dans le champ Description, ajoutez une description de la règle de stratégie de limite d'accès des comptes principaux. La description ne doit pas dépasser 256 caractères.
    3. Dans la section Ressources, saisissez toutes les ressources Resource Manager (projets, dossiers et organisations) auxquelles vous souhaitez que les principaux puissent accéder. Tout compte principal soumis à cette stratégie peut accéder à ces ressources.

      Chaque stratégie de limite d'accès des comptes principaux peut référencer au maximum 500 ressources pour l'ensemble des règles de la stratégie.

    4. Cliquez sur OK.

    5. Pour ajouter d'autres règles de stratégie, répétez cette procédure. Chaque stratégie de limite d'accès des comptes principaux peut contenir jusqu'à 500 règles.

  5. Dans la section Nom de la règle, saisissez un nom pour la règle. Le nom ne peut pas comporter plus de 63 caractères.

  6. Dans la liste Version d'application, sélectionnez la version d'application de la stratégie. La version de la stratégie de limite d'accès des comptes principaux détermine les autorisations pour lesquelles IAM applique la stratégie de limite d'accès des comptes principaux.

    Pour en savoir plus sur les versions d'application, consultez la section Versions d'application de la limite d'accès des comptes principaux.

  7. Cliquez sur Créer.

gcloud

La commande gcloud beta iam principal-access-boundary-policies create crée une stratégie de limite d'accès des comptes principaux.

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

  • ORG_ID: ID de l'organisation dans laquelle vous souhaitez créer la stratégie de limite d'accès des comptes principaux. Les identifiants des organisations sont numériques, comme 123456789012.
  • PAB_POLICY_ID: ID unique de la règle de limite d'accès des comptes principaux (par exemple, example-policy). :
  • DISPLAY_NAME : facultatif. Description lisible de la stratégie de limite d'accès des comptes principaux (par exemple, Example policy). Le nom à afficher ne peut pas comporter plus de 63 caractères.
  • FILE_PATH: chemin d'accès à un fichier JSON contenant les détails de la règle de stratégie de limite d'accès des principaux. Ce fichier doit respecter le format suivant:

    {
      "description": DESCRIPTION,
      "resources": [
        RESOURCES
      ],
      "effect": ALLOW
    }
        

    Remplacez les valeurs suivantes :

    • DESCRIPTION : facultatif. Description de la règle de stratégie de limite d'accès des comptes principaux. La description ne doit pas dépasser 256 caractères.
    • RESOURCES: liste des ressources Resource Manager (projets, dossiers et organisations) auxquelles les comptes principaux doivent pouvoir accéder. Tout compte principal soumis à cette stratégie peut accéder à ces ressources.

      Chaque stratégie de limite d'accès des comptes principaux peut faire référence à un maximum de 500 ressources pour l'ensemble des règles de la stratégie.

  • ENFORCEMENT_VERSION: version des stratégies de limite d'accès des comptes principaux utilisée par IAM lors de l'application de la stratégie. La version d'application détermine les autorisations pour lesquelles IAM applique la stratégie de limite d'accès des comptes principaux.

    Les valeurs acceptées sont 1 et latest.

    Pour en savoir plus sur les versions d'application, consultez la section Versions d'application de la limite d'accès des comptes principaux.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud beta iam principal-access-boundary-policies create PAB_POLICY_ID \
    --organization=ORG_ID --location=global \
    --display-name=DISPLAY_NAME --details-rules=FILE_PATH.json \
    --details-enforcement-version=ENFORCEMENT_VERSION

Windows (PowerShell)

gcloud beta iam principal-access-boundary-policies create PAB_POLICY_ID `
    --organization=ORG_ID --location=global `
    --display-name=DISPLAY_NAME --details-rules=FILE_PATH.json `
    --details-enforcement-version=ENFORCEMENT_VERSION

Windows (cmd.exe)

gcloud beta iam principal-access-boundary-policies create PAB_POLICY_ID ^
    --organization=ORG_ID --location=global ^
    --display-name=DISPLAY_NAME --details-rules=FILE_PATH.json ^
    --details-enforcement-version=ENFORCEMENT_VERSION

La réponse contient une opération de longue durée représentant votre requête.

Create request issued for: [example-policy]
Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715373988044-6181fa136df85-3b06a30a-4816d25b] to complete...done.
Created principalAccessBoundaryPolicy [example-policy].

REST

La méthode principalAccessBoundaryPolicies.create crée une stratégie de limite d'accès des comptes principaux.

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

  • ORG_ID: ID de l'organisation dans laquelle vous souhaitez créer la stratégie de limite d'accès des comptes principaux. Les identifiants des organisations sont numériques, comme 123456789012.
  • PAB_POLICY_ID: ID unique de la règle de limite d'accès des comptes principaux (par exemple, example-policy).
  • DISPLAY_NAME : facultatif. Description lisible de la stratégie de limite d'accès des comptes principaux (par exemple, Example policy). Le nom à afficher ne peut pas comporter plus de 63 caractères.
  • PAB_RULES: liste des règles de limite d'accès des comptes principaux, qui définissent les ressources auxquelles les comptes principaux concernés peuvent accéder. Une stratégie de limite d'accès des comptes principaux peut contenir jusqu'à 500 règles. Chaque règle se présente sous la forme suivante:

    {
    "description": "DESCRIPTION",
    "resources": [
      RESOURCES
    ],
    "effect": ALLOW
    }

    Remplacez les valeurs suivantes :

    • DESCRIPTION : facultatif. Description de la règle de stratégie de limite d'accès des comptes principaux. La description ne doit pas dépasser 256 caractères.
    • RESOURCES: liste des ressources Resource Manager (projets, dossiers et organisations) auxquelles vous souhaitez que les comptes principaux puissent accéder. Tout compte principal soumis à cette stratégie peut accéder à ces ressources.

      Chaque stratégie de limite d'accès des comptes principaux peut référencer un maximum de 500 ressources pour l'ensemble des règles de la stratégie.

  • ENFORCEMENT_VERSION: version des stratégies de limite d'accès des comptes principaux utilisée par IAM lors de l'application de la stratégie. La version d'application détermine les autorisations pour lesquelles IAM applique la stratégie de limite d'accès des comptes principaux.

    Les valeurs acceptées sont 1 et latest.

    Pour en savoir plus sur les versions d'application, consultez la section Versions d'application de la limite d'accès des comptes principaux.

Méthode HTTP et URL :

POST https://iam.googleapis.com/v3beta/organizations/ORG_ID/locations/global?principalAccessBoundaryPolicyId=PAB_POLICY_ID

Corps JSON de la requête :

{
  "displayName": DISPLAY_NAME,
  "details": {
    "rules": [
      PAB_RULES
    ],
    "effect": ALLOW
    }
  ],
  "enforcementVersion": "ENFORCEMENT_VERSION"
}

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

La réponse contient une opération de longue durée représentant votre requête.

{
  "name": "organizations/123456789012/locations/global/operations/operation-1715373120647-6181f6d8371d2-83309b71-2b8a7532",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata",
    "createTime": "2024-05-10T20:32:00.898809495Z",
    "target": "organizations/123456789012/locations/global/policyBindings/example-policy",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v3beta"
  },
  "done": false
}

Appliquer une stratégie de limite d'accès des comptes principaux à un ensemble de comptes principaux

Pour appliquer une stratégie de limite d'accès des comptes principaux à un ensemble de comptes principaux, créez une ressource de liaison de stratégie qui lie la stratégie à l'ensemble de comptes principaux. Une fois que vous avez créé une liaison de stratégie, la stratégie de limite d'accès des comptes principaux de la liaison est appliquée aux comptes principaux de la liaison.

Vous pouvez créer une association de stratégies à l'aide de la console Google Cloud, de gcloud CLI ou de l'API REST IAM.

Console

  1. Dans la console Google Cloud, accédez à la page Stratégies de limite d'accès des principaux.

    Accéder aux stratégies de limite d'accès des comptes principaux

  2. Sélectionnez l'organisation propriétaire de la stratégie de limite d'accès des comptes principaux pour laquelle vous souhaitez créer une liaison.

  3. Cliquez sur l'ID de la stratégie de limite d'accès des comptes principaux pour laquelle vous souhaitez créer une liaison.

  4. Cliquez sur l'onglet Liaison, puis sur Ajouter une liaison.

  5. Saisissez les informations de liaison:

    1. Facultatif: dans le champ Nom à afficher, saisissez un nom à afficher pour la liaison. Le nom à afficher ne peut pas comporter plus de 63 caractères.
    2. Dans le champ ID de liaison, saisissez un nom unique pour la liaison (par exemple, example-binding).
    3. Dans la section Ensemble de comptes principaux cible, saisissez le type et l'ID de l'ensemble de comptes principaux auquel vous souhaitez lier la stratégie. Vous ne pouvez pas modifier cette valeur une fois que vous avez créé la liaison de règles.

      Pour en savoir plus sur les comptes principaux inclus dans chaque ensemble de comptes principaux, consultez la section Ensembles de comptes principaux compatibles.

  6. Facultatif: Pour spécifier les comptes principaux de l'ensemble de comptes principaux auxquels la stratégie de limite d'accès des comptes principaux s'applique, ajoutez une condition à la liaison:

    1. Cliquez sur  Ajouter une condition.
    2. Dans le champ Title (Titre), saisissez un bref résumé de l'objectif de la condition.
    3. Facultatif: Dans le champ Description, saisissez une description plus détaillée de la condition.
    4. Dans le champ Expression, saisissez l'expression de condition qui utilise la syntaxe CEL (Common Expression Language). L'expression doit faire référence aux attributs principal.type ou principal.subject. Les autres attributs ne sont pas acceptés.
    5. Cliquez sur Enregistrer.
  7. Pour créer l'association, cliquez sur Ajouter.

gcloud

La commande gcloud beta iam policy-bindings create crée une liaison de stratégie.

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

  • BINDING_ID: nom unique de la liaison de stratégie (par exemple, example-binding).
  • RESOURCE_TYPE : type de la ressource Resource Manager (projet, dossier ou organisation) dont l'association de stratégies est un enfant. Utilisez la valeur project, folder ou organization.

    Le type de ressource dépend de l'ensemble de comptes principaux défini dans la liaison de stratégies. Pour savoir quel type de ressource utiliser, consultez la section Types de comptes principaux compatibles.

  • RESOURCE_ID : ID du projet, du dossier ou de l'organisation dont l'association de stratégies est un enfant. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossiers et d'organisations sont numériques, tels que 123456789012.
  • ORG_ID: ID de l'organisation propriétaire de la stratégie de limite d'accès des comptes principaux que vous souhaitez lier à l'ensemble de comptes principaux. Les identifiants des organisations sont numériques, comme 123456789012.
  • PAB_POLICY_ID: ID de la stratégie de limite d'accès des comptes principaux que vous souhaitez lier à l'ensemble de comptes principaux (par exemple, example-pab-policy). Vous ne pouvez pas modifier cette valeur une fois la liaison de règles créée.
  • PRINCIPAL_SET: ensemble de comptes principaux auquel vous souhaitez lier la stratégie. Pour obtenir la liste des types de comptes principaux valides, consultez la section Ensembles de comptes principaux compatibles. Vous ne pouvez pas modifier cette valeur une fois que vous avez créé la liaison de règles.
  • DISPLAY_NAME : facultatif. Description lisible de la liaison (par exemple, Example binding). Le nom à afficher ne peut pas comporter plus de 63 caractères.
  • CONDITION_DETAILS : facultatif. Expression de condition qui spécifie les comptes principaux de l'ensemble de comptes principaux pour lesquels la stratégie de limite d'accès des comptes principaux est appliquée. Contient les champs suivants:

    • expression: expression de condition qui utilise la syntaxe CEL (Common Expression Language). L'expression doit faire référence aux attributs principal.type ou principal.subject. Les autres attributs ne sont pas acceptés.

      L'expression peut contenir jusqu'à 10 opérateurs logiques (&&, ||, !) et peut comporter jusqu'à 250 caractères.

    • title : facultatif. Un bref résumé de l'objectif de la condition.
    • description : facultatif. Une description plus longue de la condition.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud beta iam policy-bindings create BINDING_ID \
    --RESOURCE_TYPE=RESOURCE_ID --location=global \
    --policy="organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID" \
    --target-principal-set=PRINCIPAL_SET_ID \
    --display-name=DISPLAY_NAME \
    CONDITION_DETAILS

Windows (PowerShell)

gcloud beta iam policy-bindings create BINDING_ID `
    --RESOURCE_TYPE=RESOURCE_ID --location=global `
    --policy="organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID" `
    --target-principal-set=PRINCIPAL_SET_ID `
    --display-name=DISPLAY_NAME `
    CONDITION_DETAILS

Windows (cmd.exe)

gcloud beta iam policy-bindings create BINDING_ID ^
    --RESOURCE_TYPE=RESOURCE_ID --location=global ^
    --policy="organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID" ^
    --target-principal-set=PRINCIPAL_SET_ID ^
    --display-name=DISPLAY_NAME ^
    CONDITION_DETAILS

La réponse contient une opération de longue durée représentant votre requête.

Create request issued for: [example-binding]
Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374545618-6181fc272c6f9-55ff07f4-97d0ac76] to complete...done.
Created policyBinding [example-binding].

REST

La méthode policyBindings.create crée une liaison de stratégie.

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

  • RESOURCE_TYPE : type de la ressource Resource Manager (projet, dossier ou organisation) dont l'association de stratégies est un enfant. Utilisez la valeur projects, folders ou organizations.

    Le type de ressource dépend de l'ensemble de comptes principaux défini dans la liaison de stratégies. Pour savoir quel type de ressource utiliser, consultez la section Types de comptes principaux compatibles.

  • RESOURCE_ID : ID du projet, du dossier ou de l'organisation dont l'association de stratégies est un enfant. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossiers et d'organisations sont numériques, tels que 123456789012.
  • BINDING_ID: nom unique de la liaison de stratégie (par exemple, example-binding).
  • DISPLAY_NAME : facultatif. Description lisible de la liaison (par exemple, Example binding). Le nom à afficher ne peut pas comporter plus de 63 caractères.
  • PRINCIPAL_SET: ensemble de comptes principaux auquel vous souhaitez lier la stratégie. Pour obtenir la liste des types de comptes principaux valides, consultez la section Ensembles de comptes principaux compatibles. Vous ne pouvez pas modifier cette valeur une fois que vous avez créé la liaison de règles.
  • ORG_ID: ID de l'organisation propriétaire de la stratégie de limite d'accès des comptes principaux que vous souhaitez lier à l'ensemble de comptes principaux. Les identifiants des organisations sont numériques, comme 123456789012.
  • PAB_POLICY_ID: ID de la stratégie de limite d'accès des comptes principaux que vous souhaitez lier à l'ensemble de comptes principaux (par exemple, example-pab-policy). Vous ne pouvez pas modifier cette valeur une fois la liaison de règles créée.
  • CONDITION_DETAILS : facultatif. Expression de condition qui spécifie les comptes principaux de l'ensemble de comptes principaux pour lesquels la stratégie de limite d'accès des comptes principaux est appliquée. Contient les champs suivants:

    • expression: expression de condition qui utilise la syntaxe CEL (Common Expression Language). L'expression doit faire référence aux attributs principal.type ou principal.subject. Les autres attributs ne sont pas acceptés.

      L'expression peut contenir jusqu'à 10 opérateurs logiques (&&, ||, !) et peut comporter jusqu'à 250 caractères.

    • title : facultatif. Un bref résumé de l'objectif de la condition.
    • description : facultatif. Une description plus longue de la condition.

Méthode HTTP et URL :

POST https://iam.googleapis.com/v3beta/RESOURCE_TYPE/RESOURCE_ID/locations/global/policyBindings?policyBindingId=BINDING_ID

Corps JSON de la requête :

{
  "displayName": DISPLAY_NAME,
  "target": {
    "principalSet": PRINCIPAL_SET
  },
  "policyKind": "PRINCIPAL_ACCESS_BOUNDARY",
  "policy": "organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID",
  "condition": {
    CONDITION_DETAILS
  }
}

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

La réponse contient une opération de longue durée représentant votre requête.

{
  "name": "organizations/123456789012/locations/global/operations/operation-1715373120647-6181f6d8371d2-83309b71-2b8a7532",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata",
    "createTime": "2024-05-10T20:32:00.898809495Z",
    "target": "organizations/123456789012/locations/global/policyBindings/example-binding",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v3beta"
  },
  "done": false
}

Étape suivante