En IAM, las políticas vigentes describen cómo se heredan todas las políticas superiores y de anclaje en la jerarquía de recursos para un recurso.
Solo se admiten políticas de permisos para la recuperación a través de Cloud Asset Inventory. No se admiten las siguientes formas de control de acceso:
Antes de comenzar
Habilita la API de Cloud Asset Inventory en el proyecto en el que ejecutas los comandos de Cloud Asset Inventory.
Asegúrate de que tu cuenta tenga el rol correcto para llamar a la API de Cloud Asset Inventory. Para obtener información sobre los permisos individuales de cada tipo de llamada, consulta Permisos.
Cómo ver las políticas vigentes en los recursos
gcloud
gcloud asset get-effective-iam-policy \ --scope=SCOPE_PATH \ --names=ASSET_NAME_1,ASSET_NAME_2,...
Ingresa los siguientes valores:
-
SCOPE_PATH
: Usa uno de los siguientes valores:Los valores permitidos son los siguientes:
-
projects/PROJECT_ID
, dondePROJECT_ID
es el ID del proyecto que es el nivel superior desde el que se verifican las políticas de IAM efectivas. -
projects/PROJECT_NUMBER
, dondePROJECT_NUMBER
es el número del proyecto que es el nivel superior para verificar las políticas de IAM efectivas.Cómo encontrar el número de proyecto de Google Cloud
consola de
Para encontrar el número de proyecto de Google Cloud , completa los siguientes pasos:
-
Ve a la página Bienvenido en la consola de Google Cloud .
- Haz clic en el cuadro de lista del selector en la barra de menú.
-
Selecciona tu organización en el cuadro de lista y, luego, busca el nombre de tu proyecto. El nombre, el número y el ID del proyecto se muestran cerca del encabezado Te damos la bienvenida.
Se muestran hasta 4,000 recursos. Si no ves el proyecto que buscas, ve a la página Administrar recursos y filtra la lista con el nombre de ese proyecto.
gcloud CLI
Puedes recuperar un número de proyecto de Google Cloud con el siguiente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, en la queFOLDER_ID
es el ID de la carpeta que es el nivel superior desde el que se verifican las políticas de IAM efectivas.Cómo encontrar el ID de una carpeta de Google Cloud
consola de
Para encontrar el ID de una carpeta de Google Cloud , completa los siguientes pasos:
-
Ve a la consola de Google Cloud .
- Haz clic en el cuadro de lista del selector en la barra de menú.
- Selecciona tu organización en el cuadro de lista.
- Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
gcloud CLI
Puedes recuperar el ID de una carpeta de Google Cloud que se encuentra a nivel de la 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)"
En el que TOP_LEVEL_FOLDER_NAME es una coincidencia de cadena parcial o completa para el nombre de la carpeta. Quita la marca
--format
para ver más información sobre las carpetas encontradas.El comando anterior no muestra los IDs de las subcarpetas dentro 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
, en la queORGANIZATION_ID
es el ID de la organización que es el nivel superior desde el que se verifican las políticas de IAM eficaces.Cómo encontrar el ID de una organización de Google Cloud
consola de
Para encontrar el ID de una organización de Google Cloud , completa los siguientes pasos:
-
Ve a la consola de Google Cloud .
- Haz clic en el cuadro de lista del selector en la barra de menú.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
ASSET_NAME_#
: Es una lista separada por comas de los nombres completos de los activos.
Puedes recuperar políticas para un máximo de 20 activos en un lote.
Consulta la referencia de la CLI de gcloud para ver todas las opciones.
Ejemplo
Ejecuta el siguiente comando para ver las políticas de IAM vigentes en la instancia de Compute Engine my-instance
que se heredan de la organización con el ID my-organization-id
.
Cómo encontrar el ID de una organización de Google Cloud
consola de
Para encontrar el ID de una organización de Google Cloud , completa los siguientes pasos:
-
Ve a la consola de Google Cloud .
- Haz clic en el cuadro de lista del selector en la barra de menú.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud asset get-effective-iam-policy \ --scope=organizations/my-organization-id \ --names=//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance
Respuesta de ejemplo
policyResults: - fullResourceName: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance policies: - attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project policy: bindings: - members: - user:alex@example.com - user:bola@example.com role: roles/cloudkms.admin - members: - serviceAccount:000000000000-compute@developer.gserviceaccount.com role: roles/editor - attachedResource: //cloudresourcemanager.googleapis.com/folders/000000000000 policy: bindings: - members: - user:cruz@example.com role: roles/resourcemanager.folderAdmin - members: - user:dani@example.com role: roles/resourcemanager.folderEditor - attachedResource: //cloudresourcemanager.googleapis.com/organizations/0000000000000 policy: bindings: - members: - user:hao@example.com role: organizations/0000000000000/roles/CustomProjectAdmin - members: - serviceAccount:000000000000@cloudservices.gserviceaccount.com - user:ira@example.com - user:jie@example.com role: roles/accesscontextmanager.policyAdmin
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH/effectiveIamPolicies:batchGet
Cuerpo JSON de la solicitud:
{ "names": [ "ASSET_NAME_1", "ASSET_NAME_2", "..." ] }
Ingresa los siguientes valores:
-
SCOPE_PATH
: Usa uno de los siguientes valores:Los valores permitidos son los siguientes:
-
projects/PROJECT_ID
, dondePROJECT_ID
es el ID del proyecto que es el nivel superior desde el que se verifican las políticas de IAM efectivas. -
projects/PROJECT_NUMBER
, dondePROJECT_NUMBER
es el número del proyecto que es el nivel superior para verificar las políticas de IAM efectivas.Cómo encontrar un número de proyecto de Google Cloud
consola de
Para encontrar el número de proyecto de Google Cloud , completa los siguientes pasos:
-
Ve a la página Bienvenido en la consola de Google Cloud .
- Haz clic en el cuadro de lista del selector en la barra de menú.
-
Selecciona tu organización en el cuadro de lista y, luego, busca el nombre de tu proyecto. El nombre, el número y el ID del proyecto se muestran cerca del encabezado Te damos la bienvenida.
Se muestran hasta 4,000 recursos. Si no ves el proyecto que buscas, ve a la página Administrar recursos y filtra la lista con el nombre de ese proyecto.
gcloud CLI
Puedes recuperar un número de proyecto de Google Cloud con el siguiente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, en la queFOLDER_ID
es el ID de la carpeta que es el nivel superior desde el que se verifican las políticas de IAM efectivas.Cómo encontrar el ID de una carpeta de Google Cloud
consola de
Para encontrar el ID de una carpeta de Google Cloud , completa los siguientes pasos:
-
Ve a la consola de Google Cloud .
- Haz clic en el cuadro de lista del selector en la barra de menú.
- Selecciona tu organización en el cuadro de lista.
- Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
gcloud CLI
Puedes recuperar el ID de una carpeta de Google Cloud que se encuentra a nivel de la 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)"
En el que TOP_LEVEL_FOLDER_NAME es una coincidencia de cadena parcial o completa para el nombre de la carpeta. Quita la marca
--format
para ver más información sobre las carpetas encontradas.El comando anterior no muestra los IDs de las subcarpetas dentro 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
, en la queORGANIZATION_ID
es el ID de la organización que es el nivel superior desde el que se verifican las políticas de IAM eficaces.Cómo encontrar el ID de una organización de Google Cloud
consola de
Para encontrar el ID de una organización de Google Cloud , completa los siguientes pasos:
-
Ve a la consola de Google Cloud .
- Haz clic en el cuadro de lista del selector en la barra de menú.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
ASSET_NAME_#
: Es un array de nombres completos de los activos.
Puedes recuperar políticas para un máximo de 20 activos en un lote.
Consulta la referencia de REST para ver todas las opciones.
Ejemplos de comandos
Ejecuta uno de los siguientes comandos para ver las políticas de IAM efectivas en la instancia de Compute Engine my-instance
que se heredan de la organización con el ID my-organization-id
.
Cómo encontrar el ID de una organización de Google Cloud
consola de
Para encontrar el ID de una organización de Google Cloud , completa los siguientes pasos:
-
Ve a la consola de Google Cloud .
- Haz clic en el cuadro de lista del selector en la barra de menú.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
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 '{ "names": [ "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance" ] }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id/effectiveIamPolicies:batchGet
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "names": [ "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance" ] } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id/effectiveIamPolicies:batchGet" | Select-Object -Expand Content
Respuesta de ejemplo
{ "policyResults": [ { "fullResourceName": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1", "policies": [ { "attachedResource": "//cloudresourcemanager.googleapis.com/projects/my-project", "policy": { "bindings": [ { "role": "roles/cloudkms.admin", "members": [ "user:alex@example.com", "user:bola@example.com" ] }, { "role": "roles/editor", "members": [ "serviceAccount:000000000000-compute@developer.gserviceaccount.com" ] } ] } }, { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/000000000000", "policy": { "bindings": [ { "role": "roles/resourcemanager.folderAdmin", "members": [ "user:cruz@example.com" ] }, { "role": "roles/resourcemanager.folderEditor", "members": [ "user:dani@example.com" ] } ] } }, { "attachedResource": "//cloudresourcemanager.googleapis.com/organizations/000000000000", "policy": { "bindings": [ { "role": "organizations/1060291660910/roles/CustomProjectAdmin", "members": [ "user:hao@example.com" ] }, { "role": "roles/accesscontextmanager.policyAdmin", "members": [ "serviceAccount:000000000000@cloudservices.gserviceaccount.com", "user:ira@example.com", "user:jie@example.com" ] } ] } } ] } ] }