Policy Analyzer pour les stratégies d'autorisation vous permet d'identifier quels comptes principaux (par exemple, utilisateurs, comptes de service, groupes et domaines) disposent de quel accès à quelles ressources Google Cloud selon vos stratégies d'autorisation IAM.
Policy Analyzer pour les règles d'autorisation peut vous aider à répondre à des questions comme celles-ci:
- 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 permettant d'identifier personnellement l'utilisateur ?
- De quels rôles et autorisations dispose le groupe
dev-testers
sur n'importe quelle ressource de ce projet ? - Quelles instances de machines virtuelles (VM) Compute Engine peuvent-être supprimées par Tal dans le projet A ?
- Qui peut accéder à ce bucket Cloud Storage à 19h ?
Fonctionnement de Policy Analyzer pour les stratégies d'autorisation
Pour utiliser Policy Analyzer pour les règles d'autorisation, vous devez créer une requête d'analyse, spécifier un champ d'application pour l'analyse, puis exécuter la requête.
Requêtes d'analyse
Pour utiliser l'analyseur de règles, vous devez créer une requête d'analyse en spécifiant un ou plusieurs des champs suivants:
- Entités principales: 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 rechercher
- Ressources: ressources pour lesquelles vous souhaitez vérifier l'accès
- (API uniquement) Contexte de condition: contexte (par exemple, heure de la journée) sous 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 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 autorisation spécifique sur une ressource spécifique, vous devez spécifier l'accès et la ressource dans la requête d'analyse, mais pas le principal.
Pour obtenir d'autres exemples des 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 un champ d'application à analyser. Le champ d'application correspond à une organisation, un dossier ou un projet auquel vous souhaitez limiter votre analyse. Seules les stratégies d'autorisation IAM associées à la ressource utilisée comme champ d'application et à ses descendants seront analysées.
Dans l'API REST et gcloud CLI, vous spécifiez la portée manuellement. Dans la console Google Cloud, le champ d'application est automatiquement déterminé en fonction du projet, du dossier ou de l'organisation que vous gérez.
Une fois que vous avez créé une requête d'analyse et spécifié la portée, vous pouvez exécuter la requête pour analyser les règles de cette portée.
Résultats de la requête
Lorsque vous exécutez une requête d'analyse, Policy Analyzer signale toutes les liaisons de rôle contenant les comptes principaux, les accès et les ressources que vous avez spécifiés dans la requête. Pour chaque liaison de rôle, il indique les principaux de la liaison, l'accès (rôle et autorisations) qu'elle accorde et la ressource à laquelle elle accorde l'accès.
Vous pouvez examiner ces résultats pour mieux comprendre l'accès dans votre projet, votre dossier ou votre organisation. Par exemple, si vous avez exécuté une requête pour savoir quels comptes principaux ont accès à une ressource spécifique, vous examinez les comptes principaux dans les résultats de la requête.
Vous pouvez ajuster les informations dans les résultats de vos requêtes en activant les options de requête.
Types de stratégies acceptés
Policy Analyzer pour les stratégies d'autorisation n'est compatible qu'avec les stratégies d'autorisation IAM.
Policy Analyzer pour les stratégies d'autorisation n'est pas compatible avec les formes de contrôle des accès suivantes:
- Stratégies de refus IAM
- Stratégies de limite d'accès des comptes principaux IAM
- Contrôle des accès basé sur les rôles dans Google Kubernetes Engine
- Listes de contrôle d'accès Cloud Storage
- Protection contre l'accès public dans Cloud Storage
Les résultats de la requête de l'analyseur de règles ne tiennent pas compte des types de règles non compatibles. Par exemple, imaginons qu'un utilisateur dispose de l'autorisation iam.roles.get
sur un projet en raison d'une stratégie d'autorisation, mais qu'une stratégie de refus l'empêche d'utiliser cette autorisation. Policy Analyzer indiquera qu'il dispose de l'autorisation iam.roles.get
, malgré la stratégie de refus.
Héritage des règles
Pour tenir compte de l'héritage de règles, Policy Analyzer analyse automatiquement toutes les stratégies d'autorisation pertinentes dans le champ d'application spécifié, quel que soit leur emplacement dans la hiérarchie des ressources.
Par exemple, imaginons que vous essayiez de savoir qui peut accéder à un compte de service IAM:
- Si vous limitez la requête à un projet, l'analyseur de règles analyse la stratégie d'autorisation du compte de service et la stratégie 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 stratégie d'autorisation du projet propriétaire du compte de service, les stratégies d'autorisation de tous les dossiers contenant le projet et la stratégie d'autorisation de l'organisation.
Accès conditionnel
Si une liaison de rôle comporte une condition, elle n'accorde l'accès à un compte principal que lorsque cette condition est remplie. Policy Analyzer signale toujours les conditions associées aux liaisons de rôle pertinentes. Les liaisons de rôles pertinentes sont des 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 d'analyse.
Dans certains cas, l'outil d'analyse des règles peut également analyser la condition, ce qui signifie qu'il peut indiquer si elle est remplie. Policy Analyzer peut analyser les types de conditions suivants:
- Conditions basées sur les attributs de ressource, pour les types de ressources qui fournissent un nom de ressource.
- Conditions de date/heure (API et gcloud CLI uniquement) Pour que Policy Analyzer analyse ces conditions, vous devez indiquer l'heure de l'accès (
accessTime
) dans votre requête d'analyse. Pour savoir comment fournir ce contexte, consultez la section Déterminer l'accès à un moment spécifique.
Si une liaison de rôle pertinente contient une condition, l'outil d'analyse des stratégies effectue l'une des opérations suivantes:
Si Policy Analyzer peut analyser la condition, il effectue l'une des opérations suivantes:
- Si la condition renvoie la valeur "true", l'analyseur de règles inclut la liaison de rôle dans les résultats de la requête et marque l'évaluation de la condition comme
TRUE
. - Si la condition renvoie la valeur "false", l'outil d'analyse des stratégies n'inclut pas le rôle dans les résultats de la requête.
- Si la condition renvoie la valeur "true", l'analyseur de règles inclut la liaison de rôle dans les résultats de la requête et marque l'évaluation de la condition comme
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 comme
CONDITIONAL
.
Fraîcheur des données
L'outil d'analyse des règles utilise l'API Cloud Asset, qui offre une fraîcheur des données optimale. Presque toutes les mises à jour de règles apparaissent dans Policy Analyzer en quelques minutes, mais il est possible que Policy Analyzer n'inclue pas les mises à jour de règles les plus récentes.
Types de requêtes courants
Cette section explique comment utiliser des requêtes d'analyse pour répondre aux questions courantes liées à l'accès.
Quels comptes principaux peuvent accéder à cette ressource ?
Pour déterminer quels comptes principaux peuvent 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 à des questions comme:
- Qui a accès à ce compte de service IAM ?
- Qui dispose de l'autorisation sur ce compte de service IAM ?
- Quels comptes principaux sont administrateurs de facturation sur le projet A ?
- (API et gcloud CLI uniquement) Qui peut mettre à jour le projet A en usurpant l'identité d'un compte de service ?
Pour savoir comment créer et envoyer ces requêtes, consultez Déterminer les principaux pouvant accéder à une ressource.
Quels comptes principaux disposent de ces rôles et autorisations ?
Pour déterminer les comptes principaux disposant 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 que vous souhaitez vérifier.
Ces requêtes peuvent vous aider à répondre à des questions comme:
- 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 permettant d'identifier personnellement l'utilisateur ?
- (API et gcloud CLI uniquement) Qui dans mon organisation peut lire un ensemble de données BigQuery en usurpant l'identité d'un compte de service ?
Pour savoir comment créer et envoyer ces requêtes, consultez la section Déterminer quels comptes principaux disposent de certains rôles ou autorisations.
De quels rôles et autorisations dispose ce compte principal sur cette ressource ?
Pour déterminer les rôles et les autorisations dont dispose 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 laquelle vous souhaitez vérifier les autorisations.
Ces requêtes peuvent vous aider à répondre à des questions comme:
- Quels rôles et autorisations l'utilisateur Sasha dispose-t-il sur cet ensemble de données BigQuery ?
- De quels rôles et autorisations dispose le groupe
dev-testers
sur n'importe quelle ressource de ce projet ? - (API et gcloud CLI uniquement) Quels sont les rôles et autorisations dont dispose l'utilisateur Dana sur cet ensemble de données BigQuery si Dana usurpe l'identité d'un compte de service ?
Pour savoir comment créer et envoyer ces requêtes, consultez Déterminer le niveau d'accès d'un 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 à des questions comme:
- Quels ensembles de données BigQuery l'utilisateur Mahan est-il autorisé à lire ?
- Quels ensembles de données BigQuery appartiennent au groupe
dev-testers
du propriétaire des données ? - Quelles VM Tal peut-il supprimer dans le projet A ?
- (API et gcloud CLI uniquement) Quelles VM l'utilisateur John peut-il supprimer en usurpant l'identité d'un compte de service ?
Pour savoir comment créer et envoyer ces requêtes, consultez Déterminer les ressources auxquelles un principal peut accéder.
Requêtes d'analyse enregistrées
Si vous utilisez l'API REST, vous pouvez enregistrer des requêtes d'analyse pour les réutiliser ou les partager avec d'autres utilisateurs. Vous pouvez exécuter une requête enregistrée comme n'importe quelle autre requête.
Pour en savoir plus sur l'enregistrement de requêtes, consultez Gérer les requêtes enregistrées.
Exporter des résultats de requête
Vous pouvez exécuter des requêtes de manière asynchrone et exporter les résultats de la requête vers BigQuery ou Cloud Storage à l'aide de analyzeIamPolicyLongrunning
.
Pour savoir comment exporter les résultats des requêtes vers BigQuery, consultez Écrire une analyse de stratégie dans BigQuery.
Pour savoir comment exporter les résultats de requête vers Cloud Storage, consultez Écrire une analyse de stratégie dans Cloud Storage.
Options de requête
Policy Analyzer propose plusieurs options qui ajoutent plus de détails aux résultats de votre requête.
Pour savoir comment activer ces options, consultez Activer les options.
Développer un groupe
Si vous activez l'expansion des groupes, tous les groupes des résultats de la requête sont développés en membres individuels. Cette extension est limitée à 1 000 membres par groupe. Si vous disposez des autorisations suffisantes sur le groupe, les groupes imbriqués seront également développés. Cette option n'est efficace que si vous ne spécifiez pas de principal dans votre requête.
Par exemple, imaginons que vous activiez l'expansion de groupe pour la requête "Qui dispose de l'autorisation storage.buckets.delete
pour project-1
?". Si l'outil d'analyse des stratégies détecte des 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 l'accès des utilisateurs individuels, même s'il est le résultat de leur appartenance à un groupe.
Développement des rôles
Si vous activez l'expansion des rôles, les résultats de la requête répertorient 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.
Par exemple, imaginons que vous activez l'expansion des rôles pour la requête "Quel accès my-user@example.com
a-t-il sur le bucket bucket-1
?" Si l'analyseur de stratégie détecte des rôles qui donnent à my-user@example.com
accès à bucket-1
, les résultats de la requête listeront 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 disposent.
Élargissement des ressources
Si vous activez l'expansion des ressources pour une requête de l'outil d'analyse des règles, les résultats de la requête répertorient toutes les ressources descendantes pertinentes pour toutes les ressources parentes (projets, dossiers et organisations) dans les résultats de la requête. Cette expansion est limitée à 1 000 ressources par ressource parente pour les requêtes Policy Analyzer et à 100 000 ressources par ressource parente pour les requêtes Policy Analyzer de longue durée.
Par exemple, examinons l'impact de l'expansion des ressources sur les requêtes suivantes:
Qui dispose de l'autorisation
storage.buckets.delete
pourproject-1
?Si vous activez l'expansion des ressources pour cette requête, la section "Ressources" des résultats de la requête ne répertorie pas seulement le projet, mais également tous les buckets de stockage du projet.
Sur quelles ressources
my-user@example.com
dispose-t-il de l'autorisationcompute.instances.setIamPolicy
?Si vous activez l'expansion des ressources pour cette requête et que l'outil d'analyse des règles détecte que
my-user@example.com
dispose d'un rôle au niveau du projet qui contient cette autorisation, la section "Ressources" des résultats de la requête répertorie non seulement le projet, mais également toutes les instances Compute Engine du projet.
Cette option vous permet d'obtenir une compréhension détaillée des ressources auxquelles vos principaux peuvent accéder.
Emprunter l'identité d'un compte de service
Si vous utilisez l'API REST ou gcloud CLI, vous pouvez activer l'analyse de l'usurpation d'identité d'un 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 usurper 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 les utilisateurs disposant 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
Inventaire des éléments cloud applique les taux de requêtes entrantes, y compris les requêtes d'analyse des règles, en fonction du projet client. L'inventaire des éléments cloud limite également l'expansion des groupes au sein des appartenances aux groupes et l'expansion des ressources au sein de la hiérarchie des ressources.
Pour afficher les quotas et limites par défaut de l'outil d'analyse des règles, consultez la section Quotas et limites de la documentation sur l'inventaire des éléments cloud.
Tarifs
Chaque organisation peut exécuter jusqu'à 20 requêtes d'analyse par jour sans frais. Cette limite inclut à la fois l'analyse des règles d'autorisation et l'analyse des règles d'administration.
Si vous souhaitez exécuter plus de 20 requêtes d'analyse par jour, vous devez activer le niveau Premium de Security Command Center au niveau de l'organisation. Pour en savoir plus, consultez Questions sur la facturation.
Étape suivante
- Découvrez comment utiliser Policy Analyzer pour analyser une stratégie d'autorisation.
- Découvrez comment utiliser l'API REST pour enregistrer des requêtes d'analyse des règles.