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.
Vous devez activer l'API dans le projet ou l'organisation que vous utiliserez pour envoyer la requête. Il ne doit pas nécessairement s'agir de la même ressource que celle utilisée pour la requête.
Rôles et autorisations requis
Les rôles et autorisations suivants sont requis 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 attribuer les rôles IAM suivants sur le projet, le dossier ou l'organisation auxquels vous limiterez la requête:
-
Lecteur d'éléments Cloud (
roles/cloudasset.viewer
) -
Créateur d'objets Storage (
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 stratégies à l'aide de Google Cloud CLI : Consommateur de Service Usage (
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
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 des stratégies avec des rôles IAM personnalisés :
iam.roles.get
-
Pour analyser des stratégies à l'aide de Google Cloud CLI :
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
Si vous souhaitez savoir si un compte principal dispose de certains rôles ou autorisations suite à son adhésion à un groupe Google Workspace, vous devez disposer de l'autorisation Google Workspace groups.read
. Cette autorisation est contenue dans le rôle "Administrateur de la visionneuse de groupes", et dans des rôles plus puissants tels que "Administrateur des groupes" ou "Super-administrateur". Pour en savoir plus, consultez Attribuer des rôles d'administrateur spécifiques.
Analyser les règles et exporter les résultats
La méthode
AnalyzeIamPolicyLongrunning
vous permet d'envoyer 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 ressource auquel vous souhaitez limiter la recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez les valeursproject
,folder
ouorganization
.RESOURCE_ID
: ID du projet, du dossier ou de l'organisation Google Cloud auquel vous souhaitez limiter votre recherche. Seules 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 quemy-project
. Les ID de dossier et d'organisation sont numériques, tels que123456789012
.PRINCIPAL
: compte principal que vous souhaitez analyser, sous la formePRINCIPAL_TYPE:ID
, par exempleuser:my-user@example.com
. Pour obtenir la liste complète des types principaux, consultez Identifiants principaux.PERMISSIONS
: liste des autorisations séparées par une virgule que vous souhaitez vérifier, par exemplecompute.instances.get,compute.instances.start
. Si vous répertoriez plusieurs autorisations, Policy Analyzer vérifie les autorisations listées.STORAGE_OBJECT_URI
: identifiant de ressource unique de l'objet Cloud Storage vers lequel vous souhaitez exporter les résultats d'analyse, sous la formegs://BUCKET_NAME/OBJECT_NAME
; par exemplegs://my-bucket/analysis.json
.
Exécutez la commande 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 la méthode analyzeIamPolicyLongrunning
de l'API Cloud Asset Inventory.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants:
RESOURCE_TYPE
: type de ressource auquel vous souhaitez limiter la recherche. Seules les stratégies d'autorisation IAM associées à cette ressource et à ses descendants seront analysées. Utilisez les valeursprojects
,folders
ouorganizations
.RESOURCE_ID
: ID du projet, du dossier ou de l'organisation Google Cloud auquel vous souhaitez limiter votre recherche. Seules 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 quemy-project
. Les ID de dossier et d'organisation sont numériques, tels que123456789012
.-
FULL_RESOURCE_NAME
: facultatif. Nom complet de la ressource pour laquelle vous souhaitez analyser l'accès. Pour obtenir la liste des formats complets des noms de ressources, consultez la section Format du nom de la ressource. PRINCIPAL
: facultatif. Compte principal que vous souhaitez analyser, sous la formePRINCIPAL_TYPE:ID
(par exemple,user:my-user@example.com
). Pour obtenir la liste complète des types principaux, consultez Identifiants principaux.PERMISSION_1
,PERMISSION_2
...PERMISSION_N
: facultatif. Les autorisations que vous souhaitez vérifier, par exemplecompute.instances.get
. Si vous répertoriez plusieurs autorisations, Policy Analyzer vérifie les autorisations listées.STORAGE_OBJECT_URI
: identifiant de ressource unique de l'objet Cloud Storage vers lequel vous souhaitez exporter les résultats d'analyse, sous la formegs://BUCKET_NAME/OBJECT_NAME
; par exemplegs://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 :
Dans la console Google Cloud, accédez à la page Buckets.
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.