Visualiza políticas de IAM efectivas

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En este tema, se muestra cómo ver las políticas eficaces de Identity and Access Management (IAM) en un recurso determinado.

En IAM, la política vigente describe cómo se heredan todas las políticas principales y principales en la jerarquía de recursos para un recurso.

Alcance y permisos

Cuando solicitas políticas de IAM eficaces, debes especificar un alcance. Puede ser una organización, una carpeta o un proyecto. Se muestran todas las políticas de IAM establecidas en ese alcance o debajo de él. No es necesario que el alcance de la solicitud sea el mismo que el del proyecto habilitado para la API de Cloud Asset. Además, el alcance habilitado del proyecto y de la solicitud requieren permisos diferentes.

Tipos de políticas admitidas

Las políticas de IAM eficaces solo son compatibles con las políticas de permisos de IAM. No es compatible con las siguientes formas de control de acceso:

Antes de comenzar

Antes de comenzar, completa los pasos que se indican a continuación.

  1. Habilita la API de Cloud Asset Inventory para tu proyecto.
    Habilita la API de Cloud Asset Inventory

    No es necesario que este proyecto sea el mismo que el alcance de tus solicitudes. Obtén más información sobre cómo configurar un proyecto cuando habilitas un servicio.

  2. Instala el SDK de Google Cloud.

  3. Opcional: Para llamar directamente a la API de Cloud Asset Inventory, confirma que tienes acceso al comando curl.

  4. Establece permisos.

    1. Configura permisos para la API de Cloud Asset.
    2. Habilita los siguientes permisos para tu alcance de solicitud.

      • cloudasset.assets.analyzeIamPolicy
      • cloudasset.assets.searchAllResources
      • cloudasset.assets.searchAllIamPolicies

      Estos permisos están incluidos en las siguientes funciones predefinidas:

      • Propietario de Cloud Asset (roles/cloudasset.owner)
      • Visualizador de Cloud Asset (roles/cloudasset.viewer)

      Para obtener más información sobre los permisos y las funciones de la API de Cloud Asset, consulta Control de acceso.

Obtén políticas de IAM eficaces

CLI de gcloud

Para obtener las políticas de IAM eficaces de un recurso, puedes llamar a BatchGetEffectiveIamPolicies con el comando gcloud asset get-effective-iam-policy. Debes ejecutar la versión 399.0.0 de Google Cloud CLI o una posterior.

gcloud asset get-effective-iam-policy \
  --names=NAMES \
  --scope=SCOPE

Aquí:

  • NAMES: Los nombres se refieren a una lista de full resource names de searchable asset types. Para cada llamada por lotes, puedes incluir un máximo de 20 nombres.

    Este es un ejemplo de un nombre de recurso de Cloud SQL, en el que PROJECT_ID es tu ID del proyecto de Google Cloud y INSTANCE_NAME es un nombre de instancia de Cloud SQL.

    //cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME
    
  • SCOPE: Un alcance puede ser un proyecto, una carpeta o una organización. Se muestran todas las políticas de IAM establecidas en ese alcance o debajo de él.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID
    • projects/PROJECT_NUMBER
    • folders/FOLDER_NUMBER
    • organizations/ORGANIZATION_NUMBER

Las siguientes muestras de código son comandos de la CLI de gcloud de ejemplo:

  • Para una organización llamada 123456:

    gcloud asset get-effective-iam-policy \
      --scope=organizations/123456 \
      --names=//cloudresourcemanager.googleapis.com/organizations/123456
    
  • Para una carpeta llamada 1234567:

    gcloud asset get-effective-iam-policy \
      --scope=folders/1234567 \
      --names=//cloudresourcemanager.googleapis.com/folders/1234567
    
  • Dos recursos de instancias de Cloud SQL en un proyecto llamado 12345678:

    gcloud asset get-effective-iam-policy \
      --scope=projects/12345678 \
      --names=//cloudsql.googleapis.com/projects/12345678/instances/instance1,//cloudsql.googleapis.com/projects/12345678/instances/instance2
    

REST

Para obtener las políticas de IAM vigentes en un recurso mediante la API de Cloud Asset Inventory con el comando curl, completa los siguientes pasos.

  1. Crea un archivo request.json para el cuerpo de la solicitud y establece su contenido en la solicitud en formato JSON.

    El siguiente cuerpo de solicitud recupera políticas de IAM eficaces para FULL_RESOURCE_NAME_1 y FULL_RESOURCE_NAME_2.

    {
      "names": [
        "FULL_RESOURCE_NAME_1",
        "FULL_RESOURCE_NAME_2",
      ]
    }
    

    FULL_RESOURCE_NAME requiere un nombre de recurso único con formato específico. Para obtener una lista de los nombres completos de los tipos de elementos compatibles con la API de Cloud Asset, consulta Formato de nombre de recurso.

Puedes recuperar políticas de IAM eficaces para un máximo de 10 recursos en un lote.

  1. Obtén políticas de IAM eficaces con el siguiente comando de curl para recuperar las políticas establecidas en SCOPE o en una inferior:

    SERVER_URL="https://cloudasset.googleapis.com";
    
    curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: ENABLED_PROJECT" \
    -H "X-HTTP-Method-Override: GET" \
    -d @request.json \
    "${SERVER_URL}/v1/SCOPE/effectiveIamPolicies:batchGet"
    

    Para SCOPE, los valores admitidos son los siguientes:

    • organizations/ORGANIZATION_NUMBER
    • folders/FOLDER_NUMBER
    • projects/PROJECT_NUMBER
    • projects/PROJECT_ID

    Para ENABLED_PROJECT, los valores admitidos son los siguientes:

    • PROJECT_NUMBER
    • PROJECT_ID