Analyser les stratégies d'autorisation

Cette page explique comment utiliser Policy Analyzer pour les stratégies d'autorisation afin d'identifier les comptes principaux (utilisateurs, comptes de service, groupes et domaines), le type d'accès dont ils disposent pour quelles ressourcesGoogle Cloud .

Les exemples de cette page montrent comment exécuter une requête d'analyse des règles et afficher immédiatement les résultats. Si vous souhaitez exporter les résultats pour une analyse plus approfondie, vous pouvez utiliser AnalyzeIamPolicyLongrunning pour écrire les résultats de la requête dans BigQuery ou Cloud Storage.

Avant de commencer

Rôles et autorisations requis

Les rôles et autorisations suivants sont requis pour analyser les règles d'autorisation.

Rôles IAM requis

Pour obtenir les autorisations nécessaires pour analyser une stratégie d'autorisation, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet, le dossier ou l'organisation auxquels vous allez limiter votre requête :

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

Ces rôles prédéfinis contiennent les autorisations requises pour analyser une stratégie d'autorisation. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour analyser une règle d'autorisation :

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • Pour analyser des règles avec des rôles IAM personnalisés : iam.roles.get
  • Pour utiliser la Google Cloud CLI afin d'analyser les règles : serviceusage.services.use

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

Autorisations Google Workspace requises

Si vous souhaitez développer les groupes dans les résultats de requête pour voir si un principal dispose de certains rôles ou autorisations en raison de son appartenance à un groupe Google Workspace, vous avez besoin de l'autorisation Google Workspace groups.read. Cette autorisation est incluse dans le rôle d'administrateur Lecteur de groupes, ainsi que dans des rôles plus puissants tels que Administrateur des Groupes ou Super-administrateur. Pour savoir comment attribuer ces rôles, consultez Attribuer des rôles d'administrateur spécifiques.

Déterminer quels comptes principaux peuvent accéder à une ressource

Vous pouvez utiliser Policy Analyzer pour vérifier quels comptes principaux disposent de certains rôles ou autorisations sur une ressource spécifique de votre projet, dossier ou organisation. Pour obtenir ces informations, créez une requête sur un compte principal qui inclut la ressource pour laquelle vous souhaitez analyser l'accès, ainsi qu'un ou plusieurs rôles ou autorisations à vérifier.

Console

  1. Dans la console Google Cloud , accédez à la page Analyse des règles.

    Accéder à la page "Analyse des stratégies"

  2. Dans la section Analyser les règles, recherchez le volet Requête personnalisée, puis cliquez sur Créer une requête personnalisée dans ce volet.

  3. Dans le champ Sélectionner le champ d'application de la requête, sélectionnez le projet, le dossier ou l'organisation auquel vous souhaitez appliquer la requête. Policy Analyzer analyse l'accès pour ce projet, ce dossier ou cette organisation, ainsi que toutes les ressources de ce projet, ce dossier ou cette organisation.

  4. Choisissez la ressource à vérifier, ainsi que le rôle ou l'autorisation à vérifier :

    1. Dans le champ Paramètre  1, sélectionnez Ressource dans le menu déroulant.
    2. Dans le champ Ressource, saisissez le nom complet de la ressource pour laquelle vous souhaitez analyser l'accès. Si vous ne connaissez pas le nom complet de la ressource, commencez à saisir le nom à afficher de la ressource, puis sélectionnez-la dans la liste des ressources fournies.
    3. Cliquez sur Ajouter un sélecteur.
    4. Dans le champ Paramètre 2, sélectionnez Rôle ou Autorisation.
    5. Dans le champ Sélectionner un rôle ou Sélectionner une autorisation, sélectionnez le rôle ou l'autorisation que vous souhaitez vérifier.
    6. Facultatif : Pour vérifier les rôles et autorisations supplémentaires, continuez à ajouter des sélecteurs Rôle et Autorisation jusqu'à ce que tous les rôles et autorisations que vous souhaitez vérifier soient répertoriés.
  5. Facultatif : Cliquez sur Continuer, puis sélectionnez les options avancées que vous souhaitez activer pour cette requête.

  6. Dans le volet Requête personnalisée, cliquez sur Analyser > Exécuter la requête. La page du rapport affiche les paramètres de requête que vous avez saisis, ainsi qu'une table de résultats de tous les comptes principaux avec les rôles ou les autorisations spécifiés sur la ressource spécifiée.

    Les requêtes d'analyse des règles dans la console Google Cloud s'exécutent pendant une minute maximum. Au bout d'une minute, la console Google Cloud arrête la requête et affiche tous les résultats disponibles. Si la requête ne se termine pas dans ce délai, la console Google Cloud affiche une bannière indiquant que les résultats sont incomplets. Pour obtenir plus de résultats pour ces requêtes, exportez-les vers BigQuery.

gcloud

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

  • RESOURCE_TYPE : type de ressource sur lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez la valeur project, folder ou organization.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation dans lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. 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.
  • FULL_RESOURCE_NAME : Nom complet de la ressource pour laquelle vous souhaitez analyser l'accès. Pour obtenir la liste des formats de noms de ressources complets, consultez la section Format du nom des ressources.
  • PERMISSIONS : liste des autorisations que vous souhaitez vérifier, séparées par une virgule (par exemple, compute.instances.get,compute.instances.start). Si vous listez plusieurs autorisations, l'analyseur de règles vérifiera si l'une d'elles est accordée.

Exécutez la commande gcloud asset analyze-iam-policy :

Linux, macOS ou Cloud Shell

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \
    --full-resource-name=FULL_RESOURCE_NAME \
    --permissions='PERMISSIONS'

Windows (PowerShell)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID `
    --full-resource-name=FULL_RESOURCE_NAME `
    --permissions='PERMISSIONS'

Windows (cmd.exe)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^
    --full-resource-name=FULL_RESOURCE_NAME ^
    --permissions='PERMISSIONS'

Vous recevez une réponse YAML contenant les résultats de l'analyse. Chaque résultat d'analyse liste un ensemble d'accès, d'identités et de ressources pertinents pour votre requête, suivi de la liaison de rôle IAM associée. Si la liaison de rôle est conditionnelle, le résultat de l'analyse inclut également le résultat de l'évaluation de la condition. Si la condition n'a pas pu être évaluée, le résultat est CONDITIONAL.

Les comptes principaux qui disposent de l'une des autorisations spécifiées sur la ressource spécifiée sont listés dans les champs identities de la réponse. L'exemple suivant montre un résultat d'analyse unique avec le champ identities mis en évidence.

...
---
ACLs:
- accesses:
  - permission: compute.instances.get
  - permission: compute.instances.start
  identities:
  - name: user:my-user@example.com
  resources:
  - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
policy:
  attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project
  binding:
    members:
    - user: my-user@example.com
    role: roles/compute.admin
---
...

Si la requête expire avant la fin de l'interrogation, une erreur DEADLINE_EXCEEDED s'affiche. Pour obtenir plus de résultats pour ces requêtes, écrivez les résultats dans BigQuery ou Cloud Storage à l'aide de la version à longue durée d'exécution de analyze-iam-policy. Pour obtenir des instructions, consultez Écrire une analyse de stratégie dans BigQuery ou Écrire une analyse de stratégie dans Cloud Storage.

REST

Pour déterminer quels comptes principaux disposent de certaines autorisations sur une ressource, utilisez la méthode analyzeIamPolicy de l'API Cloud Asset Inventory.

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

  • RESOURCE_TYPE : type de ressource sur lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation dans lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. 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.
  • FULL_RESOURCE_NAME : Nom complet de la ressource pour laquelle vous souhaitez analyser l'accès. Pour obtenir la liste des formats de noms de ressources complets, consultez la section Format du nom des ressources.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N : autorisations que vous souhaitez vérifier (par exemple, compute.instances.get). Si vous listez plusieurs autorisations, l'analyseur de règles vérifiera si l'une d'elles est accordée.

Méthode HTTP et URL :

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy

Corps JSON de la requête :

{
  "analysisQuery": {
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    }
  }
}

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

Vous recevez une réponse JSON contenant les résultats de l'analyse. Chaque résultat d'analyse décrit une liaison de rôle IAM pertinente, puis liste la ressource, les accès et les comptes principaux de cette liaison. Si la liaison de rôle est conditionnelle, le résultat de l'analyse inclut également le résultat de l'évaluation de la condition. Si la condition n'a pas pu être évaluée, le résultat est indiqué comme CONDITIONAL.

Les comptes principaux qui disposent de l'une des autorisations spécifiées sur la ressource spécifiée sont listés dans les champs identities de la réponse. L'exemple suivant montre un résultat d'analyse unique avec le champ identities mis en évidence.

...
{
  "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project",
  "iamBinding": {
    "role": "roles/compute.admin",
    "members": [
      "user:my-user@example.com"
    ]
  },
  "accessControlLists": [
    {
      "resources": [
        {
          "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
        }
      ],
      "accesses": [
        {
          "permission": "compute.instances.get"
        },
        {
          "permission": "compute.instances.start"
        }
      ]
    }
  ],
  "identityList": {
    "identities": [
      {
        "name": "user:my-user@example.com"
      }
    ]
  },
  "fullyExplored": true
},
...

Si la requête expire avant la fin de l'interrogation, une erreur DEADLINE_EXCEEDED s'affiche. Pour obtenir plus de résultats pour ces requêtes, écrivez les résultats dans BigQuery ou Cloud Storage à l'aide de la version à longue durée d'exécution de analyzeIamPolicy. Pour obtenir des instructions, consultez Écrire une analyse de stratégie dans BigQuery ou Écrire une analyse de stratégie dans Cloud Storage.

Déterminer quels comptes principaux possèdent certains rôles ou certaines autorisations

Vous pouvez utiliser Policy Analyzer pour vérifier quels comptes principaux sont associés à des rôles ou des autorisations spécifiques sur une ressource Google Cloud de votre organisation. Pour obtenir ces informations, créez une requête qui inclut un ou plusieurs rôles ou autorisations à vérifier, mais ne spécifiez pas de ressource.

Console

  1. Dans la console Google Cloud , accédez à la page Analyse des règles.

    Accéder à la page "Analyse des stratégies"

  2. Dans la section Analyser les règles, recherchez le volet Requête personnalisée, puis cliquez sur Créer une requête personnalisée dans ce volet.

  3. Dans le champ Sélectionner le champ d'application de la requête, sélectionnez le projet, le dossier ou l'organisation auquel vous souhaitez appliquer la requête. Policy Analyzer analyse l'accès pour ce projet, ce dossier ou cette organisation, ainsi que toutes les ressources de ce projet, ce dossier ou cette organisation.

  4. Dans le champ Paramètre 1, sélectionnez Rôle ou Autorisation.

  5. Dans le champ Sélectionner un rôle ou Sélectionner une autorisation, sélectionnez l'autorisation ou le rôle que vous souhaitez vérifier.

  6. Facultatif : pour rechercher des rôles et des autorisations supplémentaires, procédez comme suit :

    1. Cliquez sur Ajouter un sélecteur.
    2. Dans le champ Paramètre 2, sélectionnez Rôle ou Autorisation.
    3. Dans le champ Sélectionner un rôle ou Sélectionner une autorisation, sélectionnez le rôle ou l'autorisation que vous souhaitez vérifier.
    4. Continuez à ajouter des sélecteurs Rôle et Autorisation jusqu'à ce que tous les rôles et autorisations que vous souhaitez vérifier soient répertoriés.
  7. Facultatif : Cliquez sur Continuer, puis sélectionnez les options avancées que vous souhaitez activer pour cette requête.

  8. Dans le volet Requête personnalisée, cliquez sur Analyser > Exécuter la requête. La page du rapport affiche les paramètres de requête que vous avez saisis, ainsi qu'une table de résultats de tous les comptes principaux avec les rôles ou les autorisations spécifiés sur toute ressource couverte.

    Les requêtes d'analyse des règles dans la console Google Cloud s'exécutent pendant une minute maximum. Au bout d'une minute, la console Google Cloud arrête la requête et affiche tous les résultats disponibles. Si la requête ne se termine pas dans ce délai, la console Google Cloud affiche une bannière indiquant que les résultats sont incomplets. Pour obtenir plus de résultats pour ces requêtes, exportez-les vers BigQuery.

gcloud

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

  • RESOURCE_TYPE : type de ressource sur lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez la valeur project, folder ou organization.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation dans lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. 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.
  • ROLES : liste des rôles à vérifier, séparés par une virgule (par exemple, roles/compute.admin,roles/compute.imageUser). Si vous listez plusieurs rôles, l'analyseur de règles vérifiera si l'un d'eux est attribué.
  • PERMISSIONS : liste des autorisations que vous souhaitez vérifier, séparées par une virgule (par exemple, compute.instances.get,compute.instances.start). Si vous listez plusieurs autorisations, l'analyseur de règles vérifiera si l'une d'elles est accordée.

Exécutez la commande gcloud asset analyze-iam-policy :

Linux, macOS ou Cloud Shell

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \
    --roles='ROLES' \
    --permissions='PERMISSIONS'

Windows (PowerShell)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID `
    --roles='ROLES' `
    --permissions='PERMISSIONS'

Windows (cmd.exe)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^
    --roles='ROLES' ^
    --permissions='PERMISSIONS'

Vous recevez une réponse JSON contenant les résultats de l'analyse. Chaque résultat d'analyse décrit une liaison de rôle IAM pertinente, puis liste la ressource, les accès et les comptes principaux de cette liaison. Si la liaison de rôle est conditionnelle, le résultat de l'analyse inclut également le résultat de l'évaluation de la condition. Si la condition n'a pas pu être évaluée, le résultat est indiqué comme CONDITIONAL.

Les comptes principaux qui disposent de l'un des rôles ou autorisations spécifiés sont listés dans les champs identities de la réponse. L'exemple suivant montre un résultat d'analyse unique avec le champ identities mis en évidence.

...
---
ACLs:
- accesses:
  - permission: compute.instances.get
  - permission: compute.instances.start
  - role: roles/compute.admin
  identities:
  - name: user:my-user@example.com
  resources:
  - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
policy:
  attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project
  binding:
    members:
    - user: my-user@example.com
    role: roles/compute.admin
---
...

Si la requête expire avant la fin de l'interrogation, une erreur DEADLINE_EXCEEDED s'affiche. Pour obtenir plus de résultats pour ces requêtes, écrivez les résultats dans BigQuery ou Cloud Storage à l'aide de la version à longue durée d'exécution de analyze-iam-policy. Pour obtenir des instructions, consultez Écrire une analyse de stratégie dans BigQuery ou Écrire une analyse de stratégie dans Cloud Storage.

REST

Pour déterminer quels comptes principaux disposent de certains rôles ou autorisations, utilisez la méthode analyzeIamPolicy de l'API Cloud Asset Inventory.

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

  • RESOURCE_TYPE : type de ressource sur lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation dans lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. 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.
  • ROLE_1, ROLE_2... ROLE_N : rôles que vous souhaitez vérifier (par exemple, roles/compute.admin). Si vous listez plusieurs rôles, Policy Analyzer vérifiera si l'un d'eux est attribué.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N : autorisations que vous souhaitez vérifier (par exemple, compute.instances.get). Si vous listez plusieurs autorisations, l'analyseur de règles vérifiera si l'une d'elles est accordée.

Méthode HTTP et URL :

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy

Corps JSON de la requête :

{
  "analysisQuery": {
    "accessSelector": {
      "roles": [
        "ROLE_1",
        "ROLE_2",
        "ROLE_N"
      ],
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    }
  }
}

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

Vous recevez une réponse JSON contenant les résultats de l'analyse. Chaque résultat d'analyse décrit une liaison de rôle IAM pertinente, puis liste la ressource, les accès et les comptes principaux de cette liaison. Si la liaison de rôle est conditionnelle, le résultat de l'analyse inclut également le résultat de l'évaluation de la condition. Si la condition n'a pas pu être évaluée, le résultat est indiqué comme CONDITIONAL.

Les comptes principaux qui disposent de l'un des rôles ou autorisations spécifiés sont listés dans les champs identities de la réponse. L'exemple suivant montre un résultat d'analyse unique avec le champ identities mis en évidence.

...
{
  "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project",
  "iamBinding": {
    "role": "roles/compute.admin",
    "members": [
      "user:my-user@example.com"
    ]
  },
  "accessControlLists": [
    {
      "resources": [
        {
          "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
        }
      ],
      "accesses": [
        {
          "permission": "compute.instances.get"
        },
        {
          "role": "roles/compute.admin"
        }
      ]
    }
  ],
  "identityList": {
    "identities": [
      {
        "name": "user:my-user@example.com"
      }
    ]
  },
  "fullyExplored": true
},
...

Si la requête expire avant la fin de l'interrogation, une erreur DEADLINE_EXCEEDED s'affiche. Pour obtenir plus de résultats pour ces requêtes, écrivez les résultats dans BigQuery ou Cloud Storage à l'aide de la version à longue durée d'exécution de analyzeIamPolicy. Pour obtenir des instructions, consultez Écrire une analyse de stratégie dans BigQuery ou Écrire une analyse de stratégie dans Cloud Storage.

Déterminer le niveau d'accès d'un compte principal sur une ressource

Vous pouvez utiliser Policy Analyzer pour vérifier les rôles ou les autorisations dont dispose un compte principal sur une ressource de votre organisation. Pour obtenir ces informations, créez une requête sur un accès qui inclut le compte principal dont vous souhaitez analyser l'accès, ainsi que la ressource pour laquelle vous souhaitez analyser l'accès.

Console

  1. Dans la console Google Cloud , accédez à la page Analyse des règles.

    Accéder à la page "Analyse des stratégies"

  2. Dans la section Analyser les règles, recherchez le volet Requête personnalisée, puis cliquez sur Créer une requête personnalisée dans ce volet.

  3. Dans le champ Sélectionner le champ d'application de la requête, sélectionnez le projet, le dossier ou l'organisation auquel vous souhaitez appliquer la requête. Policy Analyzer analyse l'accès pour ce projet, ce dossier ou cette organisation, ainsi que toutes les ressources de ce projet, ce dossier ou cette organisation.

  4. Choisissez la ressource et le compte principal à vérifier :

    1. Dans le champ Paramètre  1, sélectionnez Ressource dans le menu déroulant.
    2. Dans le champ Ressource, saisissez le nom complet de la ressource pour laquelle vous souhaitez analyser l'accès. Si vous ne connaissez pas le nom complet de la ressource, commencez à saisir le nom à afficher de la ressource, puis sélectionnez-la dans la liste des ressources fournies.
    3. Cliquez sur Ajouter un sélecteur.
    4. Dans le champ Paramètre 2, sélectionnez Principal dans le menu déroulant.
    5. Dans le champ Principal, commencez à saisir le nom d'un utilisateur, d'un compte de service ou d'un groupe. Ensuite, sélectionnez l'utilisateur, le compte de service ou le groupe dont vous souhaitez analyser l'accès dans la liste des comptes principaux fournis.
  5. Facultatif : Cliquez sur Continuer, puis sélectionnez les options avancées que vous souhaitez activer pour cette requête.

  6. Dans le volet Requête personnalisée, cliquez sur Analyser > Exécuter la requête. La page du rapport affiche les paramètres de requête que vous avez saisis ainsi qu'un tableau de résultats de tous les rôles attribués au compte principal spécifié pour la ressource spécifiée.

    Les requêtes d'analyse des règles dans la console Google Cloud s'exécutent pendant une minute maximum. Au bout d'une minute, la console Google Cloud arrête la requête et affiche tous les résultats disponibles. Si la requête ne se termine pas dans ce délai, la console Google Cloud affiche une bannière indiquant que les résultats sont incomplets. Pour obtenir plus de résultats pour ces requêtes, exportez-les vers BigQuery.

gcloud

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

  • RESOURCE_TYPE : type de ressource sur lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez la valeur project, folder ou organization.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation dans lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. 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.
  • FULL_RESOURCE_NAME : Nom complet de la ressource pour laquelle vous souhaitez analyser l'accès. Pour obtenir la liste des formats de noms de ressources complets, consultez la section Format du nom des ressources.
  • PRINCIPAL : compte principal dont vous souhaitez analyser l'accès, au format PRINCIPAL_TYPE:ID (par exemple, user:my-user@example.com). Pour obtenir la liste complète des types de comptes principaux, consultez Identifiants principaux.

Exécutez la commande gcloud asset analyze-iam-policy :

Linux, macOS ou Cloud Shell

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \
    --full-resource-name=FULL_RESOURCE_NAME \
    --identity=PRINCIPAL

Windows (PowerShell)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID `
    --full-resource-name=FULL_RESOURCE_NAME `
    --identity=PRINCIPAL

Windows (cmd.exe)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^
    --full-resource-name=FULL_RESOURCE_NAME ^
    --identity=PRINCIPAL

Vous recevez une réponse YAML contenant les résultats de l'analyse. Chaque résultat d'analyse liste un ensemble d'accès, d'identités et de ressources pertinents pour votre requête, suivi de la liaison de rôle IAM associée. Si la liaison de rôle est conditionnelle, le résultat de l'analyse inclut également le résultat de l'évaluation de la condition. Si la condition n'a pas pu être évaluée, le résultat est CONDITIONAL.

Les rôles dont dispose l'entité principale sur la ressource spécifiée sont listés dans les champs accesses de la réponse. L'exemple suivant montre un résultat d'analyse unique avec le champ accesses mis en évidence.

...
---
ACLs:
- accesses:
  - roles/iam.serviceAccountUser
  identities:
  - name: user:my-user@example.com
  resources:
  - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
policy:
  attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project
  binding:
    members:
    - user: my-user@example.com
    role: roles/iam.serviceAccountUser
---
...

Si la requête expire avant la fin de l'interrogation, une erreur DEADLINE_EXCEEDED s'affiche. Pour obtenir plus de résultats pour ces requêtes, écrivez les résultats dans BigQuery ou Cloud Storage à l'aide de la version à longue durée d'exécution de analyze-iam-policy. Pour obtenir des instructions, consultez Écrire une analyse de stratégie dans BigQuery ou Écrire une analyse de stratégie dans Cloud Storage.

REST

Pour déterminer le niveau d'accès d'un compte principal sur une ressource, utilisez la méthode analyzeIamPolicy de l'API Cloud Asset Inventory.

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

  • RESOURCE_TYPE : type de ressource sur lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation dans lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. 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.
  • FULL_RESOURCE_NAME : Nom complet de la ressource pour laquelle vous souhaitez analyser l'accès. Pour obtenir la liste des formats de noms de ressources complets, consultez la section Format du nom des ressources.
  • PRINCIPAL : compte principal dont vous souhaitez analyser l'accès, au format PRINCIPAL_TYPE:ID (par exemple, user:my-user@example.com). Pour obtenir la liste complète des types de comptes principaux, consultez Identifiants principaux.

Méthode HTTP et URL :

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy

Corps JSON de la requête :

{
  "analysisQuery": {
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "identitySelector": {
      "identity": "PRINCIPAL"
    }
  }
}

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

Vous recevez une réponse JSON contenant les résultats de l'analyse. Chaque résultat d'analyse décrit une liaison de rôle IAM pertinente, puis liste la ressource, les accès et les comptes principaux de cette liaison. Si la liaison de rôle est conditionnelle, le résultat de l'analyse inclut également le résultat de l'évaluation de la condition. Si la condition n'a pas pu être évaluée, le résultat est indiqué comme CONDITIONAL.

Les rôles dont dispose l'entité principale sur la ressource spécifiée sont listés dans les champs accesses de la réponse. L'exemple suivant montre un résultat d'analyse unique avec le champ accesses mis en évidence.

...
{
  "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project",
  "iamBinding": {
    "role": "roles/iam.serviceAccountUser",
    "members": [
      "user:my-user@example.com"
    ]
  },
  "accessControlLists": [
    {
      "resources": [
        {
          "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
        }
      ],
      "accesses": [
        {
          "roles": "iam.serviceAccountUser"
        }
      ]
    }
  ],
  "identityList": {
    "identities": [
      {
        "name": "user:my-user@example.com"
      }
    ]
  },
  "fullyExplored": true
},
...

Si la requête expire avant la fin de l'interrogation, une erreur DEADLINE_EXCEEDED s'affiche. Pour obtenir plus de résultats pour ces requêtes, écrivez les résultats dans BigQuery ou Cloud Storage à l'aide de la version à longue durée d'exécution de analyzeIamPolicy. Pour obtenir des instructions, consultez Écrire une analyse de stratégie dans BigQuery ou Écrire une analyse de stratégie dans Cloud Storage.

Déterminer les ressources auxquelles un compte principal peut accéder

Vous pouvez utiliser Policy Analyzer pour vérifier quelles ressources de votre organisation disposent de rôles ou d'autorisations spécifiques. Pour obtenir ces informations, créez une requête sur une ressource qui inclut le compte principal dont vous souhaitez analyser l'accès, et un ou plusieurs rôles ou autorisations à vérifier.

Console

  1. Dans la console Google Cloud , accédez à la page Analyse des règles.

    Accéder à la page "Analyse des stratégies"

  2. Dans la section Analyser les règles, recherchez le volet Requête personnalisée, puis cliquez sur Créer une requête personnalisée dans ce volet.

  3. Dans le champ Sélectionner le champ d'application de la requête, sélectionnez le projet, le dossier ou l'organisation auquel vous souhaitez appliquer la requête. Policy Analyzer analyse l'accès pour ce projet, ce dossier ou cette organisation, ainsi que toutes les ressources de ce projet, ce dossier ou cette organisation.

  4. Choisissez le compte principal à vérifier, ainsi que le rôle ou l'autorisation à vérifier :

    1. Dans le champ Paramètre 1, sélectionnez Principal dans le menu déroulant.
    2. Dans le champ Principal, commencez à saisir le nom d'un utilisateur, d'un compte de service ou d'un groupe. Ensuite, sélectionnez l'utilisateur, le compte de service ou le groupe dont vous souhaitez analyser l'accès dans la liste des comptes principaux fournis.
    3. Cliquez sur Ajouter un sélecteur.
    4. Dans le champ Paramètre 2, sélectionnez Rôle ou Autorisation.
    5. Dans le champ Sélectionner un rôle ou Sélectionner une autorisation, sélectionnez le rôle ou l'autorisation que vous souhaitez vérifier.
    6. Facultatif : Pour vérifier les rôles et autorisations supplémentaires, continuez à ajouter des sélecteurs Rôle et Autorisation jusqu'à ce que tous les rôles et autorisations que vous souhaitez vérifier soient répertoriés.
  5. Facultatif : Cliquez sur Continuer, puis sélectionnez les options avancées que vous souhaitez activer pour cette requête.

  6. Dans le volet Requête personnalisée, cliquez sur Analyser > Exécuter la requête. La page du rapport affiche les paramètres de requête que vous avez saisis ainsi qu'un tableau de résultats de toutes les ressources pour lesquelles le compte principal spécifié dispose des rôles ou des autorisations saisis.

    Les requêtes d'analyse des règles dans la console Google Cloud s'exécutent pendant une minute maximum. Au bout d'une minute, la console Google Cloud arrête la requête et affiche tous les résultats disponibles. Si la requête ne se termine pas dans ce délai, la console Google Cloud affiche une bannière indiquant que les résultats sont incomplets. Pour obtenir plus de résultats pour ces requêtes, exportez-les vers BigQuery.

gcloud

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

  • RESOURCE_TYPE : type de ressource sur lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez la valeur project, folder ou organization.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation dans lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. 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.
  • PRINCIPAL : compte principal dont vous souhaitez analyser l'accès, au format PRINCIPAL_TYPE:ID (par exemple, user:my-user@example.com). Pour obtenir la liste complète des types de comptes principaux, consultez Identifiants principaux.
  • PERMISSIONS : liste des autorisations que vous souhaitez vérifier, séparées par une virgule (par exemple, compute.instances.get,compute.instances.start). Si vous listez plusieurs autorisations, l'analyseur de règles vérifiera si l'une d'elles est accordée.

Exécutez la commande gcloud asset analyze-iam-policy :

Linux, macOS ou Cloud Shell

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \
    --identity=PRINCIPAL \
    --permissions='PERMISSIONS'

Windows (PowerShell)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID `
    --identity=PRINCIPAL `
    --permissions='PERMISSIONS'

Windows (cmd.exe)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^
    --identity=PRINCIPAL ^
    --permissions='PERMISSIONS'

Vous recevez une réponse YAML contenant les résultats de l'analyse. Chaque résultat d'analyse liste un ensemble d'accès, d'identités et de ressources pertinents pour votre requête, suivi de la liaison de rôle IAM associée. Si la liaison de rôle est conditionnelle, le résultat de l'analyse inclut également le résultat de l'évaluation de la condition. Si la condition n'a pas pu être évaluée, le résultat est CONDITIONAL.

Les ressources sur lesquelles le compte principal spécifié dispose de l'une des autorisations spécifiées sont listées dans les champs resources de la réponse. L'exemple suivant montre un résultat d'analyse unique avec le champ resources mis en évidence.

...
---
ACLs:
- accesses:
  - permission: compute.instances.get
  - permission: compute.instances.start
  identities:
  - name: user:my-user@example.com
  resources:
  - fullResourceName: //compute.googleapis.com/projects/my-project/global/images/my-image
policy:
  attachedResource: //compute.googleapis.com/projects/my-project/global/images/my-image
  binding:
    members:
    - user: my-user@example.com
    role: roles/compute.admin
---
...

Si la requête expire avant la fin de l'interrogation, une erreur DEADLINE_EXCEEDED s'affiche. Pour obtenir plus de résultats pour ces requêtes, écrivez les résultats dans BigQuery ou Cloud Storage à l'aide de la version à longue durée d'exécution de analyze-iam-policy. Pour obtenir des instructions, consultez Écrire une analyse de stratégie dans BigQuery ou Écrire une analyse de stratégie dans Cloud Storage.

REST

Pour déterminer les ressources auxquelles un compte principal peut accéder, utilisez la méthode analyzeIamPolicy de l'API Cloud Asset Inventory.

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

  • RESOURCE_TYPE : type de ressource sur lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation dans lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. 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.
  • PRINCIPAL : compte principal dont vous souhaitez analyser l'accès, au format PRINCIPAL_TYPE:ID (par exemple, user:my-user@example.com). Pour obtenir la liste complète des types de comptes principaux, consultez Identifiants principaux.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N : autorisations que vous souhaitez vérifier (par exemple, compute.instances.get). Si vous listez plusieurs autorisations, l'analyseur de règles vérifiera si l'une d'elles est accordée.

Méthode HTTP et URL :

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy

Corps JSON de la requête :

{
  "analysisQuery": {
    "identitySelector": {
      "identity": "PRINCIPAL"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    }
  }
}

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

Vous recevez une réponse JSON contenant les résultats de l'analyse. Chaque résultat d'analyse décrit une liaison de rôle IAM pertinente, puis liste la ressource, les accès et les comptes principaux de cette liaison. Si la liaison de rôle est conditionnelle, le résultat de l'analyse inclut également le résultat de l'évaluation de la condition. Si la condition n'a pas pu être évaluée, le résultat est indiqué comme CONDITIONAL.

Les ressources sur lesquelles le compte principal spécifié dispose de l'une des autorisations spécifiées sont listées dans les champs resources de la réponse. L'exemple suivant montre un résultat d'analyse unique avec le champ resources mis en évidence.

...
{
  "attachedResourceFullName": "//compute.googleapis.com/projects/my-project/global/images/my-image",
  "iamBinding": {
    "role": "roles/compute.admin",
    "members": [
      "user:my-user@example.com"
    ]
  },
  "accessControlLists": [
    {
      "resources": [
        {
          "fullResourceName": "//compute.googleapis.com/projects/my-project/global/images/my-image"
        }
      ],
      "accesses": [
        {
          "permission": "compute.instances.get"
        },
        {
          "permission": "compute.instances.start"
        }
      ]
    }
  ],
  "identityList": {
    "identities": [
      {
        "name": "user:my-user@example.com"
      }
    ]
  },
  "fullyExplored": true
},
...

Si la requête expire avant la fin de l'interrogation, une erreur DEADLINE_EXCEEDED s'affiche. Pour obtenir plus de résultats pour ces requêtes, écrivez les résultats dans BigQuery ou Cloud Storage à l'aide de la version à longue durée d'exécution de analyzeIamPolicy. Pour obtenir des instructions, consultez Écrire une analyse de stratégie dans BigQuery ou Écrire une analyse de stratégie dans Cloud Storage.

Déterminer l'accès à une heure spécifique

Si vous lui fournissez suffisamment de contexte, Policy Analyzer peut analyser les liaisons de rôle conditionnelles IAM qui n'accordent l'accès qu'à des moments précis. Ces conditions sont appelées conditions de date/heure. Pour que Policy Analyzer puisse analyser précisément les liaisons de rôle avec des conditions de date/heure, vous devez définir l'heure d'accès dans la requête.

Policy Analyzer peut également analyser les conditions de ressources sans aucune saisie supplémentaire de la part de l'utilisateur. Pour en savoir plus sur le fonctionnement de Policy Analyzer avec les conditions, consultez Accès conditionnel.

gcloud

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

  • RESOURCE_TYPE : type de ressource sur lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez la valeur project, folder ou organization.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation dans lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. 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.
  • PERMISSIONS : Facultatif. Liste des autorisations que vous souhaitez vérifier, séparées par une virgule (par exemple, compute.instances.get,compute.instances.start). Si vous listez plusieurs autorisations, l'analyseur de règles vérifiera si l'une d'elles est accordée.
  • FULL_RESOURCE_NAME : facultatif. Nom complet de la ressource pour laquelle vous souhaitez analyser l'accès. Pour obtenir la liste des formats de noms de ressources complets, consultez la section Format du nom des ressources.
  • PERMISSIONS : Facultatif. Liste des autorisations que vous souhaitez vérifier, séparées par une virgule (par exemple, compute.instances.get,compute.instances.start). Si vous listez plusieurs autorisations, l'analyseur de règles vérifiera si l'une d'elles est accordée.
  • ACCESS_TIME : heure que vous souhaitez vérifier. Cette heure doit être située dans le futur. Utilisez un code temporel au format RFC 3339, par exemple 2099-02-01T00:00:00Z.

Exécutez la commande gcloud asset analyze-iam-policy :

Linux, macOS ou Cloud Shell

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \
    --identity=PRINCIPAL \
    --full-resource-name=FULL_RESOURCE_NAME \
    --permissions='PERMISSIONS' \
    --access-time=ACCESS_TIME

Windows (PowerShell)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID `
    --identity=PRINCIPAL `
    --full-resource-name=FULL_RESOURCE_NAME `
    --permissions='PERMISSIONS' `
    --access-time=ACCESS_TIME

Windows (cmd.exe)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^
    --identity=PRINCIPAL ^
    --full-resource-name=FULL_RESOURCE_NAME ^
    --permissions='PERMISSIONS' ^
    --access-time=ACCESS_TIME

Vous recevez une réponse YAML contenant les résultats de l'analyse. Chaque résultat d'analyse liste un ensemble d'accès, d'identités et de ressources pertinents pour votre requête, suivi de la liaison de rôle IAM associée. Si la liaison de rôle est conditionnelle, le résultat de l'analyse inclut également le résultat de l'évaluation de la condition. Si la condition n'a pas pu être évaluée, le résultat est CONDITIONAL.

Lorsque vous incluez l'heure d'accès dans la requête, Policy Analyzer peut évaluer les conditions de date/heure. Si la condition renvoie la valeur "false", ce rôle n'est pas inclus dans la réponse. Si la condition renvoie la valeur "true", le résultat de l'évaluation de la condition est indiqué comme TRUE.

...
---
ACLs:
- accesses:
  - permission: compute.instances.get
  - permission: compute.instances.start
  conditionEvaluationValue: 'TRUE'
  identities:
  - name: user:my-user@example.com
  resources:
  - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
policy:
  attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project
  binding:
    condition:
      expression: request.time.getHours("America/Los_Angeles") >= 5
      title: No access before 5am PST
    members:
    - user: my-user@example.com
    role: roles/compute.admin
---
...

Si la requête expire avant la fin de l'interrogation, une erreur DEADLINE_EXCEEDED s'affiche. Pour obtenir plus de résultats pour ces requêtes, écrivez les résultats dans BigQuery ou Cloud Storage à l'aide de la version à longue durée d'exécution de analyze-iam-policy. Pour obtenir des instructions, consultez Écrire une analyse de stratégie dans BigQuery ou Écrire une analyse de stratégie dans Cloud Storage.

REST

Pour déterminer quels comptes principaux disposeront de certaines autorisations sur une ressource à un moment précis, utilisez la méthode analyzeIamPolicy de l'API Cloud Asset Inventory.

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

  • RESOURCE_TYPE : type de ressource sur lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation dans lequel vous souhaitez limiter votre recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. 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.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N : facultatif. Les autorisations que vous souhaitez vérifier (par exemple, compute.instances.get). Si vous listez plusieurs autorisations, l'analyseur de règles vérifie si l'une d'elles est accordée.
  • FULL_RESOURCE_NAME : facultatif. Nom complet de la ressource pour laquelle vous souhaitez analyser l'accès. Pour obtenir la liste des formats de noms de ressources complets, consultez la section Format du nom des ressources.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N : facultatif. Les autorisations que vous souhaitez vérifier (par exemple, compute.instances.get). Si vous listez plusieurs autorisations, l'analyseur de règles vérifie si l'une d'elles est accordée.
  • ACCESS_TIME : heure que vous souhaitez vérifier. Cette heure doit être située dans le futur. Utilisez un code temporel au format RFC 3339, par exemple 2099-02-01T00:00:00Z.

Méthode HTTP et URL :

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy

Corps JSON de la requête :

{
  "analysisQuery": {
    "identitySelector": {
      "identity": "PRINCIPAL"
    },
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    },
    "conditionContext": {
      "accessTime": "ACCESS_TIME"
    }
  }
}

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

Vous recevez une réponse JSON contenant les résultats de l'analyse. Chaque résultat d'analyse décrit une liaison de rôle IAM pertinente, puis liste la ressource, les accès et les comptes principaux de cette liaison. Si la liaison de rôle est conditionnelle, le résultat de l'analyse inclut également le résultat de l'évaluation de la condition. Si la condition n'a pas pu être évaluée, le résultat est indiqué comme CONDITIONAL.

Lorsque vous incluez l'heure d'accès dans la requête, Policy Analyzer peut évaluer les conditions de date/heure. Si la condition renvoie la valeur "false", ce rôle n'est pas inclus dans la réponse. Si la condition renvoie la valeur "true", la valeur d'évaluation de la condition dans la réponse d'analyse est TRUE.

...
{
  "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project",
  "iamBinding": {
    "role": "roles/compute.admin",
    "members": [
      "user:my-user@example.com"
    ],
    "condition": {
      "expression": "request.time.getHours(\"America/Los_Angeles\") \u003e= 5",
      "title": "No access before 5am PST"
    }
  },
  "accessControlLists": [
    {
      "resources": [
        {
          "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
        }
      ],
      "accesses": [
        {
          "permission": "compute.instances.get"
        },
        {
          "permission": "compute.instances.start"
        }
      ],
      "conditionEvaluation": {
        "evaluationValue": "TRUE"
      }
    }
  ],
  "identityList": {
    "identities": [
      {
        "name": "user:my-user@example.com"
      }
    ]
  },
  "fullyExplored": true
},
...

Si la requête expire avant la fin de l'interrogation, une erreur DEADLINE_EXCEEDED s'affiche. Pour obtenir plus de résultats pour ces requêtes, écrivez les résultats dans BigQuery ou Cloud Storage à l'aide de la version à longue durée d'exécution de analyzeIamPolicy. Pour obtenir des instructions, consultez Écrire une analyse de stratégie dans BigQuery ou Écrire une analyse de stratégie dans Cloud Storage.

Activer les options

Vous pouvez activer les options suivantes pour obtenir des résultats de requête plus détaillés.

Console

Option Description
Lister les ressources au sein des ressources correspondant à votre requête Si vous activez cette option, les résultats de la requête listent jusqu'à 1 000 ressources descendantes pertinentes pour toutes les ressources parentes (projets, dossiers et organisations) dans les résultats de la requête.
Lister les utilisateurs individuels dans les groupes

Si vous activez cette option, tous les groupes figurant dans les résultats de la requête sont développés en membres individuels. Si vous disposez des autorisations suffisantes sur le groupe, les groupes imbriqués seront également développés. Cette expansion est limitée à 1 000 membres par groupe.

Cette option n'est disponible que si vous ne spécifiez pas de principal dans votre requête.

Lister les autorisations dans les rôles

Si vous activez cette option, les résultats de la requête listent toutes les autorisations de chaque rôle en plus du rôle lui-même.

Cette option n'est disponible que si vous ne spécifiez aucune autorisation ni aucun rôle dans votre requête.

gcloud

Cette section décrit plusieurs options courantes que vous pouvez ajouter lorsque vous utilisez gcloud CLI pour analyser les stratégies d'autorisation. Pour obtenir la liste complète des options, consultez Options facultatives.

Option Description
--analyze-service-account-impersonation

Si cette option est activée, Policy Analyzer exécute des requêtes d'analyse supplémentaires pour déterminer qui peut usurper l'identité des comptes de service qui disposent de l'accès spécifié aux ressources spécifiées. Policy Analyzer exécute une requête pour chaque compte de service dans les résultats de la requête. Ces requêtes analysent qui dispose de l'une des autorisations suivantes sur le compte de service :

  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.getOpenIdToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt

Il s'agit d'une opération très coûteuse, car elle exécute automatiquement de nombreuses requêtes. Nous vous recommandons vivement d'exporter vers BigQuery ou d'exporter vers Cloud Storage à l'aide de analyze-iam-policy-longrunning au lieu de analyze-iam-policy.

--expand-groups

Si vous activez cette option, tous les groupes figurant dans les résultats de la requête sont développés en membres individuels. Si vous disposez des autorisations suffisantes sur le groupe, les groupes imbriqués seront également développés. Cette expansion est limitée à 1 000 membres par groupe.

Cette option n'est effective que si vous ne spécifiez pas de principal dans votre requête.

--expand-resources Si vous activez cette option, les résultats de la requête listent jusqu'à 1 000 ressources descendantes pertinentes pour toutes les ressources parentes (projets, dossiers et organisations) dans les résultats de la requête.
--expand-roles

Si vous activez cette option, les résultats de la requête listent toutes les autorisations de chaque rôle en plus du rôle lui-même.

Cette option n'est disponible que si vous ne spécifiez aucune autorisation ni aucun rôle dans votre requête.

--output-group-edges Si vous activez cette option, les résultats de la requête indiquent les relations d'appartenance pertinentes entre les groupes.
--output-resource-edges Si vous activez cette option, les résultats de la requête indiquent les relations parent/enfant pertinentes entre les ressources.

REST

Pour activer des options, ajoutez d'abord un champ options à votre requête d'analyse. Exemple :

{
  "analysisQuery": {
    "resourceSelector": {
      "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
    },
    "accessSelector": {
      "permissions": [
        "iam.roles.get",
        "iam.roles.list"
      ]
   },
   "options": {
     OPTIONS
   }
  }
}

Remplacez OPTIONS par les options que vous souhaitez activer, au format "OPTION": true. Le tableau suivant décrit les options disponibles :

Option Description
analyzeServiceAccountImpersonation

Si cette option est activée, Policy Analyzer exécute des requêtes d'analyse supplémentaires pour déterminer qui peut usurper l'identité des comptes de service qui disposent de l'accès spécifié aux ressources spécifiées. Policy Analyzer exécute une requête pour chaque compte de service dans les résultats de la requête. Ces requêtes analysent qui dispose de l'une des autorisations suivantes sur le compte de service :

  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.getOpenIdToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt

Il s'agit d'une opération très coûteuse, car elle exécute automatiquement de nombreuses requêtes. Nous vous recommandons vivement d'exporter vers BigQuery ou d'exporter vers Cloud Storage à l'aide de AnalyzeIamPolicyLongrunning au lieu de AnalyzeIamPolicy.

expandGroups

Si vous activez cette option, tous les groupes figurant dans les résultats de la requête sont développés en membres individuels. Si vous disposez des autorisations suffisantes sur le groupe, les groupes imbriqués seront également développés. Cette expansion est limitée à 1 000 membres par groupe.

Cette option n'est effective que si vous ne spécifiez pas de principal dans votre requête.

expandResources Si vous activez cette option, les résultats de la requête listent jusqu'à 1 000 ressources descendantes pertinentes pour toutes les ressources parentes (projets, dossiers et organisations) dans les résultats de la requête.
expandRoles

Si vous activez cette option, les résultats de la requête listent toutes les autorisations de chaque rôle en plus du rôle lui-même.

Cette option n'est disponible que si vous ne spécifiez aucune autorisation ni aucun rôle dans votre requête.

outputGroupEdges Si vous activez cette option, les résultats de la requête indiquent les relations d'appartenance pertinentes entre les groupes.
outputResourceEdges Si vous activez cette option, les résultats de la requête indiquent les relations parent/enfant pertinentes entre les ressources.

Étapes suivantes