Rechercher des exemples de stratégies IAM

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