Écrire l'analyse des règles dans Cloud Storage

Cette page explique comment analyser les stratégies IAM (Identity and Access Management) de manière asynchrone et écrire les résultats dans Cloud Storage. Cette fonctionnalité est en grande partie équivalente à l'analyse de stratégie IAM, sauf que le résultat d'analyse est écrit dans un bucket Cloud Storage.

Avant de commencer

Activez Cloud Asset API.

Activer l'API

Vous devez activer l'API dans le projet ou l'organisation que vous utiliserez pour envoyer la requête. Vous n'avez pas besoin d'utiliser la même ressource que celle concernée par votre requête.

Rôles et autorisations requis

Les rôles et autorisations suivants sont nécessaires pour exécuter une analyse de stratégie et exporter les résultats vers Cloud Storage.

Rôles IAM requis

Pour obtenir les autorisations nécessaires pour analyser une stratégie et exporter les résultats vers BigQuery, demandez à votre administrateur de vous accorder les rôles IAM suivants dans le projet, le dossier ou l'organisation auxquels vous souhaitez appliquer votre requête:

  • Lecteur d'éléments Cloud (roles/cloudasset.viewer)
  • Créateur des objets de l'espace de stockage (roles/storage.objectCreator)
  • Pour analyser des stratégies avec des rôles IAM personnalisés : Lecteur de rôles (roles/iam.roleViewer)
  • Pour analyser des règles à l'aide de la CLI Google Cloud : Service Usage Consumer (roles/serviceusage.serviceUsageConsumer)

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ces rôles prédéfinis contiennent les autorisations nécessaires pour analyser une stratégie et exporter les résultats vers BigQuery. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • storage.objects.create
  • Pour analyser des stratégies avec des rôles IAM personnalisés : iam.roles.get
  • Pour analyser des règles à l'aide de la CLI Google Cloud, procédez comme suit : serviceusage.services.use

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Autorisations Google Workspace requises

Pour savoir si un compte principal possède certains rôles ou autorisations à la suite de son appartenance à un groupe Google Workspace, vous devez disposer de l'autorisation Google Workspace groups.read. Cette autorisation est contenue dans le rôle "Administrateur de lecteur de groupes" et dans des rôles plus puissants tels que les rôles "Administrateur des groupes" ou "Super-administrateur". Pour en savoir plus, consultez Attribuer des rôles d'administrateur spécifiques.

Appel de AnalyzeIamPolicyLongrunning

La méthode AnalyzeIamPolicyLongrunning vous permet d'émettre une requête d'analyse et d'obtenir les résultats dans le bucket Cloud Storage spécifié.

gcloud

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • RESOURCE_TYPE : type de la ressource sur laquelle vous souhaitez étendre votre recherche. Seules les stratégies IAM autorisées à associer cette ressource et à ses descendants seront analysées. Utilisez la valeur project, folder ou organization.
  • RESOURCE_ID : ID du projet, du dossier ou de l'organisation Google Cloud dont vous souhaitez limiter la recherche. Seules les stratégies IAM autorisées à associer cette ressource et à ses descendants seront analysées. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.
  • PRINCIPAL : compte principal que vous souhaitez analyser, au format PRINCIPAL_TYPE:ID, par exemple user:my-user@example.com. Pour obtenir la liste complète des types de comptes principaux, consultez la section Identifiants principaux.
  • PERMISSIONS : liste des autorisations que vous souhaitez vérifier, séparées par une virgule. Par exemple : compute.instances.get,compute.instances.start. Si vous répertoriez plusieurs autorisations, Policy Analyzer recherche toutes les autorisations répertoriées.
  • STORAGE_OBJECT_URI : identifiant de ressource unique de l'objet Cloud Storage vers lequel vous souhaitez exporter les résultats d'analyse, au format gs://BUCKET_NAME/OBJECT_NAME, par exemple gs://my-bucket/analysis.json.

Exécutez la commande gcloud asset Analysis-iam-policy-longrunning:

Linux, macOS ou Cloud Shell

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID \
    --full-resource-name=FULL_RESOURCE_NAME \
    --identity=PRINCIPAL \
    --permissions='PERMISSIONS' \
    --gcs-output-path=STORAGE_OBJECT_URI

Windows (PowerShell)

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID `
    --full-resource-name=FULL_RESOURCE_NAME `
    --identity=PRINCIPAL `
    --permissions='PERMISSIONS' `
    --gcs-output-path=STORAGE_OBJECT_URI

Windows (cmd.exe)

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID ^
    --full-resource-name=FULL_RESOURCE_NAME ^
    --identity=PRINCIPAL ^
    --permissions='PERMISSIONS' ^
    --gcs-output-path=STORAGE_OBJECT_URI

Vous devriez obtenir un résultat semblable à celui-ci :

Analyze IAM Policy in progress.
Use [gcloud asset operations describe projects/my-project/operations/AnalyzeIamPolicyLongrunning/1195028485971902504711950280359719028666] to check the status of the operation.

REST

Pour analyser une stratégie d'autorisation IAM et exporter les résultats vers Cloud Storage, utilisez la méthode analyzeIamPolicyLongrunning de l'API Cloud Asset Inventory.

Avant d'utiliser les données de la requête, effectuez les remplacements suivants:

  • RESOURCE_TYPE: type de la ressource sur laquelle vous souhaitez étendre votre recherche. Seules les stratégies IAM autorisées à associer cette ressource et à ses descendants seront analysées. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID : ID du projet, du dossier ou de l'organisation Google Cloud dont vous souhaitez limiter la recherche. Seules les stratégies IAM autorisées à associer cette ressource et à ses descendants seront analysées. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.
  • FULL_RESOURCE_NAME : facultatif. Nom complet de la ressource pour laquelle vous souhaitez analyser l'accès. Pour obtenir la liste des formats de noms de ressources complets, consultez Format du nom de la ressource.
  • PRINCIPAL : facultatif. Le compte principal dont vous souhaitez analyser l'accès, au format PRINCIPAL_TYPE:ID (par exemple, user:my-user@example.com). Pour obtenir la liste complète des types de comptes principaux, consultez la section Identifiants principaux.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N: facultatif. Les autorisations que vous souhaitez vérifier, par exemple compute.instances.get. Si vous répertoriez plusieurs autorisations, Policy Analyzer recherche toutes les autorisations répertoriées.
  • STORAGE_OBJECT_URI: identifiant de ressource unique de l'objet Cloud Storage vers lequel vous souhaitez exporter les résultats d'analyse, au format gs://BUCKET_NAME/OBJECT_NAME, par exemple gs://my-bucket/analysis.json.

Méthode HTTP et URL :

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicyLongrunning

Corps JSON de la requête :

{
  "analysisQuery": {
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "identitySelector": {
      "identity": "PRINCIPAL"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    },
    "outputConfig": {
      "gcsDestination": {
        "uri": "STORAGE_OBJECT_URI"
      }
    }
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/my-project/operations/AnalyzeIamPolicyLongrunning/1206385342502762515812063858425027606003",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata",
    "createTime": "2022-04-12T21:31:10.753173929Z"
  }
}

Afficher les résultats d'analyse de stratégie IAM

Pour afficher votre analyse de stratégie IAM, procédez comme suit :

  1. Dans Cloud Console, accédez à la page Navigateur.

    Accéder à la page du navigateur

  2. Ouvrez le fichier dans lequel vous avez exporté votre analyse.

Les résultats répertorient les tuples de {identity, role(s)/permission(s), resource} ainsi que les stratégies IAM qui génèrent ces tuples.