Vous pouvez rechercher des stratégies d'autorisation IAM sur vos ressources dans un projet, un dossier ou une organisation, et filtrer les résultats renvoyés à l'aide d'une requête.
Avant de commencer
Activez l'API Cloud Asset Inventory dans le projet à partir duquel vous exécutez les commandes Cloud Asset Inventory.
Assurez-vous que votre compte dispose du rôle approprié pour appeler l'API Cloud Asset Inventory. Pour connaître les autorisations individuelles pour chaque type d'appel, consultez la section Autorisations.
Créer une requête
Avant de créer une requête, il peut être utile de commencer par une requête de recherche qui ne spécifie pas de requête. Utilisez les champs et les valeurs de la réponse complète pour créer une requête à l'aide de la syntaxe de requête de recherche, puis affinez-la jusqu'à ce que les résultats souhaités soient renvoyés.
Les champs pouvant être utilisés dans une requête sont détaillés dans la documentation de référence IamPolicySearchResult
.
Tenez compte des limites suivantes lorsque vous créez une requête:
Le champ
policy
étant un objet imbriqué, il ne peut être utilisé qu'avec l'opérateur:
.Tous les types d'éléments ne peuvent pas faire l'objet d'une recherche. Consultez la section Types de ressources pour vérifier si un service n'est pas disponible dans les API de recherche.
Vous pouvez également utiliser les champs supplémentaires suivants pour limiter vos résultats à certains types de comptes principaux, autorisations ou rôles:
Champ | Description |
---|---|
memberTypes |
Contient l'un des types de comptes principaux IAM suivants:
ExemplememberTypes=user |
policy.role.permissions |
Contient des autorisations IAM spécifiques. Exemplepolicy.role.permissions=storage.buckets.create |
roles |
Contient des rôles IAM spécifiques. Exempleroles=roles/storage.objectAdmin |
Rechercher des stratégies d'autorisation IAM
Avant de créer une requête, il peut être utile de commencer par une requête de recherche qui ne spécifie pas de requête. Utilisez les champs et les valeurs de la réponse complète pour créer une requête à l'aide de la syntaxe de requête de recherche, puis affinez-la jusqu'à ce que les résultats souhaités soient renvoyés.
Console
Pour rechercher des métadonnées de stratégie d'autorisation IAM, procédez comme suit :
-
Accédez à la page Inventaire des éléments dans la console Google Cloud.
- Accédez au projet, au dossier ou à l'organisation dans lesquels vous souhaitez effectuer une recherche.
- Cliquez sur l'onglet Stratégie IAM.
-
Pour rechercher des stratégies d'autorisation, saisissez une requête dans le champ Filtre. Pour savoir comment rédiger une requête de recherche, consultez la section Syntaxe des requêtes de recherche.
Pour faciliter la création de requêtes, vous pouvez cliquer sur le champ Filtrer pour afficher et ajouter les champs disponibles à votre requête.
Après avoir effectué une recherche, les stratégies d'autorisation correspondant à la requête sont répertoriées dans le tableau Résultats. Double-cliquez sur votre requête pour la modifier ou utilisez le volet Filtrer les résultats pour appliquer des préréglages de requête rapides ou limiter les résultats de recherche en fonction de critères spécifiques.
Pour afficher la requête en tant que commande Google Cloud CLI, cliquez sur Afficher la requête.
Pour exporter les résultats, cliquez sur Télécharger au format CSV.
gcloud
gcloud asset search-all-iam-policies \ --scope=SCOPE_PATH \ --query="QUERY" \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --order-by="ORDER_BY"
Indiquez les valeurs suivantes :
-
SCOPE_PATH
: utilisez l'une des valeurs suivantes:Les valeurs autorisées sont les suivantes :
-
projects/PROJECT_ID
, oùPROJECT_ID
est l'ID du projet contenant des composants avec des règles d'autorisation IAM que vous souhaitez rechercher. -
projects/PROJECT_NUMBER
, oùPROJECT_NUMBER
est le numéro du projet contenant des composants avec des stratégies d'autorisation IAM que vous souhaitez rechercher.Trouver un Google Cloud numéro de projet
Console Google Cloud
Pour trouver un numéro de projet Google Cloud , procédez comme suit:
-
Accédez à la page Bienvenue dans la console Google Cloud.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
-
Sélectionnez votre organisation dans la liste, puis recherchez le nom de votre projet. Le nom, le numéro et l'ID du projet sont affichés près de l'en-tête Bienvenue.
Jusqu'à 4 000 ressources peuvent être affichées. Si le projet que vous recherchez ne s'affiche pas, accédez à la page Gérer les ressources et filtrez la liste en utilisant le nom de ce projet.
CLI gcloud
Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, oùFOLDER_ID
est l'ID du dossier contenant des composants avec des stratégies d'autorisation IAM que vous souhaitez rechercher.Trouver l'ID d'un Google Cloud dossier
Console Google Cloud
Pour trouver l'ID d'un dossier Google Cloud , procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
- Sélectionnez votre organisation dans la liste.
- Recherchez le nom de votre dossier. L'ID du dossier s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer l'ID d'un dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Où TOP_LEVEL_FOLDER_NAME correspond à une correspondance partielle ou complète de la chaîne pour le nom du dossier. Supprimez l'indicateur
--format
pour afficher plus d'informations sur les dossiers trouvés.La commande précédente ne renvoie pas les ID des sous-dossiers dans les dossiers. Pour ce faire, exécutez la commande suivante à l'aide de l'ID d'un dossier de niveau supérieur:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, oùORGANIZATION_ID
est l'ID de l'organisation qui possède des composants avec des stratégies d'autorisation IAM que vous souhaitez rechercher.Trouver l'ID d'une Google Cloud organisation
Console Google Cloud
Pour trouver l'ID d'une Google Cloud organisation, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
- Sélectionnez votre organisation dans la liste.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer l'ID d'une Google Cloud organisation à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: facultatif. Expression de requête. Si elle n'est pas spécifiée ou vide, toutes les ressources sont recherchées dans le champ d'application spécifié. Pour savoir comment rédiger une requête de recherche, consultez la section Syntaxe des requêtes de recherche. ASSET_TYPE_#
: facultatif. Liste des types d'éléments pouvant faire l'objet d'une recherche séparés par une virgule. Les expressions régulières compatibles avec RE2 sont acceptées. Si l'expression régulière ne correspond à aucun type d'élément compatible, une erreurINVALID_ARGUMENT
est renvoyée. Lorsque--asset-types
n'est pas spécifié, tous les types d'assets sont renvoyés.-
ORDER_BY
: facultatif. Liste de champs séparés par une virgule indiquant l'ordre de tri des résultats. L'ordre par défaut est croissant. AjoutezDESC
après le nom du champ pour indiquer l'ordre décroissant. Consultez la documentation de référence pour connaître les champs pouvant être triés.
Vous pouvez utiliser les options --format
et --flatten
pour formater la sortie de la CLI gcloud.
Consultez la documentation de référence de la gcloud CLI pour toutes les options.
Exemple
Exécutez la commande suivante pour obtenir la liste de toutes les instances Compute Engine (compute.googleapis.com/Instance
) du projet my-project
avec une stratégie d'autorisation IAM les associant à l'utilisateur alex@example.com
. Les résultats sont triés par ordre décroissant en fonction de la ressource (resource DESC
).
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:\"user:alex@example.com\"" \ --asset-types=compute.googleapis.com/Instance \ --order-by="resource DESC"
Exemple de réponse
--- assetType: compute.googleapis.com/Instance folders: - folders/0000000000000 organization: organizations/0000000000000 policy: bindings: - members: - user:alex@example.com role: roles/compute.viewer - members: - user:alex@example.com role: roles/editor - members: - user:alex@example.com role: roles/owner project: projects/0000000000000 resource: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:searchAllIamPolicies
Corps JSON de la requête :
{ "query": "QUERY", "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "orderBy": "ORDER_BY", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN" }
Indiquez les valeurs suivantes :
-
SCOPE_PATH
: utilisez l'une des valeurs suivantes:Les valeurs autorisées sont les suivantes :
-
projects/PROJECT_ID
, oùPROJECT_ID
est l'ID du projet contenant des composants avec des règles d'autorisation IAM que vous souhaitez rechercher. -
projects/PROJECT_NUMBER
, oùPROJECT_NUMBER
est le numéro du projet contenant des composants avec des stratégies d'autorisation IAM que vous souhaitez rechercher.Trouver un Google Cloud numéro de projet
Console Google Cloud
Pour trouver un numéro de projet Google Cloud , procédez comme suit:
-
Accédez à la page Bienvenue dans la console Google Cloud.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
-
Sélectionnez votre organisation dans la liste, puis recherchez le nom de votre projet. Le nom, le numéro et l'ID du projet sont affichés près de l'en-tête Bienvenue.
Jusqu'à 4 000 ressources peuvent être affichées. Si le projet que vous recherchez ne s'affiche pas, accédez à la page Gérer les ressources et filtrez la liste en utilisant le nom de ce projet.
CLI gcloud
Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, oùFOLDER_ID
est l'ID du dossier contenant des composants avec des stratégies d'autorisation IAM que vous souhaitez rechercher.Trouver l'ID d'un Google Cloud dossier
Console Google Cloud
Pour trouver l'ID d'un dossier Google Cloud , procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
- Sélectionnez votre organisation dans la liste.
- Recherchez le nom de votre dossier. L'ID du dossier s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer l'ID d'un dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Où TOP_LEVEL_FOLDER_NAME correspond à une correspondance partielle ou complète de la chaîne pour le nom du dossier. Supprimez l'indicateur
--format
pour afficher plus d'informations sur les dossiers trouvés.La commande précédente ne renvoie pas les ID des sous-dossiers dans les dossiers. Pour ce faire, exécutez la commande suivante à l'aide de l'ID d'un dossier de niveau supérieur:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, oùORGANIZATION_ID
est l'ID de l'organisation qui possède des composants avec des stratégies d'autorisation IAM que vous souhaitez rechercher.Trouver l'ID d'une Google Cloud organisation
Console Google Cloud
Pour trouver l'ID d'une Google Cloud organisation, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
- Sélectionnez votre organisation dans la liste.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer l'ID d'une Google Cloud organisation à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: facultatif. Expression de requête. Si elle n'est pas spécifiée ou vide, toutes les ressources sont recherchées dans le champ d'application spécifié. Pour savoir comment rédiger une requête de recherche, consultez la section Syntaxe des requêtes de recherche. ASSET_TYPE_#
: facultatif. Tableau de types d'éléments pouvant faire l'objet d'une recherche. Les expressions régulières compatibles avec RE2 sont acceptées. Si l'expression régulière ne correspond à aucun type d'élément compatible, une erreurINVALID_ARGUMENT
est renvoyée. LorsqueassetTypes
n'est pas spécifié, tous les types d'assets sont renvoyés.-
ORDER_BY
: facultatif. Liste de champs séparés par une virgule indiquant l'ordre de tri des résultats. L'ordre par défaut est croissant. AjoutezDESC
après le nom du champ pour indiquer l'ordre décroissant. Consultez la documentation de référence pour connaître les champs pouvant être triés. -
PAGE_SIZE
: facultatif. Nombre de résultats à renvoyer par page. Le maximum est de 500. Si la valeur est définie sur0
ou sur une valeur négative, une valeur par défaut appropriée est sélectionnée. UnnextPageToken
est renvoyé pour récupérer les résultats suivants. -
PAGE_TOKEN
: facultatif. Les réponses aux requêtes longues sont réparties sur plusieurs pages. LorsquepageToken
n'est pas spécifié, la première page est renvoyée. Les pages suivantes peuvent être appelées en utilisant l'nextPageToken
de la réponse précédente comme valeurpageToken
.
Consultez la documentation de référence REST pour toutes les options.
Exemples de commandes
Exécutez l'une des commandes suivantes pour obtenir la liste de toutes les instances Compute Engine (compute.googleapis.com/Instance
) du projet my-project
avec une stratégie d'autorisation IAM les associant à l'utilisateur alex@example.com
. Les résultats sont triés par ordre décroissant en fonction de la ressource (resource DESC
).
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "query": "policy:\"user:alex@example.com\"", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "resource DESC" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "query": "policy:\"user:alex@example.com\"", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "resource DESC" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Exemple de réponse
{ "resource": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian", "project": "projects/0000000000000", "policy": { "bindings": [ { "role": "roles/compute.viewer", "members": [ "user:alex@example.com" ] }, { "role": "roles/editor", "members": [ "user:alex@example.com" ] }, { "role": "roles/owner", "members": [ "user:alex@example.com" ] } ] }, "assetType": "compute.googleapis.com/Instance", "folders": [ "folders/0000000000000" ], "organization": "organizations/0000000000000" }
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Asset Inventory, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de Cloud Asset Inventory, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Asset Inventory, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de Cloud Asset Inventory, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Asset Inventory, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de Cloud Asset Inventory, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Asset Inventory, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de Cloud Asset Inventory, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Asset Inventory, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de Cloud Asset Inventory, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Asset Inventory, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de Cloud Asset Inventory, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud Asset Inventory, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de Cloud Asset Inventory, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Exemples de recherches supplémentaires
Les exemples de code suivants présentent des requêtes de recherche spécifiques pour gcloud et REST afin de vous aider à créer vos propres recherches.
Ressources avec des stratégies d'autorisation IAM
L'exemple suivant montre comment rechercher toutes les ressources avec des stratégies d'autorisation IAM dans le projet my-project
.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --flatten="policy.bindings[].members[]" \ --format="table(resource, policy.bindings.role, policy.bindings.members)"
REST
Méthode HTTP et URL :
GET https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Ressources nommées avec des stratégies d'autorisation IAM
L'exemple suivant montre comment rechercher toutes les ressources contenant example
dans leur nom qui disposent de stratégies d'autorisation IAM.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="resource:example"
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Corps JSON de la requête :
{ "pageSize": 1, "query": "resource:example" }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "resource:example" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "resource:example" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Stratégies d'autorisation IAM sur les projets, les dossiers et les organisations
L'exemple suivant montre comment rechercher toutes les stratégies d'autorisation IAM sur tous les projets et dossiers de l'organisation avec l'ID my-organization-id
.
Trouver l'ID d'une Google Cloud organisation
Console Google Cloud
Pour trouver l'ID d'une Google Cloud organisation, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
- Sélectionnez votre organisation dans la liste.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer l'ID d'une Google Cloud organisation à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --asset-types=cloudresourcemanager.*
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corps JSON de la requête :
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Propriétaires d'un projet
L'exemple suivant montre comment rechercher des comptes principaux disposant du rôle propriétaire (roles/owner
) sur le projet my-project
.
Cette requête ne renvoie que les principaux auxquels le rôle de propriétaire a été attribué dans le projet. Il n'inclut pas les comptes principaux qui héritent du rôle de propriétaire via l'héritage de stratégie.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="roles:roles/owner" \ --asset-types=cloudresourcemanager.* \ --flatten="policy.bindings[].members[]" \ --format="table(policy.bindings.members)"
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Corps JSON de la requête :
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Projets pour lesquels un compte principal dispose du rôle de propriétaire
L'exemple suivant montre comment rechercher des projets pour lesquels alex@example.com
dispose du rôle de propriétaire (roles/owner
) dans l'organisation dont l'ID est my-organization-id
.
Cette requête ne renvoie que les projets pour lesquels alex@example.com
a reçu le rôle de propriétaire. Il n'inclut pas les projets pour lesquels alex@example.com
a hérité du rôle de propriétaire.
Trouver l'ID d'une Google Cloud organisation
Console Google Cloud
Pour trouver l'ID d'une Google Cloud organisation, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
- Sélectionnez votre organisation dans la liste.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer l'ID d'une Google Cloud organisation à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:(roles/owner alex@example.com)" \ --asset-types=cloudresourcemanager.googleapis.com/Project \ --format="table(resource)"
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corps JSON de la requête :
{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Rôles d'un compte principal dans un projet
L'exemple suivant montre comment rechercher les rôles de alex@example.com
sur le projet my-project
.
Cette requête ne renvoie que les rôles accordés à alex@example.com
sur le projet. Elle n'inclut pas les rôles hérités par alex@example.com
via l'héritage de stratégie.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:alex@example.com" \ --asset-types=cloudresourcemanager.googleapis.com/Project \ --flatten="policy.bindings[]" \ --format="table(policy.bindings.role)"
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Corps JSON de la requête :
{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Autorisations d'un compte principal sur un projet
L'exemple suivant montre comment rechercher les autorisations dont alex@example.com
dispose sur le projet my-project
.
Cette requête ne renvoie que les autorisations dont alex@example.com
dispose sur le projet. Il n'inclut pas les autorisations héritées par alex@example.com
via l'héritage de stratégie.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:alex@example.com policy.role.permissions:\"\"" \ --asset-types=cloudresourcemanager.* \ --format="default(explanation.matchedPermissions)"
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Corps JSON de la requête :
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Entités autorisées à accéder aux buckets Cloud Storage
L'exemple suivant montre comment rechercher des principaux pouvant accéder aux buckets Cloud Storage dans le projet my-project
.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy.role.permissions:storage.buckets" \ --asset-types=cloudresourcemanager.* \ --flatten="policy.bindings[].members[]" \ --format="table(policy.bindings.members)"
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Corps JSON de la requête :
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Comptes de service disposant d'un rôle propriétaire
L'exemple suivant montre comment rechercher des comptes de service avec le rôle propriétaire (roles/owner
) dans l'organisation avec my-organization-id
. Vous pouvez utiliser cette requête pour réduire votre profil de risque.
Trouver l'ID d'une Google Cloud organisation
Console Google Cloud
Pour trouver l'ID d'une Google Cloud organisation, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
- Sélectionnez votre organisation dans la liste.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer l'ID d'une Google Cloud organisation à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
Cet exemple utilise la commande "grep", qui est disponible dans Cloud Shell et les systèmes d'exploitation de type Unix.
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:(roles/owner serviceAccount)" \ --flatten="policy.bindings[].members[]" \ --format="table(resource.segment(3):label=RESOURCE_TYPE, resource.basename():label=RESOURCE, policy.bindings.members)" | grep serviceAccount
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corps JSON de la requête :
{ "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Ressources avec des rôles attribués à un domaine
L'exemple suivant montre comment rechercher des ressources avec des rôles accordés au domaine example.com
, dans l'organisation avec l'ID my-organization-id
.
Trouver l'ID d'une Google Cloud organisation
Console Google Cloud
Pour trouver l'ID d'une Google Cloud organisation, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
- Sélectionnez votre organisation dans la liste.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer l'ID d'une Google Cloud organisation à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:\"domain:example.com\"" \ --flatten="policy.bindings[]" \ --format="table(resource, policy.bindings.role)"
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corps JSON de la requête :
{ "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Ressources avec des rôles accordés au public
L'exemple suivant montre comment rechercher des ressources avec des rôles accordés au public, dans l'organisation avec l'ID my-organization-id
.
Trouver l'ID d'une Google Cloud organisation
Console Google Cloud
Pour trouver l'ID d'une Google Cloud organisation, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
- Sélectionnez votre organisation dans la liste.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer l'ID d'une Google Cloud organisation à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="memberTypes:(allUsers OR allAuthenticatedUsers)" \ --format="table(resource)"
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corps JSON de la requête :
{ "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Entités principales autorisées à modifier les stratégies d'autorisation IAM dans une organisation
L'exemple suivant montre comment rechercher des principaux pouvant modifier les stratégies d'autorisation IAM dans l'organisation avec l'ID my-organization-id
.
Trouver l'ID d'une Google Cloud organisation
Console Google Cloud
Pour trouver l'ID d'une Google Cloud organisation, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
- Sélectionnez votre organisation dans la liste.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer l'ID d'une Google Cloud organisation à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" \ --format="json(resource, policy.bindings, explanation.matchedPermissions)"
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corps JSON de la requête :
{ "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" }
Exemples de commandes
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content