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 inventaire des éléments cloud.
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 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 des requêtes 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
.
Gardez à l'esprit les limites suivantes lorsque vous créez une requête :
Le champ
policy
est un objet imbriqué. Il ne peut donc être utilisé qu'avec l'opérateur:
.Tous les types de composants ne peuvent pas faire l'objet d'une recherche. Consultez Types de ressources pour vérifier si un service n'est pas disponible dans les API de recherche.
Les champs supplémentaires suivants peuvent également être utilisés 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 des requêtes de recherche, puis affinez-la jusqu'à obtenir les résultats souhaité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 la recherche.
- Cliquez sur l'onglet Stratégie IAM.
-
Pour rechercher des règles d'autorisation, saisissez une requête dans le champ Filtre. Pour savoir comment rédiger une requête de recherche, consultez Syntaxe des requêtes de recherche.
Pour faciliter la création de requêtes, vous pouvez cliquer sur le champ Filtre afin d'afficher et d'ajouter les champs de recherche disponibles à votre requête.
Après avoir effectué une recherche, les règles d'autorisation correspondant à la requête sont listé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 selon des 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 les éléments avec des règles d'autorisation IAM que vous souhaitez rechercher. -
projects/PROJECT_NUMBER
, oùPROJECT_NUMBER
correspond au numéro du projet contenant les éléments avec des règles d'autorisation IAM que vous souhaitez rechercher.Trouver le numéro d'un projet Google Cloud
ConsoleGoogle Cloud
Pour trouver le numéro d'un projet Google Cloud , procédez comme suit :
-
Accédez à la page d'accueil de la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
-
Sélectionnez votre organisation dans la zone de 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 sont affichées. Si vous ne voyez pas le projet que vous recherchez, accédez à la page Gérer les ressources et filtrez la liste à l'aide du nom de ce projet.
CLI gcloud
Vous pouvez récupérer un numéro de projet Google Cloud avec la commande suivante :
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, oùFOLDER_ID
est l'ID du dossier contenant les composants avec les stratégies d'autorisation IAM que vous souhaitez rechercher.Trouver l'ID d'un dossier Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'un dossier Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de 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 est une correspondance de chaîne partielle ou complète pour le nom du dossier. Supprimez l'option
--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 premier niveau :
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, oùORGANIZATION_ID
correspond à l'ID de l'organisation qui possède des composants avec des règles d'autorisation IAM que vous souhaitez rechercher.Trouver l'ID d'une organisation Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'une organisation Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de 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 organisation Google Cloud à 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 Syntaxe des requêtes de recherche. ASSET_TYPE_#
: facultatif. Liste de 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. Pour savoir quels champs peuvent être triés, consultez la documentation de référence.
Vous pouvez utiliser les options --format
et --flatten
pour mettre en forme le résultat de gcloud CLI.
Consultez la documentation de référence de gcloud CLI pour connaître 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 liaison de stratégie d'autorisation IAM les liant à l'utilisateur alex@example.com
. Les résultats sont classé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 les éléments avec des règles d'autorisation IAM que vous souhaitez rechercher. -
projects/PROJECT_NUMBER
, oùPROJECT_NUMBER
correspond au numéro du projet contenant les éléments avec des règles d'autorisation IAM que vous souhaitez rechercher.Trouver le numéro d'un projet Google Cloud
ConsoleGoogle Cloud
Pour trouver le numéro d'un projet Google Cloud , procédez comme suit :
-
Accédez à la page d'accueil de la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
-
Sélectionnez votre organisation dans la zone de 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 sont affichées. Si vous ne voyez pas le projet que vous recherchez, accédez à la page Gérer les ressources et filtrez la liste à l'aide du nom de ce projet.
CLI gcloud
Vous pouvez récupérer un numéro de projet Google Cloud avec la commande suivante :
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, oùFOLDER_ID
est l'ID du dossier contenant les composants avec les stratégies d'autorisation IAM que vous souhaitez rechercher.Trouver l'ID d'un dossier Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'un dossier Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de 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 est une correspondance de chaîne partielle ou complète pour le nom du dossier. Supprimez l'option
--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 premier niveau :
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 règles d'autorisation IAM que vous souhaitez rechercher.Trouver l'ID d'une organisation Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'une organisation Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de 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 organisation Google Cloud à l'aide de la commande suivante :
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: facultatif. Expression de la 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 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. Pour savoir quels champs peuvent être triés, consultez la documentation de référence. -
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. SipageToken
n'est pas spécifié, la première page est renvoyée. Les pages suivantes peuvent être appelées en utilisant lenextPageToken
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 liaison de stratégie d'autorisation IAM les liant à l'utilisateur alex@example.com
. Les résultats sont classé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 inventaire des éléments cloud, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de inventaire des éléments cloud, configurez les 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 inventaire des éléments cloud, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de inventaire des éléments cloud, configurez les 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 inventaire des éléments cloud, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de inventaire des éléments cloud, configurez les 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 inventaire des éléments cloud, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de inventaire des éléments cloud, configurez les 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 inventaire des éléments cloud, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de inventaire des éléments cloud, configurez les 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 inventaire des éléments cloud, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de inventaire des éléments cloud, configurez les 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 inventaire des éléments cloud, consultez la page Bibliothèques clientes Cloud Asset Inventory.
Pour vous authentifier auprès de inventaire des éléments cloud, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Autres exemples de recherches
Les exemples de code suivants montrent 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 règles 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 dont le nom contient example
et 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 IAM "Autoriser" sur tous les projets et dossiers de l'organisation dont l'ID est my-organization-id
.
Trouver l'ID d'une organisation Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'une organisation Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de 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 organisation Google Cloud à 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 les comptes principaux disposant du rôle Propriétaire (roles/owner
) dans le projet my-project
.
Cette requête ne renvoie que les comptes principaux auxquels le rôle "Propriétaire" a été attribué dans le projet. Elle 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 les projets dans 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 le rôle Propriétaire a été attribué à alex@example.com
. 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 organisation Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'une organisation Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de 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 organisation Google Cloud à 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 dont dispose alex@example.com
sur le projet my-project
.
Cette requête ne renvoie que les rôles accordés à alex@example.com
dans le projet. Elle n'inclut pas les rôles que alex@example.com
a hérités 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 dont dispose un compte principal sur un projet
L'exemple suivant montre comment rechercher les autorisations dont dispose alex@example.com
sur le projet my-project
.
Cette requête ne renvoie que les autorisations dont dispose alex@example.com
sur le projet. Il n'inclut pas les autorisations que alex@example.com
a héritées 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 pouvant accéder aux buckets Cloud Storage
L'exemple suivant montre comment rechercher les 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 de propriétaire
L'exemple suivant montre comment rechercher des comptes de service disposant du rôle Propriétaire (roles/owner
) dans l'organisation avec l'my-organization-id
. Vous pouvez utiliser cette requête pour réduire votre profil de risque.
Trouver l'ID d'une organisation Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'une organisation Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de 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 organisation Google Cloud à 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 organisation Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'une organisation Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de 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 organisation Google Cloud à 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 disposant de 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 dont l'ID est my-organization-id
.
Trouver l'ID d'une organisation Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'une organisation Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de 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 organisation Google Cloud à 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 pouvant modifier les stratégies d'autorisation IAM dans une organisation
L'exemple suivant montre comment rechercher les comptes principaux qui peuvent modifier les stratégies d'autorisation IAM dans l'organisation dont l'ID est my-organization-id
.
Trouver l'ID d'une organisation Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'une organisation Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de 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 organisation Google Cloud à 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