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.

L'outil d'analyse des stratégies répond généralement 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 ?" 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 :

  • L'outil d'analyse des stratégies est compatible avec la hiérarchie et l'héritage des ressources et des règles. Les stratégies héritées et hiérarchie des ressources situées sous le champ d'application de l'analyse que vous avez spécifié sont prises en compte lors de l'analyse des règles efficaces.
  • 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.
  • L'outil d'analyse des stratégies accepte les liaisons de rôles conditionnelles IAM, mais il peut être nécessaire d'ajouter des informations supplémentaires sur la requête. Par exemple, pour analyser des conditions en fonction d'attributs de date/heure, l'outil d'analyse des règles requiert le point temporel de la requête. Remarque: Actuellement, cette fonctionnalité n'est compatible qu'avec l'API et l'outil gcloud.
  • Lors de l'analyse des stratégies IAM, l'outil d'analyse des stratégies accepte les analyses d'usurpation d'identité du compte de service, y compris l'emprunt d'identité "chaîne en série". Policy Analyzer permet d'analyser tout accès indirect via des comptes de service. Remarque: Actuellement, cette fonctionnalité n'est compatible qu'avec 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): "Dans mon organisation, qui peut lire un ensemble de données BigQuery en se faisant passer pour 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 rôles et autorisations dispose-t-il sur cet ensemble de données BigQuery si Ivy imite 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 : recherchez 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 sont les principaux qui disposent des autorisations compute.instances.get ou compute.instances.start sur une instance donnée à un moment donné ?"

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.

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 ou au niveau de la ressource définie) seront incluses dans l'analyse. Par conséquent, les stratégies IAM définies au-dessus du niveau de ressource spécifié ne sont pas prises en compte dans l'analyse.

Sélecteur de ressource

Le sélecteur de ressources vous permet de spécifier une ressource pour analyser les droits d'accès qui lui sont associés 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 a été accordé en fonction des ressources du 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.

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

Vous pouvez utiliser l'outil d'analyse de stratégies pour vérifier quels comptes principaux ont des rôles ou des autorisations sur une ressource spécifique de votre 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. Cliquez sur le menu déroulant Créer une requête personnalisée, puis sur Compte principal.

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

  4. Dans la section Sélectionner des rôles ou des autorisations, ou les deux, sélectionnez un ou plusieurs rôles ou autorisations à analyser :

    • Pour ajouter un rôle, cliquez sur Ajouter un rôle. Sélectionnez ensuite un rôle dans la liste des rôles. Pour ajouter un autre rôle, cliquez sur Ajouter un autre rôle et sélectionnez le rôle que vous souhaitez ajouter.
    • Pour ajouter une autorisation, cliquez sur Ajouter des autorisations. Sélectionnez ensuite les autorisations que vous souhaitez ajouter. Pour ajouter des autorisations supplémentaires, cliquez sur Ajouter d'autres autorisations, puis sélectionnez les autorisations à ajouter.
  5. Facultatif : Pour répertorier les utilisateurs individuels des groupes de la page des résultats, cliquez sur le bouton de la section Options de groupe.

  6. Cliquez sur Exécuter la requête pour 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 sur un compte principal 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. Cliquez sur le menu déroulant Créer une requête personnalisée, puis sur Compte principal.

  3. Laissez le champ Ressource vide.

  4. Dans la section Sélectionner des rôles ou des autorisations, ou les deux, sélectionnez un ou plusieurs rôles ou autorisations à analyser :

    • Pour ajouter un rôle, cliquez sur Ajouter un rôle. Sélectionnez ensuite un rôle dans la liste des rôles. Pour ajouter un autre rôle, cliquez sur Ajouter un autre rôle et sélectionnez le rôle que vous souhaitez ajouter.
    • Pour ajouter une autorisation, cliquez sur Ajouter des autorisations. Sélectionnez ensuite les autorisations que vous souhaitez ajouter. Pour ajouter des autorisations supplémentaires, cliquez sur Ajouter d'autres autorisations, puis sélectionnez les autorisations à ajouter.
  5. Facultatif : Pour répertorier les utilisateurs individuels des groupes de la page des résultats, cliquez sur le bouton de la section Options de groupe.

  6. Cliquez sur Exécuter la requête pour 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 qui disposent des rôles et des autorisations spécifiés sur n'importe quelle ressource du projet.

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

  4. Facultatif : Pour répertorier l'autorisation dans les rôles de la page des résultats, cliquez sur le bouton bascule dans la section Option de rôle.

  5. Cliquez sur Exécuter la requête pour 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.

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. Cliquez sur le menu déroulant Créer une requête personnalisée, puis sur Ressource.

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

  4. Dans la section Sélectionner des rôles ou des autorisations, ou les deux, sélectionnez un ou plusieurs rôles ou autorisations à analyser :

    • Pour ajouter un rôle, cliquez sur Ajouter un rôle. Sélectionnez ensuite un rôle dans la liste des rôles. Pour ajouter un autre rôle, cliquez sur Ajouter un autre rôle et sélectionnez le rôle que vous souhaitez ajouter.
    • Pour ajouter une autorisation, cliquez sur Ajouter des autorisations. Sélectionnez ensuite les autorisations que vous souhaitez ajouter. Pour ajouter des autorisations supplémentaires, cliquez sur Ajouter d'autres autorisations, puis sélectionnez les autorisations à ajouter.
  5. Facultatif : Pour répertorier les ressources des projets dans la page des résultats, cliquez sur le bouton bascule dans la section Option pour les ressources.

  6. Cliquez sur Exécuter la requête pour 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 un accès conditionnel

L'outil d'analyse de stratégies peut analyser les liaisons de rôles conditionnelles IAM afin de déterminer quels comptes principaux disposent d'un attribut de condition limitant leur accès aux ressources. Par exemple, un compte de service peut recevoir un ou plusieurs rôles sur une ressource qui n'autorise 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 d'attribut de 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.

Pour vérifier quels comptes principaux possèdent le COMMA_SEPARATED_PERMISSIONS sur le FULL_RESOURCE_NAME dans ORG_ID à l'adresse 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 sur 2099-03-01T00:00:00Z. Pour plus d'informations sur les formats temporels, consultez gcloud topic datetime.

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 à l'adresse 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.

Limites

  • L'analyseur de stratégies dans Cloud Console ne permet pas d'analyser l'usurpation de l'identité du compte de service. Si vous souhaitez analyser l'usurpation d'identité du compte de service, utilisez l'API REST ou l'outil gcloud.

  • La compatibilité des conditions IAM est limitée. Consultez la section Déterminer l'accès conditionnel ci-dessus.

  • Tous les types de ressources ne sont pas acceptés. Veuillez consulter la liste des types de ressources acceptés.