Écrire l'analyse des stratégies 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 le requête. Il ne doit pas nécessairement s'agir de la même ressource que celle sur laquelle vous limitez votre requête.

Rôles et autorisations requis

Les rôles et autorisations suivants sont requis pour exécuter une analyse des stratégies et une exportation les résultats dans 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 le les rôles IAM suivants sur le projet, le dossier ou l'organisation auxquels vous souhaitez appliquer le champ d'application votre requête pour:

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 requises pour analyser une stratégie et exporter les résultats vers dans BigQuery. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour analyser une stratégie et exporter les résultats vers BigQuery:

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • storage.objects.create
  • Pour analyser les stratégies avec des rôles IAM personnalisés: iam.roles.get
  • Pour analyser les stratégies à l'aide de la Google Cloud CLI, 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 dispose de certains rôles ou autorisations de son abonnement à un groupe Google Workspace, vous avez besoin du groups.read Autorisation Google Workspace. Cette autorisation est contenue dans le lecteur de groupes Administrateur, ainsi que des rôles plus puissants tels que celui d'administrateur ou de super-administrateur des groupes de rôles. Pour en savoir plus, consultez Attribuer des rôles d'administrateur spécifiques. des informations.

Analyser les stratégies et exporter les résultats

AnalyzeIamPolicyLongrunning vous permet d'émettre une requête d'analyse et d'obtenir des résultats à l'emplacement Bucket Cloud Storage.

gcloud

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

  • RESOURCE_TYPE: type de la ressource à laquelle vous souhaitez limiter votre recherche. Stratégies d'autorisation IAM uniquement associés à cette ressource et à ses descendants sont analysés. Utiliser la valeur project, folder ou organization.
  • RESOURCE_ID: ID du Projet, dossier ou organisation Google Cloud auxquels vous souhaitez limiter votre recherche. Uniquement Les stratégies d'autorisation IAM associées à 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 dont l'accès à analyser, sous la forme PRINCIPAL_TYPE:ID, par exemple user:my-user@example.com Pour obtenir la liste complète des types de comptes principaux, consultez Identifiants principaux.
  • PERMISSIONS: A séparées par une virgule des autorisations à vérifier, par exemple compute.instances.get,compute.instances.start Si vous indiquez plusieurs autorisations, Policy Analyzer recherche toutes les autorisations listées.
  • STORAGE_OBJECT_URI: ressource unique l'identifiant de l'objet Cloud Storage vers lequel vous souhaitez exporter les résultats d'analyse, dans le de type gs://BUCKET_NAME/OBJECT_NAME (par exemple, gs://my-bucket/analysis.json

Exécutez la gcloud asset analyze-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 l'API Cloud Asset Inventory analyzeIamPolicyLongrunning .

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

  • RESOURCE_TYPE: type de la ressource à laquelle vous souhaitez limiter votre recherche. Stratégies d'autorisation IAM uniquement associés à cette ressource et à ses descendants sont analysés. Utiliser la valeur projects, folders ou organizations.
  • RESOURCE_ID: ID du Projet, dossier ou organisation Google Cloud auxquels vous souhaitez limiter votre recherche. Uniquement Les stratégies d'autorisation IAM associées à 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. Le nom complet de la ressource pour lesquels vous souhaitez analyser l'accès. Pour obtenir la liste des formats de nom de ressource complet, consultez Format du nom de 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 Identifiants principaux.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N: facultatif. La les autorisations que vous souhaitez vérifier, par exemple compute.instances.get. Si vous plusieurs autorisations, Policy Analyzer recherche celles listées.
  • STORAGE_OBJECT_URI: ressource unique l'identifiant de l'objet Cloud Storage vers lequel vous souhaitez exporter les résultats d'analyse, dans le de type 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 de l'analyse des stratégies IAM

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

  1. Dans la console Google Cloud, accédez à la page Buckets.

    Accéder à la page "Buckets"

  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.