Puede buscar políticas de permiso de gestión de identidades y accesos en sus recursos de un proyecto, una carpeta o una organización, y filtrar los resultados devueltos mediante una consulta.
Antes de empezar
Habilita la API Cloud Asset Inventory en el proyecto desde el que ejecutas los comandos de Cloud Asset Inventory.
Asegúrate de que tu cuenta tiene el rol correcto para llamar a la API Cloud Asset Inventory. Para ver los permisos individuales de cada tipo de llamada, consulta la sección Permisos.
Crear una consulta
Antes de crear una consulta, puede ser útil empezar con una solicitud de búsqueda que no especifique ninguna consulta. Usa los campos y los valores de la respuesta completa para crear una consulta con la sintaxis de consulta de búsqueda y perfeccionarla hasta que se devuelvan los resultados que quieras.
Los campos que se pueden usar en una consulta se detallan en la documentación de referencia de IamPolicySearchResult
.
Ten en cuenta las siguientes limitaciones al crear una consulta:
El campo
policy
es un objeto anidado, por lo que solo se puede usar con el operador:
.No se pueden buscar todos los tipos de recursos. Consulta los tipos de recursos para confirmar si un servicio no está disponible en las APIs de búsqueda.
También puede usar los siguientes campos adicionales para restringir los resultados a determinados tipos de principales, permisos o roles:
Campo | Descripción |
---|---|
memberTypes |
Contiene uno de los siguientes tipos de principales de gestión de identidades y accesos:
EjemplomemberTypes=user |
policy.role.permissions |
Contiene permisos de gestión de identidades y accesos específicos. Ejemplopolicy.role.permissions=storage.buckets.create |
roles |
Contiene roles de gestión de identidades y accesos específicos. Ejemploroles=roles/storage.objectAdmin |
Buscar políticas de gestión de identidades y accesos de permiso
Antes de crear una consulta, puede ser útil empezar con una solicitud de búsqueda que no especifique ninguna consulta. Usa los campos y los valores de la respuesta completa para crear una consulta con la sintaxis de consulta de búsqueda y refínala hasta que se devuelvan los resultados que quieras.
Consola
Para buscar metadatos de políticas de permiso de IAM, sigue estos pasos.
-
Ve a la página Inventario de recursos de la Google Cloud consola.
- Cambia al proyecto, la carpeta o la organización que quieras buscar.
- Haga clic en la pestaña Política de gestión de identidades y accesos.
-
Para buscar políticas de permiso, introduce una consulta en el campo Filtrar. Consulta la sección sobre la sintaxis de las consultas de búsqueda para saber cómo escribir una consulta de búsqueda.
Para facilitar la creación de consultas, puedes hacer clic en el campo Filtro para mostrar y añadir los campos de búsqueda disponibles a tu consulta.
Después de realizar una búsqueda, las políticas de permiso que coincidan con la consulta se mostrarán en la tabla Resultados. Haz doble clic en la consulta para editarla o usa el panel Filtrar resultados para aplicar ajustes predefinidos de consulta rápidos o restringir los resultados de búsqueda por criterios específicos.
Para ver la consulta como un comando de Google Cloud CLI, haz clic en Ver consulta.
Para exportar los resultados, haga clic en Descargar CSV.
gcloud
gcloud asset search-all-iam-policies \ --scope=SCOPE_PATH \ --query="QUERY" \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --order-by="ORDER_BY"
Proporciona los siguientes valores:
-
SCOPE_PATH
: usa uno de los siguientes valores:Los valores permitidos son:
-
projects/PROJECT_ID
, dondePROJECT_ID
es el ID del proyecto que tiene recursos con políticas de permisos de gestión de identidades y accesos que quieres buscar. -
projects/PROJECT_NUMBER
, dondePROJECT_NUMBER
es el número del proyecto que tiene recursos con políticas de permiso de gestión de identidades y accesos que quieres buscar.Cómo encontrar el Google Cloud número de proyecto
Google Cloud consola
Para encontrar un número de proyecto de Google Cloud , sigue estos pasos:
-
Ve a la página Bienvenida de la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
-
Selecciona tu organización en el cuadro de lista y, a continuación, busca el nombre de tu proyecto. El nombre, el número y el ID del proyecto se muestran cerca del encabezado Bienvenido.
Se muestran hasta 4000 recursos. Si no ves el proyecto que buscas, ve a la página Gestionar recursos y filtra la lista por el nombre de ese proyecto.
CLI de gcloud
Puedes obtener un Google Cloud número de proyecto con el siguiente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, dondeFOLDER_ID
es el ID de la carpeta que tiene recursos con políticas de permiso de gestión de identidades y accesos que quieres buscar.Cómo encontrar el ID de una Google Cloud carpeta
Google Cloud consola
Para encontrar el ID de una carpeta de Google Cloud , sigue estos pasos:
-
Ve a la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
- Selecciona tu organización en el cuadro de lista.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
CLI de gcloud
Puedes obtener el ID de una Google Cloud carpeta que se encuentre a nivel de organización con el siguiente comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Donde TOP_LEVEL_FOLDER_NAME es una coincidencia parcial o completa de la cadena del nombre de la carpeta. Quita la marca
--format
para ver más información sobre las carpetas encontradas.El comando anterior no devuelve los IDs de las subcarpetas de las carpetas. Para ello, ejecuta el siguiente comando con el ID de una carpeta de nivel superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, dondeORGANIZATION_ID
es el ID de la organización que tiene recursos con políticas de permisos de gestión de identidades y accesos que quieres buscar.Cómo encontrar el ID de una Google Cloud organización
Google Cloud consola
Para encontrar el ID de una organización de Google Cloud , sigue estos pasos:
-
Ve a la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todas. El ID de la organización se muestra junto al nombre de la organización.
CLI de gcloud
Puedes obtener el ID de una Google Cloud organización con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: opcional. La expresión de consulta. Si no se especifica o está vacío, se buscarán todos los recursos en el ámbito especificado. Para saber cómo escribir una consulta de búsqueda, consulta Sintaxis de las consultas de búsqueda. ASSET_TYPE_#
: opcional. Lista separada por comas de tipos de recursos que se pueden buscar. Se admiten expresiones regulares compatibles con RE2. Si la expresión regular no coincide con ningún tipo de recurso admitido, se devuelve un errorINVALID_ARGUMENT
. Si no se especifica--asset-types
, se devuelven todos los tipos de recursos.-
ORDER_BY
: opcional. Lista de campos separados por comas que especifica el orden de clasificación de los resultados. El orden predeterminado es ascendente. AñadeDESC
después del nombre del campo para indicar el orden descendente. Consulta la documentación de referencia para saber qué campos se pueden ordenar.
Puedes usar las marcas --format
y --flatten
para dar formato al resultado de la CLI de gcloud.
Consulta la referencia de la CLI de gcloud para ver todas las opciones.
Ejemplo
Ejecuta el siguiente comando para obtener una lista de todas las instancias de Compute Engine (compute.googleapis.com/Instance
) del proyecto my-project
con un enlace de política de permisos de gestión de identidades y accesos que las vincule al usuario alex@example.com
. Los resultados se muestran en orden descendente por recurso (resource DESC
).
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:\"user:alex@example.com\"" \ --asset-types=compute.googleapis.com/Instance \ --order-by="resource DESC"
Respuesta de ejemplo
--- assetType: compute.googleapis.com/Instance folders: - folders/0000000000000 organization: organizations/0000000000000 policy: bindings: - members: - user:alex@example.com role: roles/compute.viewer - members: - user:alex@example.com role: roles/editor - members: - user:alex@example.com role: roles/owner project: projects/0000000000000 resource: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "query": "QUERY", "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "orderBy": "ORDER_BY", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN" }
Proporciona los siguientes valores:
-
SCOPE_PATH
: usa uno de los siguientes valores:Los valores permitidos son:
-
projects/PROJECT_ID
, dondePROJECT_ID
es el ID del proyecto que tiene recursos con políticas de permisos de gestión de identidades y accesos que quieres buscar. -
projects/PROJECT_NUMBER
, dondePROJECT_NUMBER
es el número del proyecto que tiene recursos con políticas de permiso de gestión de identidades y accesos que quieres buscar.Cómo encontrar el Google Cloud número de proyecto
Google Cloud consola
Para encontrar un número de proyecto de Google Cloud , sigue estos pasos:
-
Ve a la página Bienvenida de la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
-
Selecciona tu organización en el cuadro de lista y, a continuación, busca el nombre de tu proyecto. El nombre, el número y el ID del proyecto se muestran cerca del encabezado Bienvenido.
Se muestran hasta 4000 recursos. Si no ves el proyecto que buscas, ve a la página Gestionar recursos y filtra la lista por el nombre de ese proyecto.
CLI de gcloud
Puedes obtener un Google Cloud número de proyecto con el siguiente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, dondeFOLDER_ID
es el ID de la carpeta que tiene recursos con políticas de permiso de gestión de identidades y accesos que quieres buscar.Cómo encontrar el ID de una Google Cloud carpeta
Google Cloud consola
Para encontrar el ID de una carpeta de Google Cloud , sigue estos pasos:
-
Ve a la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
- Selecciona tu organización en el cuadro de lista.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
CLI de gcloud
Puedes obtener el ID de una Google Cloud carpeta que se encuentre a nivel de organización con el siguiente comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Donde TOP_LEVEL_FOLDER_NAME es una coincidencia parcial o completa de la cadena del nombre de la carpeta. Quita la marca
--format
para ver más información sobre las carpetas encontradas.El comando anterior no devuelve los IDs de las subcarpetas de las carpetas. Para ello, ejecuta el siguiente comando con el ID de una carpeta de nivel superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, dondeORGANIZATION_ID
es el ID de la organización que tiene recursos con políticas de permisos de gestión de identidades y accesos que quieres buscar.Cómo encontrar el ID de una Google Cloud organización
Google Cloud consola
Para encontrar el ID de una organización de Google Cloud , sigue estos pasos:
-
Ve a la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todas. El ID de la organización se muestra junto al nombre de la organización.
CLI de gcloud
Puedes obtener el ID de una Google Cloud organización con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: opcional. La expresión de consulta. Si no se especifica o está vacío, se buscarán todos los recursos en el ámbito especificado. Para saber cómo escribir una consulta de búsqueda, consulta Sintaxis de las consultas de búsqueda. ASSET_TYPE_#
: opcional. Una matriz de tipos de recursos que se pueden buscar. Se admiten expresiones regulares compatibles con RE2. Si la expresión regular no coincide con ningún tipo de recurso admitido, se devuelve un errorINVALID_ARGUMENT
. Si no se especificaassetTypes
, se devuelven todos los tipos de recursos.-
ORDER_BY
: opcional. Lista de campos separados por comas que especifica el orden de clasificación de los resultados. El orden predeterminado es ascendente. AñadeDESC
después del nombre del campo para indicar el orden descendente. Consulta la documentación de referencia para saber qué campos se pueden ordenar. -
PAGE_SIZE
: opcional. Número de resultados que se devolverán por página. El máximo es 500. Si el valor es0
o un valor negativo, se selecciona un valor predeterminado adecuado. Se devuelve unnextPageToken
para obtener los resultados posteriores. -
PAGE_TOKEN
: opcional. Las respuestas a solicitudes largas se separan en varias páginas. Si no se especificapageToken
, se devuelve la primera página. Se pueden llamar páginas posteriores usando elnextPageToken
de la respuesta anterior como valor depageToken
.
Consulta la referencia de REST para ver todas las opciones.
Ejemplos de comandos
Ejecuta uno de los siguientes comandos para obtener una lista de todas las instancias de Compute Engine (compute.googleapis.com/Instance
) del proyecto my-project
con un enlace de política de permisos de IAM que las vincule al usuario alex@example.com
. Los resultados se muestran en orden descendente por recurso (resource DESC
).
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "query": "policy:\"user:alex@example.com\"", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "resource DESC" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "query": "policy:\"user:alex@example.com\"", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "resource DESC" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Respuesta de ejemplo
{ "resource": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian", "project": "projects/0000000000000", "policy": { "bindings": [ { "role": "roles/compute.viewer", "members": [ "user:alex@example.com" ] }, { "role": "roles/editor", "members": [ "user:alex@example.com" ] }, { "role": "roles/owner", "members": [ "user:alex@example.com" ] } ] }, "assetType": "compute.googleapis.com/Instance", "folders": [ "folders/0000000000000" ], "organization": "organizations/0000000000000" }
C#
Para saber cómo instalar y usar la biblioteca de cliente de Inventario de Recursos de Cloud, consulta Bibliotecas de cliente de Inventario de Recursos de Cloud.
Para autenticarte en Inventario de Recursos de Cloud, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Inventario de Recursos de Cloud, consulta Bibliotecas de cliente de Inventario de Recursos de Cloud.
Para autenticarte en Inventario de Recursos de Cloud, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Inventario de Recursos de Cloud, consulta Bibliotecas de cliente de Inventario de Recursos de Cloud.
Para autenticarte en Inventario de Recursos de Cloud, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Inventario de Recursos de Cloud, consulta Bibliotecas de cliente de Inventario de Recursos de Cloud.
Para autenticarte en Inventario de Recursos de Cloud, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Inventario de Recursos de Cloud, consulta Bibliotecas de cliente de Inventario de Recursos de Cloud.
Para autenticarte en Inventario de Recursos de Cloud, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Inventario de Recursos de Cloud, consulta Bibliotecas de cliente de Inventario de Recursos de Cloud.
Para autenticarte en Inventario de Recursos de Cloud, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ruby
Para saber cómo instalar y usar la biblioteca de cliente de Inventario de Recursos de Cloud, consulta Bibliotecas de cliente de Inventario de Recursos de Cloud.
Para autenticarte en Inventario de Recursos de Cloud, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ejemplos de búsquedas adicionales
Los siguientes ejemplos de código muestran consultas de búsqueda específicas para gcloud y REST que te ayudarán a crear tus propias búsquedas.
Recursos con políticas de gestión de identidades y accesos de permiso
En el siguiente ejemplo se muestra cómo buscar todos los recursos con políticas de permiso de gestión de identidades y accesos en el proyecto my-project
.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --flatten="policy.bindings[].members[]" \ --format="table(resource, policy.bindings.role, policy.bindings.members)"
REST
Método HTTP y URL:
GET https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Recursos con nombre con políticas de gestión de identidades y accesos de permiso
En el siguiente ejemplo se muestra cómo buscar todos los recursos que tengan example
en su nombre y que tengan políticas de permiso de IAM.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="resource:example"
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "pageSize": 1, "query": "resource:example" }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "resource:example" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "resource:example" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Políticas de permiso de gestión de identidades y accesos en proyectos, carpetas y organizaciones
En el siguiente ejemplo se muestra cómo buscar todas las políticas de gestión de identidades y accesos de tipo "permitir" en todos los proyectos y carpetas de la organización con el ID my-organization-id
.
Cómo encontrar el ID de una Google Cloud organización
Google Cloud consola
Para encontrar el ID de una organización de Google Cloud , sigue estos pasos:
-
Ve a la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todas. El ID de la organización se muestra junto al nombre de la organización.
CLI de gcloud
Puedes obtener el ID de una Google Cloud organización con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --asset-types=cloudresourcemanager.*
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Propietarios de un proyecto
En el siguiente ejemplo se muestra cómo buscar principales con el rol Propietario (roles/owner
) en el proyecto my-project
.
Esta solicitud solo devuelve las entidades principales a las que se les ha concedido el rol Propietario en el proyecto. No incluye a las entidades que heredan el rol de propietario a través de la herencia de políticas.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="roles:roles/owner" \ --asset-types=cloudresourcemanager.* \ --flatten="policy.bindings[].members[]" \ --format="table(policy.bindings.members)"
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Proyectos en los que una entidad principal tiene el rol de propietario
En el siguiente ejemplo se muestra cómo buscar proyectos en los que alex@example.com
tiene el rol de propietario (roles/owner
) en la organización con el ID my-organization-id
.
Esta solicitud solo devuelve los proyectos en los que se ha concedido el rol de propietario a alex@example.com
. No incluye los proyectos en los que alex@example.com
ha heredado el rol de propietario.
Cómo encontrar el ID de una Google Cloud organización
Google Cloud consola
Para encontrar el ID de una organización de Google Cloud , sigue estos pasos:
-
Ve a la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todas. El ID de la organización se muestra junto al nombre de la organización.
CLI de gcloud
Puedes obtener el ID de una Google Cloud organización con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:(roles/owner alex@example.com)" \ --asset-types=cloudresourcemanager.googleapis.com/Project \ --format="table(resource)"
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Roles que tiene una cuenta principal en un proyecto
En el siguiente ejemplo se muestra cómo buscar los roles que tiene alex@example.com
en el proyecto my-project
.
Esta solicitud solo devuelve los roles que se le han concedido a alex@example.com
en el proyecto. No incluye los roles que alex@example.com
se han heredado a través de la herencia de políticas.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:alex@example.com" \ --asset-types=cloudresourcemanager.googleapis.com/Project \ --flatten="policy.bindings[]" \ --format="table(policy.bindings.role)"
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Permisos que tiene una entidad principal en un proyecto
En el siguiente ejemplo se muestra cómo buscar los permisos que tiene alex@example.com
en el proyecto my-project
.
Esta solicitud solo devuelve los permisos que tiene alex@example.com
en el proyecto. No incluye los permisos que se alex@example.com
heredan
a través de la herencia de políticas.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:alex@example.com policy.role.permissions:\"\"" \ --asset-types=cloudresourcemanager.* \ --format="default(explanation.matchedPermissions)"
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Principales que pueden acceder a los segmentos de Cloud Storage
En el siguiente ejemplo se muestra cómo buscar las principales que pueden acceder a los segmentos de Cloud Storage del proyecto my-project
.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy.role.permissions:storage.buckets" \ --asset-types=cloudresourcemanager.* \ --flatten="policy.bindings[].members[]" \ --format="table(policy.bindings.members)"
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Cuentas de servicio que tienen el rol de propietario
En el siguiente ejemplo se muestra cómo buscar cuentas de servicio con el rol Propietario (roles/owner
) en la organización con el my-organization-id
. Puedes usar esta consulta para reducir tu perfil de riesgo.
Cómo encontrar el ID de una Google Cloud organización
Google Cloud consola
Para encontrar el ID de una organización de Google Cloud , sigue estos pasos:
-
Ve a la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todas. El ID de la organización se muestra junto al nombre de la organización.
CLI de gcloud
Puedes obtener el ID de una Google Cloud organización con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
En este ejemplo se usa el comando `grep`, que está disponible en Cloud Shell y en sistemas operativos de tipo Unix.
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:(roles/owner serviceAccount)" \ --flatten="policy.bindings[].members[]" \ --format="table(resource.segment(3):label=RESOURCE_TYPE, resource.basename():label=RESOURCE, policy.bindings.members)" | grep serviceAccount
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Recursos con roles concedidos a un dominio
En el siguiente ejemplo se muestra cómo buscar recursos con roles concedidos al dominio example.com
en la organización con el ID my-organization-id
.
Cómo encontrar el ID de una Google Cloud organización
Google Cloud consola
Para encontrar el ID de una organización de Google Cloud , sigue estos pasos:
-
Ve a la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todas. El ID de la organización se muestra junto al nombre de la organización.
CLI de gcloud
Puedes obtener el ID de una Google Cloud organización con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:\"domain:example.com\"" \ --flatten="policy.bindings[]" \ --format="table(resource, policy.bindings.role)"
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Recursos con roles concedidos al público
En el siguiente ejemplo se muestra cómo buscar recursos con roles concedidos al público en la organización con el ID my-organization-id
.
Cómo encontrar el ID de una Google Cloud organización
Google Cloud consola
Para encontrar el ID de una organización de Google Cloud , sigue estos pasos:
-
Ve a la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todas. El ID de la organización se muestra junto al nombre de la organización.
CLI de gcloud
Puedes obtener el ID de una Google Cloud organización con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="memberTypes:(allUsers OR allAuthenticatedUsers)" \ --format="table(resource)"
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Principales que pueden cambiar las políticas de permiso de IAM en una organización
En el siguiente ejemplo se muestra cómo buscar las entidades principales que pueden cambiar las políticas de permiso de IAM en la organización con el ID my-organization-id
.
Cómo encontrar el ID de una Google Cloud organización
Google Cloud consola
Para encontrar el ID de una organización de Google Cloud , sigue estos pasos:
-
Ve a la Google Cloud consola.
- En la barra de menús, haz clic en el cuadro de lista del selector.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todas. El ID de la organización se muestra junto al nombre de la organización.
CLI de gcloud
Puedes obtener el ID de una Google Cloud organización con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" \ --format="json(resource, policy.bindings, explanation.matchedPermissions)"
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Cuerpo JSON de la solicitud:
{ "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" }
Ejemplos de comandos
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content