Analyser les règles IAM

Cette page explique comment utiliser Policy Analyzer pour identifier les identités, ou les comptes principaux (utilisateurs, comptes de service, groupes et domaines), le type d'accès dont ils disposent pour quelles ressources Google Cloud.

Policy Analyzer peut vous aider à répondre à de nombreuses questions courantes, par exemple "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 ?" ou "Qui peut accéder à ce bucket Cloud Storage à la date et à l'heure X ?"

La méthode AnalyzeIamPolicy permet d'émettre une requête d'analyse, puis d'obtenir les résultats dans sa réponse. Notez que les résultats de l'analyse peuvent ne pas être complets, en fonction de la quantité de données à traiter. Si vous souhaitez obtenir des résultats complets, écrire les résultats pour une analyse ultérieure ou les stocker vous-même, vous pouvez utiliser AnalyzeIamPolicyLongrunning pour écrire sur BigQuery ou Cloud Storage.

Présentation

L'API Policy Analyzer vous permet d'administrer les accès, offre de la visibilité sur les accès, et peut également être utilisée pour les tâches d'audit et de conformité.

En particulier :

  • Policy Analyzer prend en charge la hiérarchie et l'héritage des stratégies et des ressources. Les règles héritées et la hiérarchie des ressources sous le champ d'application de l'analyse que vous avez spécifiées seront prises en compte lors de l'analyse des stratégies en vigueur.
  • Policy Analyzer accepte l'extension des groupes d'utilisateurs. Par conséquent, même si un utilisateur est inclus dans un groupe, nous pouvons tout de même identifier son accès.
  • Policy Analyzer accepte l'extension des rôles, ce qui offre une plus grande flexibilité dans vos requêtes, car vous pouvez effectuer des requêtes par autorisation et/ou par rôle.
  • Policy Analyzer accepte un ensemble limité d'extensions de ressources au sein de la hiérarchie des ressources. Par exemple, dans les résultats de la requête, vous pouvez développer toutes les instances de VM dans un projet ou tous les projets d'un dossier.
  • Policy Analyzer accepte les liaisons de rôles conditionnelles IAM, mais il peut nécessiter un contexte supplémentaire sur la requête. Par exemple, pour analyser les conditions en fonction d'attributs de date/heure, Policy Analyzer requiert le moment précis dans la requête. Cette fonctionnalité n'est disponible que via l'API et l'outil gcloud.
  • Lors de l'analyse des stratégies IAM, Policy Analyzer accepte l'analyse d'emprunt d'identité d'un compte de service, y compris l'emprunt d'identité "en chaîne" à de nombreux niveaux. Policy Analyzer permet d'analyser tout accès indirect via des comptes de service. Cette fonctionnalité n'est disponible que via l'API et l'outil gcloud.

Par exemple, les cas d'utilisation suivants sont possibles :

  • Déterminer les comptes principaux qui peuvent accéder à une ressource : recherchez les comptes principaux autorisés à accéder à une ressource spécifiée. Ce type d'analyse peut servir à répondre à des questions telles que les suivantes :

    • "Qui a accès à ce compte de service IAM ?"
    • "Qui dispose de l'autorisation sur ce compte de service IAM ?"
    • "Qui sont les administrateurs de facturation sur le Projet A ?"
    • (API et outil gcloud uniquement) "Qui peut mettre à jour le projet A en empruntant l'identité d'un compte de service ?"
  • Déterminer les comptes principaux disposant de certains rôles ou autorisations : identifiez les comptes principaux qui disposent des rôles/autorisations spécifiés sur les ressources applicables. Ce type d'analyse peut servir à répondre aux questions suivantes :

    • "Qui est autorisé à emprunter l'identité des comptes de service de mon organisation ?"
    • "Qui sont les administrateurs de facturation dans mon organisation ?"
    • (API et outil gcloud uniquement) "Qui dans mon organisation peut lire un ensemble de données BigQuery en empruntant l'identité d'un compte de service ?"
  • Déterminer le niveau d'accès dont dispose un compte principal sur une ressource : identifiez l'accès accordé à une ressource spécifiée sur un compte principal spécifié. Ce type d'analyse peut servir à répondre aux questions suivantes :

    • "Quels rôles et autorisations l'utilisateur Ivy dispose-t-il sur cet ensemble de données BigQuery ?"
    • "Quels rôles et autorisations le groupe dev-testers dispose-t-il sur une ressource de ce projet ?"
    • (API et outil gcloud uniquement) "Quels sont les rôles et autorisations dont dispose l'utilisateur Ivy sur cet ensemble de données BigQuery si Ivy emprunte l'identité d'un compte de service ?"
  • Déterminer les ressources auxquelles un compte principal peut accéder : permet de rechercher les ressources auxquelles un compte principal a accès. Ceci pourrait servir à répondre à des questions telles que :

    • "Quels ensembles de données BigQuery sont-ils autorisés à lire à l'utilisateur ?"
    • "Quels ensembles de données BigQuery appartiennent au groupe dev-testers du propriétaire des données ?"
    • "Quelles sont les VM que John peut supprimer dans le projet A ?"
    • (API et outil gcloud uniquement) "Quelles VM l'utilisateur John peut-il supprimer en empruntant l'identité d'un compte de service ?"
  • Déterminer l'accès conditionnel : permet de rechercher les ressources auxquelles un compte principal peut accéder pour un attribut de condition donné. Ceci pourrait servir à répondre à des questions telles que :

    • (API et outil gcloud uniquement): "Quels comptes principaux disposent des autorisations compute.instances.get ou compute.instances.start sur une instance donnée à un moment spécifique ?"

Avant de commencer

  • Vous devez activer l'API Cloud Translation pour votre projet.

  • Si vous utilisez l'API pour exécuter ces requêtes, vous devez configurer votre environnement et gcurl.

    1. Configurez votre environnement.

    2. Pour configurer un alias gcurl, procédez comme suit :

      Si vous utilisez une instance Compute Engine, exécutez la commande suivante.

      alias gcurl='curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json" -X POST -H "X-HTTP-Method-Override: GET"'
      

      Si vous n'utilisez pas une instance Compute Engine, exécutez la commande suivante.

      alias gcurl='curl -H "$(oauth2l header --json CREDENTIALS cloud-platform)" \
      -H "Content-Type: application/json" -X POST -H "X-HTTP-Method-Override: GET"'
      

      CREDENTIALS correspond au chemin d'accès de votre fichier d'identifiants, par exemple ~/credentials.json.

Autorisations requises

Les autorisations suivantes sont requises pour exécuter une analyse des stratégies.

Autorisations sur le champ d'application

Pour analyser une stratégie, vous avez besoin des autorisations IAM suivantes sur le champ d'application que vous analysez :

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies

Ces autorisations sont incluses dans les rôles suivants :

  • Propriétaire d'éléments Cloud (roles/cloudasset.owner)
  • Lecteur d'éléments Cloud (roles/cloudasset.viewer)

Pour en savoir plus sur les autorisations et les rôles de l'API Cloud Asset, consultez la section Contrôle des accès.

Autorisations sur les rôles IAM

Lorsque vous spécifiez un dossier ou un projet comme champ d'application dans votre requête, si l'analyse rencontre des comptes principaux avec un rôle personnalisé IAM défini au niveau de l'organisation, vous avez besoin l'autorisation iam.roles.get pour ce rôle afin que l'analyse puisse utiliser sa définition en votre nom.

Autorisations sur les abonnements à des groupes Google Workspace

Lorsque vous vérifiez quels comptes principaux peuvent accéder à une ressource, si vous décidez d'élargir la portée des membres d'un groupe, nous essaierons d'étendre les groupes aux membres qui disposent de vos identifiants d'utilisateur final. Ainsi, vous ne verrez que les membres des groupes pour lesquels vous êtes autorisé à afficher les membres.

Lorsque vous créez une requête pour déterminer le niveau d'accès dont dispose un compte principal sur une ressource ou les ressources auxquelles un compte principal a accès, vous devez spécifier un compte principal. Nous essaierons d'identifier les groupes (directement ou indirectement) dont le compte principal spécifié est membre. Une fois encore, vos identifiants sont utilisés. Vous ne pouvez voir que les groupes pour lesquels vous êtes autorisé à afficher les membres.

Pour afficher les abonnements, le compte principal doit disposer de l'autorisation groups.read. Les rôles qui contiennent cette autorisation incluent le rôle d'administrateur Lecteur de groupes ou des rôles plus puissants tels que Administrateur des Groupes ou Super-administrateur. Pour en savoir plus, consultez cet article.

Requête d'analyse

Une requête d'analyse est composée d'un champ d'application, d'un ou de plusieurs sélecteurs et d'autres options avancées.

Champ d'application

Pour chaque requête d'analyse, vous devez spécifier un champ d'application : une organisation, un dossier ou un projet. Toutes les stratégies IAM définies dans ce champ d'application (au niveau de la ressource ou en dessous) seront incluses dans l'analyse. Par conséquent, les stratégies IAM définies au-dessus du niveau de la ressource concernée ne sont pas prises en compte dans l'analyse.

Sélecteur de ressources

Le sélecteur de ressources vous permet de spécifier une ressource pour analyser les accès à celle-ci dans le champ d'application spécifié.

Pour plus d'informations, consultez la documentation de référence sur IamPolicyAnalysisQuery.

Sélecteur d'identité

Le sélecteur d'identité vous permet de spécifier une identité pour analyser les ressources auxquelles l'identité spécifiée a accès dans le champ d'application spécifié.

Pour plus d'informations, consultez la documentation de référence sur IamPolicyAnalysisQuery.

Sélecteur d'accès

Le sélecteur d'accès vous permet de spécifier plusieurs rôles ou autorisations pour savoir qui les a autorisés sur quelles ressources dans le champ d'application spécifié.

Pour plus d'informations, consultez la documentation de référence sur IamPolicyAnalysisQuery.

Options avancées

Outre le champ d'application et les sélecteurs, vous pouvez également spécifier d'autres options avancées dans votre requête pour obtenir plus de résultats.

Pour plus d'informations, consultez la documentation de référence sur IamPolicyAnalysisQuery.

Enregistrer une requête

Vous pouvez également enregistrer une requête pour la réutiliser ou la partager avec d'autres utilisateurs.

En savoir plus sur saving queries.

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

Cet outil vous permet de vérifier quels comptes principaux sont associés à 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 Cloud Console, accédez à la page Analyse des stratégies.

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

  2. Dans la section Créer une requête à partir d'un modèle, cliquez sur Créer une requête personnalisée.

  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 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 et les autorisations spécifiés sur la ressource spécifiée.

gcloud

Vous pouvez appeler AnalyzeIamPolicy sur votre projet compatible avec l'API à l'aide de la commande gcloud asset analyze-iam-policy. Vous devez exécuter le SDK Cloud version 314.0.0 ou ultérieure. Vous pouvez vérifier votre version à l'aide de la commande gcloud version.

Vérifier quels comptes principaux ont les COMMA_SEPARATED_PERMISSIONS sur le FULL_RESOURCE_NAME sous ORG_ID :

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

Par exemple, pour vérifier quels comptes principaux disposent des autorisations compute.instances.get ou compute.instances.start sur l'instance Compute Engine ipa-gce-instance-2 sous l'organisation 1234567890, procédez comme suit :

gcloud asset analyze-iam-policy --organization="1234567890" \
    --full-resource-name="//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2" \
    --permissions="compute.instances.get,compute.instances.start"

REST

  1. Analysez les stratégies IAM et écrivez les résultats à l'aide de l'alias gcurl.

  2. Créez un fichier request.json pour le corps de la requête et définissez son contenu sur la requête d'analyse au format JSON.

    Par exemple, le corps de requête suivant vérifie qui dispose des autorisations compute.instances.get ou compute.instances.start sur l'instance Compute Engine ipa-gce-instance-2 :

    {
      "analysisQuery": {
        "resourceSelector": {
          "fullResourceName":
            "//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2"
         },
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        }
      }
    }
    
  3. Analysez les stratégies IAM à l'aide de la commande gcurl suivante.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    ORG_ID est l'ID de votre organisation, par exemple 1234567890.

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

Cet outil vous permet de 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 Cloud Console, accédez à la page Analyse des stratégies.

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

  2. Dans la section Créer une requête à partir d'un modèle, cliquez sur Créer une requête personnalisée.

  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 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 comptes principaux avec les rôles ou les autorisations spécifiés sur n'importe quelle ressource couverte.

gcloud

Vous pouvez appeler AnalyzeIamPolicy sur votre projet compatible avec l'API à l'aide de la commande gcloud asset analyze-iam-policy. Vous devez exécuter le SDK Cloud version 314.0.0 ou ultérieure. Vous pouvez vérifier votre version à l'aide de la commande gcloud version.

Pour vérifier quels comptes principaux disposent de COMMA_SEPARATED_PERMISSIONS sous ORG_ID :

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

Par exemple, pour vérifier quels comptes principaux disposent des autorisations compute.instances.get ou compute.instances.start sous l'organisation 1234567890, procédez comme suit :

gcloud asset analyze-iam-policy --organization="1234567890" \
    --permissions="compute.instances.get,compute.instances.start"

REST

  1. Analysez les stratégies IAM et écrivez les résultats à l'aide de l'alias gcurl.

  2. Créez un fichier request.json pour le corps de la requête et définissez son contenu sur la requête d'analyse au format JSON.

    Par exemple, le corps de requête suivant vérifie quels comptes principaux disposent des autorisations compute.instances.get ou compute.instances.start sur toutes les ressources applicables :

    {
      "analysisQuery": {
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        }
      }
    }
    
  3. Analysez les stratégies IAM à l'aide de la commande gcurl suivante.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    ORG_ID est l'ID de votre organisation, par exemple 1234567890.

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 Cloud Console, accédez à la page Analyse des stratégies.

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

  2. Dans la section Créer une requête à partir d'un modèle, cliquez sur Créer une requête personnalisée.

  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 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 rôles que le compte principal spécifie sur la ressource spécifiée.

gcloud

Vous pouvez appeler AnalyzeIamPolicy sur votre projet compatible avec l'API à l'aide de la commande gcloud asset analyze-iam-policy. Vous devez exécuter le SDK Cloud version 314.0.0 ou ultérieure. Vous pouvez vérifier votre version à l'aide de la commande gcloud version.

Pour déterminer quels rôles ou autorisations ont éte attribués à l'utilisateur (USER) sur la ressource FULL_RESOURCE_NAME sous ORG_ID :

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --identity="USER"

Par exemple, quels rôles ou autorisations ont été accordés à l'utilisateur user1@example.com sur l'instance Compute Engine ipa-gce-instance-2 sous l'organisation 1234567890 :

gcloud asset analyze-iam-policy --organization="1234567890" \
    --full-resource-name="//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2" \
    --identity="user:user1@example.com"

REST

  1. Analysez les stratégies IAM et écrivez les résultats à l'aide de l'alias gcurl.

  2. Créez un fichier request.json pour le corps de la requête et définissez son contenu sur la requête d'analyse au format JSON.

    Par exemple, le corps de requête suivant vérifie quels rôles ou autorisations été accordés à l'utilisateur user1@example.com sur l'instance Compute Engine ipa-gce-instance-2 :

    {
      "analysisQuery": {
        "resourceSelector": {
          "fullResourceName":
            "//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2"
         },
        "identitySelector": {
          "identity": "user:user1@example.com"
        }
      }
    }
    
  3. Analysez les stratégies IAM à l'aide de la commande gcurl suivante.

    gcurl -d @request.json \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    ORG_ID est l'ID de votre organisation, par exemple 1234567890.

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 Cloud Console, accédez à la page Analyse des stratégies.

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

  2. Dans la section Créer une requête à partir d'un modèle, cliquez sur Créer une requête personnalisée.

  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 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.

gcloud

Vous pouvez appeler AnalyzeIamPolicy sur votre projet compatible avec l'API à l'aide de la commande gcloud asset analyze-iam-policy. Vous devez exécuter le SDK Cloud version 314.0.0 ou ultérieure. Vous pouvez vérifier votre version à l'aide de la commande gcloud version.

Pour déterminer les ressource pour lesquelles un utilisateur (USER) possède les autorisations COMMA_SEPARATED_PERMISSIONS sous ORG_ID :

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --identity="USER" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

Par exemple, sur quelles ressources user1@example.com dispose des autorisations compute.instances.get ou compute.instances.start sous l'organisation 1234567890 :

gcloud asset analyze-iam-policy --organization="1234567890" \
    --identity="user:user1@example.com" \
    --permissions="compute.instances.get,compute.instances.start"

REST

  1. Analysez les stratégies IAM et écrivez les résultats à l'aide de l'alias gcurl.

  2. Créez un fichier request.json pour le corps de la requête et définissez son contenu sur la requête d'analyse au format JSON.

    Par exemple, le corps de requête suivant vérifie quelles ressources user1@example.com dispose des autorisations compute.instances.get ou compute.instances.start pour les éléments suivants :

    {
      "analysisQuery": {
        "identitySelector": {
          "identity": "user:user1@example.com"
         },
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        }
      }
    }
    
  3. Analysez les stratégies IAM à l'aide de la commande gcurl suivante.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    ORG_ID est l'ID de votre organisation, par exemple 1234567890.

Déterminer l'accès conditionnel

Policy Analyzer peut analyser les liaisons de rôle conditionnelles Cloud IAM pour déterminer quels comptes principaux comportent l'attribut de condition souhaité qui limite leur accès aux ressources. Par exemple, un compte de service peut se voir attribuer un ou plusieurs rôles sur une ressource n'autorisant l'accès qu'à une date ou une heure spécifique.

Vous pouvez définir accessTime dans le champ ConditionContext pour activer l'analyse de liaison de rôle conditionnelle pour l'attribut date/heure.

gcloud

Vous pouvez appeler AnalyzeIamPolicy sur votre projet compatible avec l'API à l'aide de la commande gcloud asset analyze-iam-policy. Vous devez exécuter le SDK Cloud version 335.0.0 ou ultérieure. Vous pouvez vérifier votre version à l'aide de la commande gcloud version.

Vérifier quels comptes principaux ont les COMMA_SEPARATED_PERMISSIONS sur le FULL_RESOURCE_NAME sous ORG_ID à DATE_TIME :

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --permissions="COMMA_SEPARATED_PERMISSIONS" \
    --access-time="DATE_TIME"

Par exemple, pour vérifier quels comptes principaux disposent des autorisations compute.instances.get ou compute.instances.start sur l'instance Compute Engine ipa-gce-instance-2 sous l'organisation 1234567890 à 2099-03-01T00:00:00Z, procédez comme suit : Pour en savoir plus sur les formats de date et d'heure, consultez la section gcloud topic datetimes.

gcloud asset analyze-iam-policy --organization="1234567890" \
    --full-resource-name="//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2" \
    --permissions="compute.instances.get,compute.instances.start" \
    --access-time="2099-03-01T00:00:00Z"

REST

  1. Analysez les stratégies IAM et écrivez les résultats à l'aide de l'alias gcurl.

  2. Créez un fichier request.json pour le corps de la requête et définissez son contenu sur la requête d'analyse au format JSON.

    Par exemple, le corps de requête suivant vérifie qui dispose des autorisations compute.instances.get ou compute.instances.start sur l'instance Compute Engine ipa-gce-instance-2 à 2099-03-01T00:00:00Z :

    {
      "analysisQuery": {
        "resourceSelector": {
          "fullResourceName":
            "//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2"
         },
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        },
        "conditionContext": {
          "accessTime": "2099-03-01T00:00:00Z"
        }
      }
    }
    
  3. Analysez les stratégies IAM à l'aide de la commande gcurl suivante.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    ORG_ID est l'ID de votre organisation, par exemple 1234567890.

Documentation de référence sur la bibliothèque cliente et l'API

Créer une requête

Pour en savoir plus sur d'autres cas d'utilisation et les options disponibles pour les requêtes, consultez la page Analyser des exemples de requêtes de stratégie IAM.