Présentation de Policy Analyzer

Policy Analyzer vous permet de savoir quels comptes principaux (par exemple, utilisateurs, comptes de service, groupes et domaines) ont accès à quelles ressources Google Cloud en fonction de vos stratégies d'autorisation IAM.

Policy Analyzer peut vous aider à répondre aux questions suivantes:

  • Qui peut accéder à ce compte de service IAM ?
  • Qui peut lire les données de cet ensemble de données BigQuery contenant des informations personnelles ?
  • Quels rôles et autorisations ont le groupe dev-testers sur une ressource de ce projet ?
  • Quelles instances de machine virtuelle (VM) Compute Engine peuvent-elles supprimer dans le projet A ?
  • Quels utilisateurs peuvent accéder à ce bucket Cloud Storage à 19h ?

Fonctionnement de Policy Analyzer

Pour utiliser Policy Analyzer, créez une requête d'analyse, spécifiez un champ d'application de l'analyse, puis exécutez la requête.

Requêtes d'analyse

Pour utiliser Policy Analyzer, vous devez créer une requête d'analyse et spécifier un ou plusieurs des champs suivants:

  • Comptes principaux: identités (utilisateurs, comptes de service, groupes et domaines, par exemple) dont vous souhaitez vérifier l'accès
  • Accès: autorisations et rôles que vous souhaitez vérifier
  • Ressources: ressources pour lesquelles vous souhaitez vérifier l'accès
  • (API uniquement) Contexte de la condition: le contexte (par exemple, l'heure de la journée) dans lequel vous souhaitez vérifier l'accès

En règle générale, vous spécifiez un ou deux de ces champs dans la requête d'analyse, puis vous utilisez les résultats de la requête pour obtenir plus d'informations sur les champs que vous n'avez pas spécifiés. Par exemple, si vous souhaitez savoir qui dispose d'une certaine autorisation sur une ressource donnée, vous devez spécifier l'accès et la ressource dans la requête d'analyse, mais pas le compte principal.

Pour plus d'exemples de types de requêtes que vous pouvez créer, consultez la section Types de requêtes courants.

Champ d'application de l'analyse

Pour exécuter une requête d'analyse, vous devez spécifier une portée à analyser. Le champ d'application correspond à une organisation, un dossier ou un projet pour lequel vous souhaitez limiter votre analyse. Seules les stratégies d'autorisation IAM associées à la ressource utilisée en tant que champ d'application et à ses descendants sont analysées.

Dans l'API REST et dans la CLI gcloud, vous spécifiez le champ d'application manuellement. Dans Cloud Console, le niveau d'accès est automatiquement déterminé en fonction du projet, du dossier ou de l'organisation que vous gérez actuellement.

Après avoir créé une requête d'analyse et spécifié le champ d'application, vous pouvez exécuter la requête pour analyser les règles de ce champ d'application.

Query results

Lorsque vous exécutez une requête d'analyse, Policy Analyzer signale les liaisons de rôles qui contiennent les comptes principaux, l'accès et les ressources que vous avez spécifiés dans la requête. Pour chaque liaison de rôle, elle signale les comptes principaux de la liaison, l'accès (rôle et autorisations) accordé par la liaison et la ressource à laquelle la liaison accorde l'accès.

Vous pouvez consulter ces résultats pour mieux comprendre l'accès à votre projet, dossier ou organisation. Par exemple, si vous avez exécuté une requête pour identifier les comptes principaux ayant accès à une ressource spécifique, vous devez passer en revue les comptes principaux dans les résultats de la requête.

Vous pouvez ajuster les informations contenues dans les résultats de votre requête en activant les options de requête.

Types de stratégies acceptés

L'analyseur de stratégie IAM n'est compatible qu'avec les stratégies d'autorisation IAM.

Policy Analyzer n'est pas compatible avec les formes de contrôle d'accès suivantes:

Héritage des stratégies

Pour prendre en compte l'héritage des règles, Policy Analyzer analyse automatiquement toutes les règles d'autorisation pertinentes dans le champ d'application spécifié, quel que soit leur emplacement dans la hiérarchie des ressources.

Par exemple, imaginez que vous essayez de savoir qui peut accéder à un compte de service IAM:

  • Si vous limitez la requête à un projet, Policy Analyzer analyse la stratégie d'autorisation du compte de service et la règle d'autorisation du projet.
  • Si vous limitez la requête à une organisation, Policy Analyzer analyse la stratégie d'autorisation du compte de service, la règle d'autorisation du projet propriétaire du compte de service, les règles d'autorisation de tous les dossiers contenant le projet et la règle d'autorisation de l'organisation.

Accès conditionnel

Si une liaison de rôle comporte une condition, elle n'accorde un accès principal que lorsque cette condition est remplie. Policy Analyzer indique toujours les conditions qui sont associées à vos liaisons de rôles. Les liaisons de rôles pertinentes sont des liaisons de rôles contenant les comptes principaux, l'accès et les ressources que vous avez spécifiés dans la requête d'analyse.

Dans certains cas, Policy Analyzer peut également analyser la condition, ce qui signifie qu'il peut indiquer si la condition est remplie. Policy Analyzer peut analyser les types de conditions suivants:

Si une liaison de rôle pertinente contient une condition, Policy Analyzer effectue l'une des opérations suivantes:

  • Si Policy Analyzer peut effectuer une analyse, il effectue l'une des opérations suivantes:

    • Si la condition est remplie, la fonctionnalité Policy Analyzer inclut la liaison de rôle dans les résultats de la requête et définit l'évaluation de la condition sur TRUE.
    • Si la condition renvoie la valeur "false", Policy Analyzer n'inclut pas le rôle dans les résultats de la requête.
  • Si Policy Analyzer ne peut pas analyser une condition pour une liaison de rôle pertinente, il inclut le rôle dans les résultats de la requête et marque l'évaluation de la condition sur CONDITIONAL.

Types de requêtes courants

Cette section explique comment utiliser les requêtes d'analyse pour répondre aux questions courantes liées aux accès.

Quels comptes principaux peuvent accéder à cette ressource ?

Pour déterminer les comptes principaux pouvant accéder à une ressource, créez une requête d'analyse qui spécifie la ressource et, éventuellement, les rôles et les autorisations que vous souhaitez vérifier.

Ces requêtes peuvent vous aider à répondre aux questions suivantes:

  • Qui a accès à ce compte de service IAM ?
  • Qui est autorisé à emprunter l'identité de ce compte de service IAM ?
  • Qui sont les administrateurs de la facturation pour le projet A ?
  • (API et gcloud CLI uniquement): qui peut mettre à jour le projet A en empruntant l'identité d'un compte de service ?

Pour savoir comment créer et envoyer ces requêtes, consultez la section Déterminer les comptes principaux pouvant accéder à une ressource.

Quels comptes principaux disposent de ces rôles et autorisations ?

Pour déterminer les comptes principaux dotés de certains rôles et autorisations, créez une requête d'analyse qui spécifie un compte principal et un ensemble de rôles et d'autorisations à vérifier.

Ces requêtes peuvent vous aider à répondre aux questions suivantes:

  • Qui est autorisé à emprunter l'identité des comptes de service de mon organisation ?
  • Qui sont les administrateurs de la facturation dans mon organisation ?
  • Qui peut lire les données de cet ensemble de données BigQuery contenant des informations personnelles ?
  • (API et gcloud CLI uniquement): qui peut lire un ensemble de données BigQuery en empruntant l'identité d'un compte de service ?

Pour savoir comment créer et envoyer ces requêtes, consultez Déterminer les comptes principaux qui disposent de certains rôles ou autorisations.

Quels rôles et autorisations ont ce compte principal sur cette ressource ?

Pour déterminer les rôles et les autorisations d'un compte principal sur une ressource spécifique, créez une requête d'analyse qui spécifie un compte principal et une ressource pour lesquels vous souhaitez vérifier les autorisations.

Ces requêtes peuvent vous aider à répondre aux questions suivantes:

  • Quels sont les rôles et les autorisations de l'utilisateur Sasha sur cet ensemble de données BigQuery ?
  • Quels rôles et autorisations ont le groupe dev-testers sur une ressource de ce projet ?
  • (API et gcloud uniquement): quels rôles et autorisations l'utilisateur Dana a-t-il sur cet ensemble de données BigQuery s'il usurpe l'identité d'un compte de service ?

Pour savoir comment créer et envoyer ces requêtes, consultez la section Déterminer les droits d'accès d'un compte principal sur une ressource.

À quelles ressources ce compte principal peut-il accéder ?

Pour déterminer les ressources auxquelles un compte principal spécifique peut accéder, créez une requête d'analyse qui spécifie un compte principal, ainsi que les rôles et les autorisations que vous souhaitez vérifier.

Ces requêtes peuvent vous aider à répondre aux questions suivantes:

  • Dans quels ensembles de données BigQuery l'utilisateur Mahan est-il autorisé à lire ?
  • Quels ensembles de données BigQuery sont les groupes dev-testers dont le propriétaire est ?
  • Quelles VM peut-il supprimer dans le projet A ?
  • (API et gcloud uniquement): pour quelles VM l'utilisateur John peut-il supprimer en empruntant l'identité d'un compte de service ?

Pour savoir comment créer et envoyer ces requêtes, consultez Déterminer les ressources auxquelles un compte principal peut accéder.

Requêtes d'analyse enregistrées

Si vous utilisez l'API REST, vous pouvez enregistrer des requêtes d'analyse afin de les réutiliser ou de les partager avec d'autres utilisateurs. Vous pouvez exécuter une requête enregistrée comme vous le feriez pour n'importe quelle autre requête.

Pour en savoir plus sur l'enregistrement de requêtes, consultez Requêtes enregistrées gérées.

Exporter des résultats de requête

Vous pouvez exécuter des requêtes de manière asynchrone et les exporter vers BigQuery ou Cloud Storage à l'aide de analyzeIamPolicyLongrunning.

Pour savoir comment exporter des résultats de requête vers BigQuery, consultez l'article Écrire une analyse des règles dans BigQuery.

Pour savoir comment exporter des résultats de requête vers Cloud Storage, consultez la section Écrire une analyse des règles dans Cloud Storage.

Options de requête

Policy Analyzer propose plusieurs options pour ajouter des détails supplémentaires à vos résultats de requête.

Pour savoir comment activer ces options, consultez Activer les options.

Expansion de groupe

Si vous activez l'élargissement des groupes, tous les groupes figurant dans les résultats de la requête sont développés en membres individuels. Cette expansion est limitée à 1 000 membres par groupe. Si vous disposez des autorisations suffisantes sur les groupes, les groupes imbriqués sont également développés. Cette option n'est efficace que si vous ne spécifiez pas de compte principal dans votre requête.

Par exemple, imaginez que vous avez activé l'expansion des groupes pour la requête "Qui dispose de l'autorisation storage.buckets.delete pour "project-1" ; si l'outil Policy Analyzer détecte tous les groupes disposant de l'autorisation storage.buckets.delete, les résultats de la requête listeront non seulement l'identifiant du groupe, mais également tous les membres individuels du groupe.

Cette option vous permet de comprendre les accès individuels des utilisateurs, même s'ils en font partie grâce à leur appartenance à un groupe.

Extension de rôle

Si vous activez l'extension des rôles, les résultats de la requête répertorient toutes les autorisations contenues dans 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.

Par exemple, imaginez que vous avez activé l'extension des rôles pour la requête "Quel accès possède my-user@example.com sur le bucket bucket-1" ; si Policy Analyzer contient tous les rôles qui donnent à my-user@example.com l'accès à bucket-1, les résultats de la requête répertorient non seulement le nom du rôle, mais également toutes les autorisations incluses dans le rôle.

Cette option vous permet de voir exactement quelles autorisations vos comptes principaux possèdent.

Élargissement des ressources

Si vous activez l'extension des ressources pour une requête Policy Analyzer, les résultats de la requête répertorient toutes les ressources descendantes pertinentes pour toutes les ressources parentes (projets, dossiers et organisations). Cette expansion est limitée à 1 000 ressources par ressource parente pour les requêtes de l'outil d'analyse de règles et à 100 000 ressources par ressource parente pour les requêtes de longue durée Policy Analyzer.

Prenons l'exemple de l'impact de l'élargissement des ressources sur les requêtes suivantes:

  • Qui dispose de l'autorisation storage.buckets.delete pour project-1 ?

    Si vous activez l'extension des ressources pour cette requête, la section des ressources des résultats de la requête listera non seulement le projet, mais aussi tous les buckets de stockage qu'il contient.

  • Sur quelles ressources my-user@example.com dispose-t-il de l'autorisation compute.instances.setIamPolicy ?

    Si vous activez l'extension des ressources pour cette requête et que l'outil Policy Analyzer détecte que my-user@example.com dispose d'un rôle au niveau du projet qui contient cette autorisation, la section des ressources des résultats de requête répertorie non seulement le projet, mais aussi toutes les instances Compute Engine qu'il contient.

Cette option vous permet de mieux comprendre les ressources auxquelles vos comptes principaux peuvent accéder.

Emprunter l'identité d'un compte de service

Si vous utilisez l'API REST ou la CLI gcloud, vous pouvez activer l'analyse de l'emprunt d'identité de compte de service.

Si cette option est activée, Policy Analyzer exécute des requêtes d'analyse supplémentaires pour déterminer qui peut emprunter l'identité des comptes de service disposant 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

Quotas et limites

L'inventaire des éléments cloud applique le taux de requêtes entrantes, y compris les requêtes d'analyse de règles, en fonction du projet client. L'inventaire des éléments cloud limite également l'expansion des groupes dans le cadre des appartenances aux groupes et l'expansion des ressources dans la hiérarchie des ressources.

Pour connaître les quotas et les limites par défaut pour Policy Analyzer, consultez la page Quotas et limites dans la documentation Cloud Asset Inventory.

Étapes suivantes