Cette page contient des exemples de requêtes sur divers cas d'utilisation de la recherche de stratégies IAM.
Cas d'utilisation : répertorier les stratégies IAM au sein de votre organisation et formater la sortie sous forme de 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 au lieu d'une organisation.
Vous pouvez ajouter des restrictions --query
pour obtenir des résultats de recherche de ressources plus spécifiques.
Vous pouvez supprimer --flatten
et --format
si vous ne souhaitez pas formater les résultats.
Vous pouvez utiliser csv
au lieu de table
pour afficher les résultats au format CSV.
Vous pouvez ajouter --limit
pour obtenir uniquement un sous-ensemble des résultats de recherche. Sans cette option, l'utilisateur passe automatiquement en revue tous les résultats de la recherche.
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 de stratégies plus spécifiques.
Cas d'utilisation : répertorier les stratégies IAM définies pour les ressources organisation/dossier/projet de votre organisation
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='resource:cloudresourcemanager'
Vous pouvez remplacer --query
par resource:(cloudresourcemanager projects) pour n'afficher que les projets.
Cas d'utilisation : répertorier les lecteurs d'un projet
gcloud asset search-all-iam-policies \
--scope=projects/12345678 \
--query='resource:cloudresourcemanager policy:roles/viewer' \
--page-size=50 \
--flatten='policy.bindings[].members[]' \
--format='table(policy.bindings.members)'
Cas d'utilisation : répertorier les projets pour lesquels un utilisateur a le rôle de propriétaire
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='resource:(cloudresourcemanager projects) policy:(roles/owner user@mycompany.com)' \
--page-size=50 \
--format='table(resource)'
Cas d'utilisation : répertorier les rôles dont dispose un utilisateur sur un projet
gcloud asset search-all-iam-policies \
--scope=projects/12345678 \
--query='resource:(cloudresourcemanager projects) policy:user@mycompany.com' \
--page-size=50 \
--flatten='policy.bindings[]' \
--format='table(policy.bindings.role)'
Cas d'utilisation : répertorier les autorisations dont dispose un utilisateur sur un projet
gcloud asset search-all-iam-policies \
--scope=projects/12345678 \
--query='resource:cloudresourcemanager policy:user@mycompany.com policy.role.permissions:""' \
--page-size=50 \
--format='default(explanation.matchedPermissions)'
Cas d'utilisation : répertorier les utilisateurs ayant accès au bucket bigstore
gcloud asset search-all-iam-policies \
--scope=projects/12345678 \
--query='resource:cloudresourcemanager policy.role.permissions:storage.buckets' \
--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 afin de 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 de Gmail ont accès
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 disposant de rôles attribués à l'ensemble du domaine
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='policy:"domain:bigwhite.joonix.net"' \
--page-size=50 \
--flatten='policy.bindings[]' \
--format='table(resource, policy.bindings.role)'
Cas d'utilisation : répertorier les ressources disposant de rôles accordés au public
gcloud asset search-all-iam-policies \
--scope=organizations/123456 \
--query='policy:(allUsers OR allAuthenticatedUsers)' \
--page-size=50 \
--format='table(resource)'
Cas d'utilisation : répertorier les utilisateurs/groupes pouvant modifier les stratégies IAM au niveau de l'organisation/du dossier/du 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)'