Rechercher des exemples de stratégies IAM

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)'