Buscar muestras de políticas de IAM

Esta página contiene consultas de muestra para varios casos de uso de búsqueda de políticas de IAM.

Caso de uso: Enumera las políticas de IAM dentro de la organización y formatea 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 a projects/12345678 o folders/1234567 para buscar dentro de un proyecto o 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 deseas 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, se mostrarán automáticamente todos los resultados de la búsqueda.

Caso de uso: 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 tu organización o carpeta en lugar de un proyecto.

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

Caso de uso: Enumera las políticas de IAM que se establecen en los recursos con la palabra “foo” 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 tu 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 definir el alcance de la búsqueda solo de recursos del proyecto.

Caso de uso: enumera los visualizadores 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 de uso: Enumera los 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 tiene un usuario en 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 de uso: Enumera 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 de uso: Enumera las cuentas de servicio que tienen la función de propietario para detectar la configuración de políticas riesgosas

  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 de uso: enumera los 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 de uso: Enumera los recursos que tienen funciones otorgadas a todo el dominio

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

Caso de uso: Enumera los recursos que tienen 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 de uso: enumera los usuarios o grupos que pueden cambiar las políticas de IAM en la organización, la carpeta o el 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)'