Cette page contient des exemples de requêtes pour divers cas d'utilisation de la recherche de stratégie IAM.
Cas d'utilisation: Répertorier les stratégies IAM au sein de votre organisation et mettre en forme le résultat en tant que tuples (RESOURCE, ROLE, MEMBER)
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--page-size=50 \
--flatten='policy.bindings[].members[]' \
--format='table(resource, policy.bindings.role, policy.bindings.members)'
Vous pouvez remplacer --scope
par projects/12345678 ou folders/1234567 pour effectuer une recherche dans un projet ou un dossier plutôt que dans une organisation.
Vous pouvez ajouter des restrictions --query
pour obtenir des résultats de recherche de ressources plus spécifiques.
Vous pouvez ajouter des restrictions --asset-types
pour obtenir des types de ressources plus spécifiques.
Vous pouvez supprimer --flatten
et --format
, si vous ne souhaitez pas mettre en forme les résultats.
Vous pouvez utiliser csv
au lieu de table
pour mettre en forme les résultats dans un fichier CSV.
Vous pouvez ajouter --limit
pour obtenir uniquement un sous-ensemble des résultats de recherche. Sans cette option, les pages sont automatiquement paginées.
Cas d'utilisation: Répertorier les stratégies IAM dans votre projet
gcloud asset search-all-iam-policies \
--scope=projects/12345678
Vous pouvez remplacer --scope
par organizations/123456 ou folders/1234567 pour répertorier toutes les stratégies IAM de votre organisation ou de votre dossier au lieu d'un projet.
Vous pouvez ajouter des restrictions --query
pour obtenir des résultats de recherche plus spécifiques sur les règles.
Cas d'utilisation: Répertorier les stratégies IAM définies sur des ressources avec le mot "foo" dans les noms de ressources
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='resource:foo'
Cas d'utilisation: Répertorier les stratégies IAM définies sur les ressources d'organisation/de dossier/de projet dans votre organisation
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--asset-types='cloudresourcemanager.*'
Vous pouvez remplacer l'option --asset-types
par cloudresourcemanager.googleapis.com/Project pour limiter la recherche aux ressources du projet.
Cas d'utilisation: Répertorier les lecteurs d'un projet
gcloud asset search-all-iam-policies \
--scope=projects/12345678 \
--query='roles:roles/viewer' \
--asset-types='cloudresourcemanager.*'
--page-size=50 \
--flatten='policy.bindings[].members[]' \
--format='table(policy.bindings.members)'
Cas d'utilisation: Répertorier les projets pour lesquels un utilisateur dispose du rôle de propriétaire
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='policy:(roles/owner user@mycompany.com)' \
--asset-types='cloudresourcemanager.googleapis.com/Project'
--page-size=50 \
--format='table(resource)'
Cas d'utilisation: Répertorier les rôles dont un utilisateur dispose sur un projet
gcloud asset search-all-iam-policies \
--scope=projects/12345678 \
--query='policy:user@mycompany.com' \
--asset-types='cloudresourcemanager.googleapis.com/Project'
--page-size=50 \
--flatten='policy.bindings[]' \
--format='table(policy.bindings.role)'
Cas d'utilisation: Répertorier les autorisations dont un utilisateur dispose sur un projet
gcloud asset search-all-iam-policies \
--scope=projects/12345678 \
--query='policy:user@mycompany.com policy.role.permissions:""' \
--asset-types='cloudresourcemanager.*'
--page-size=50 \
--format='default(explanation.matchedPermissions)'
Cas d'utilisation: Répertorier les utilisateurs pouvant accéder au bucket Bigstore
gcloud asset search-all-iam-policies \
--scope=projects/12345678 \
--query='policy.role.permissions:storage.buckets' \
--asset-types='cloudresourcemanager.*'
--page-size=50 \
--flatten='policy.bindings[].members[]' \
--format='table(policy.bindings.members)'
Cas d'utilisation: Répertorier les comptes de service dotés du rôle de propriétaire pour détecter les paramètres de stratégie risqués
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='policy:(roles/owner serviceAccount)' \
--page-size=50 \
--flatten='policy.bindings[].members[]' \
--format='table(resource.segment(3):label=RESOURCE_TYPE, resource.basename():label=RESOURCE, policy.bindings.members)' \
| grep serviceAccount
Cas d'utilisation: Répertorier les ressources auxquelles les utilisateurs Gmail peuvent accéder
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='policy:gmail.com' \
--page-size=50 \
--flatten='policy.bindings[].members[]' \
--format='csv(resource, policy.bindings.role, policy.bindings.members)' \
| grep @gmail.com
Cas d'utilisation: Répertorier les ressources auxquelles des rôles sont attribués pour l'ensemble du domaine
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='policy:"domain:mydomain.example.com"' \
--page-size=50 \
--flatten='policy.bindings[]' \
--format='table(resource, policy.bindings.role)'
Cas d'utilisation: Répertorier les ressources disposant de rôles attribués au public
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='memberTypes:(allUsers OR allAuthenticatedUsers)' \
--page-size=50 \
--format='table(resource)'
Cas d'utilisation: Répertorier les utilisateurs/groupes pouvant modifier les stratégies IAM sur l'organisation/le dossier/le projet
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)' \
--page-size=50 \
--format='json(resource, policy.bindings, explanation.matchedPermissions)'