Policy Analyzer pour les stratégies IAM

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

Policy Analyzer 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 utiliser Policy Analyzer, vous devez créer une requête d'analyse, spécifier un champ d'application pour puis exécuter la requête.

Requêtes d'analyse

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

  • Comptes principaux: identités (par exemple, utilisateurs, comptes de service, groupes, et domaines) dont vous souhaitez vérifier l'accès
  • Accès: les autorisations et les rôles que vous souhaitez vérifier
  • Ressources: les ressources auxquelles vous souhaitez vérifier l'accès
  • (API uniquement) Contexte de la condition: le contexte (par exemple, l'heure à laquelle jour) : 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 utiliser les résultats de la requête pour obtenir plus d'informations sur les champs que vous n'avez pas spécifier. Par exemple, si vous voulez savoir qui dispose d'une autorisation ressource spécifique, vous devez spécifier l'accès et la ressource dans l'analyse sans spécifier le compte principal.

Pour voir d'autres exemples de types de requêtes que vous pouvez créer, consultez la section Requête courante différents types d'appareil.

Portée de l'analyse

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

Dans l'API REST et dans gcloud CLI, vous spécifiez le champ d'application manuellement. Dans la console Google Cloud, le champ d'application est automatiquement déterminé en fonction projet, dossier ou organisation que vous gérez actuellement.

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

Résultats de la requête

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

Vous pouvez examiner ces résultats pour mieux comprendre l'accès dans votre projet, dossier ou organisation. Par exemple, si vous avez exécuté une requête pour déterminer comptes principaux ont accès à une ressource spécifique, vérifiez 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 options.

Types de stratégies acceptés

IAM Policy Analyzer n'accepte que la stratégie d'autorisation IAM règles.

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

Les résultats de la requête Policy Analyzer ne prennent pas en compte les types de règles non compatibles. Pour Imaginons qu'un utilisateur dispose de l'autorisation iam.roles.get sur un projet en raison d'une règle d'autorisation, mais une règle de refus l'empêche d'utiliser l'autorisation. Policy Analyzer indiquera qu'il dispose du iam.roles.get l’autorisation, malgré la stratégie de refus.

Héritage des règles

Pour prendre en compte l'héritage des stratégies, 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, 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 les règles d'autorisation du compte de service et d'autorisation du projet.
  • Si vous définissez le champ d'application de la requête sur une organisation, Policy Analyzer analyse les autorisations du compte de service, la règle d'autorisation du projet auquel appartient compte de service, les stratégies 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 qu'un compte principal un accès lorsque cette condition est remplie. Policy Analyzer indique toujours les conditions associées aux liaisons de rôles pertinentes. Les liaisons de rôles pertinentes sont 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, Policy Analyzer peut également analyser la condition, ce qui signifie qu'elle 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 les éléments suivants:

  • Si Policy Analyzer parvient à analyser la condition, il effectue l'une des opérations suivantes:

    • Si la condition renvoie la valeur "true", Policy Analyzer inclut le 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", Policy Analyzer n'inclut pas la 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 en tant que CONDITIONAL.

Fraîcheur des données

Policy Analyzer utilise l'API Cloud Asset, qui offre une fraîcheur des données optimale. Bien que la quasi-totalité des mises à jour de stratégies apparaissent dans Policy Analyzer en quelques minutes, il est possible que Policy Analyzer n'inclue pas les mises à jour de stratégie les plus récentes.

Types de requêtes courants

Cette section explique comment utiliser des requêtes d'analyse pour répondre à des les questions 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 spécifiant la ressource et, éventuellement, les rôles et les autorisations 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 service IAM compte ?
  • Qui sont les administrateurs de la facturation sur le projet A ?
  • (API et gcloud CLI uniquement): Qui peut mettre à jour le projet A 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 peuvent accéder à une ressource.

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

Pour déterminer quels comptes principaux disposent de certains rôles et autorisations, créez une requête d'analyse spécifiant 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 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 permettant d'identifier personnellement l'utilisateur ?
  • (API et gcloud CLI uniquement): Qui dans mon organisation peut lire un 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 les comptes principaux disposer de certains rôles ou autorisations.

De quels rôles et autorisations ce compte principal dispose-t-il sur cette ressource ?

Pour déterminer les rôles et les autorisations dont dispose un compte principal sur une ressource spécifique, créer une requête d'analyse spécifiant 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 autorisations dont dispose l'utilisateur Sasha sur ce 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 rôles et autorisations permettent de l'utilisateur Dana sur cet ensemble de données BigQuery. usurpe l'identité d'un compte de service ?

Pour savoir comment créer et envoyer ces requêtes, consultez la section Déterminer quel type d'accès 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 analyse spécifiant un compte principal, ainsi que les rôles et les autorisations vérifier.

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

  • De quels ensembles de données BigQuery dispose l'utilisateur Mahan de lecture ?
  • Quels ensembles de données BigQuery correspondent au groupe dev-testers 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 la section Déterminer les ressources compte principal autorisé à y 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 personnes. 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 des requêtes, consultez l'article 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 dans BigQuery ou Cloud Storage en utilisant analyzeIamPolicyLongrunning

Pour savoir comment exporter des résultats de requête vers BigQuery, consultez la section Écrire l'analyse des stratégies dans BigQuery.

Pour savoir comment exporter des résultats de requête vers Cloud Storage, consultez la section Écrire l'analyse des stratégies dans Cloud Storage.

Options de requête

Policy Analyzer propose plusieurs options qui ajoutent des détails à votre requête résultats.

Pour découvrir comment activer ces options, consultez la section Activer les options.

Expansion du groupe

Si vous activez l'extension de groupe, tous les groupes figurant dans les résultats de la requête sont étendu à des membres individuels. Cette extension est limitée à 1 000 membres par groupe. Si vous avez autorisations de groupe suffisantes, 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.

Imaginons, par exemple, que vous activiez l'extension de groupe pour la requête "Qui a le Autorisation storage.buckets.delete pour project-1 ? Si Policy Analyzer détecte tous les groupes disposant de l'autorisation storage.buckets.delete, les résultats de la requête répertorie non seulement l'identifiant du groupe, mais aussi tous les membres individuels du groupe.

Cette option vous permet de connaître l'état l’accès, même si cet accès est par rapport à leur appartenance à un groupe.

Extension des rôles

Si vous activez l'extension de rôle, les résultats de la requête répertorient toutes les autorisations contenues dans chaque en plus du rôle lui-même. Cette option n'est disponible que si vous spécifier des autorisations ou des rôles dans votre requête.

Par exemple, imaginez que vous activez l'extension de rôle pour la requête "Quel est l'accès my-user@example.com ont-ils sur le bucket bucket-1 ?" Si Policy Analyzer détecte tous les rôles qui accordent à my-user@example.com l'accès à bucket-1, la requête les résultats afficheront non seulement le nom du rôle, mais aussi toutes les autorisations incluses dans le poste.

Cette option vous permet de connaître précisément les autorisations dont vos comptes principaux disposent.

Extension des ressources

Si vous activez l'extension des ressources pour une requête Policy Analyzer, les résultats de la requête Répertorier toutes les ressources descendantes pertinentes pour tous les parents (projets, dossiers et organisations) dans les résultats de la requête. Ce est plafonnée à 1 000 par ressource parente pour les requêtes Policy Analyzer et 100 000 ressources par ressource parente pour les requêtes de longue durée Policy Analyzer.

Par exemple, réfléchissez à l'impact que l'extension des ressources pourrait avoir 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 "Ressources" de les résultats de la requête listent non seulement le projet, mais aussi tous les buckets de stockage dans le projet.

  • Quelles ressources possède my-user@example.com Autorisation compute.instances.setIamPolicy activée ?

    Si vous activez l'extension des ressources pour cette requête et que Policy Analyzer 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 affiche non seulement le projet, mais aussi et toutes les instances Compute Engine du projet.

Cette option vous permet d'obtenir des informations détaillées sur les ressources auxquels les comptes 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 d'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éterminent qui peut emprunter l'identité des comptes de service disposant du rôle l'accès 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 permettent d'identifier les 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 règles les demandes d'analyse, en fonction du projet du consommateur. L'inventaire des éléments cloud limite l'expansion des groupes dans les adhésions aux groupes et l'expansion des ressources dans la hiérarchie des ressources.

Pour connaître les quotas et limites par défaut de Policy Analyzer, consultez la section Quotas et de Cloud Asset dans la documentation sur l'inventaire des éléments cloud.

Tarifs

Chaque organisation peut exécuter de requêtes d'analyse par jour, sans frais. Cette limite inclut à la fois des règles d'autorisation et l'analyse des règles d'administration.

Si vous souhaitez exécuter plus de 20 analyses par jour, vous devez activer au niveau de l'organisation de Security Command Center. Pour en savoir plus, consultez la section Facturation questions.

Étape suivante