Buscar muestras de políticas de IAM

En esta página, se muestran consultas de muestra para varios casos prácticos de búsqueda de políticas de IAM.

Caso de uso: Enumera las políticas de IAM dentro de su organización y formatee el resultado como tuplas (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)'

Puedes cambiar --scope por projects/12345678 o folders/1234567 para buscar dentro de un proyecto o una carpeta en lugar de una organización.

Puedes agregar restricciones --query para obtener resultados de la búsqueda de recursos más específicos.

Puedes agregar restricciones --asset-types para obtener tipos de recursos más específicos.

Puedes quitar --flatten y --format si no quieres dar formato a los resultados.

Puedes usar csv en lugar de table para dar formato a los resultados en un archivo csv.

Puedes agregar --limit para obtener solo un subconjunto de los resultados de la búsqueda. Sin esta marca, buscará automáticamente todos los resultados de la búsqueda.

Caso práctico: Enumera las políticas de IAM dentro de tu proyecto

  gcloud asset search-all-iam-policies \
  --scope=projects/12345678

Puedes cambiar --scope a organizations/123456 o folders/1234567 para enumerar todas las políticas de IAM dentro de la organización o la carpeta en lugar de un proyecto.

Puedes agregar restricciones de --query para obtener resultados de la búsqueda de políticas más específicos.

Caso de uso: Enumera las políticas de IAM que se establecen en los recursos que tienen la palabra "quo" en los nombres de los recursos

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456  \
  --query='resource:foo'

Caso de uso: Enumera las políticas de IAM que se establecen en los recursos de la organización, la carpeta o el proyecto dentro de la organización

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456  \
  --asset-types='cloudresourcemanager.*'

Puedes cambiar la marca --asset-types a cloudresourcemanager.googleapis.com/Project para determinar el alcance de la búsqueda solo de los recursos del proyecto.

Caso práctico: Enumerar los lectores de un proyecto

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

Caso práctico: Enumerar proyectos en los que un usuario tiene la función de propietario

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

Caso de uso: Enumera las funciones que un usuario tiene en un proyecto

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

Caso de uso: Enumera los permisos que un usuario tiene sobre un proyecto

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

Caso práctico: Enumerar los usuarios que pueden acceder al bucket de 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)'

Caso práctico: Enumera las cuentas de servicio que tienen la función de propietario para detectar la configuración riesgosa de políticas

  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

Caso práctico: Muestra una lista de recursos a los que pueden acceder los usuarios de Gmail

  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

Caso práctico: Enumerar recursos con funciones otorgadas a todo el dominio

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

Caso práctico: Enumerar recursos con funciones otorgadas al público

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456 \
  --query='memberTypes:(allUsers OR allAuthenticatedUsers)' \
  --page-size=50 \
  --format='table(resource)'

Caso práctico: Enumera los usuarios o grupos que pueden cambiar las políticas de IAM en la organización, carpeta o proyecto

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