Visualiza políticas de IAM efectivas

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

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

Alcance y permisos

Cuando solicitas políticas de IAM eficaces, debes especificar un del proyecto. Puede ser una organización, una carpeta o un proyecto. Todos los IAM las políticas establecidas en ese permiso o dentro de él. El alcance de la solicitud no tienen que ser el mismo que el proyecto habilitado para la API de Cloud Asset. Además, el proyecto habilitado y el permiso de la solicitud requieren diferentes permisos.

Tipos de políticas admitidas

Las políticas de IAM eficaces solo admiten permisos de IAM políticas. No admite las siguientes formas de acceso controlar:

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 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 acceso al comando curl.

  4. Establece permisos.

    1. Configura los permisos para la API de Cloud Asset.

    2. Habilita los siguientes permisos para el alcance de tu 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 roles de la API de Cloud Asset, consulta Control de acceso.

Obtén políticas de IAM efectivas

gcloud

Para obtener las políticas de IAM eficaces en un recurso, puedes llamar BatchGetEffectiveIamPolicies usando el 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 \
    --scope=SCOPE \
    --names=ASSET_NAME_1,ASSET_NAME_2,...

Ingresa los siguientes valores:

  • SCOPE: Un permiso puede ser un proyecto, una carpeta o un organización.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro del selector en la barra de menú.
      3. Selecciona tu organización en el cuadro Seleccionar una opción y, luego, busca tu el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a él. El número de proyecto se muestra Tarjeta Información del 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

      Cómo encontrar un ID de carpeta de Google Cloud

      Console

      Para encontrar el ID de una carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro del selector en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de 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)"

      Donde TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadena completa o parcial. Quita el --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra carpeta, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro del selector en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto a su nombre.

      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: Una lista de elementos separados por comas nombres completos para recuperar el políticas de IAM efectivas.

    Puedes recuperar políticas para un máximo de 20 activos en un lote.

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

  • Para un ID de la organización de 123456:

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

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

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

REST

Para obtener las políticas de IAM vigentes en un recurso con la API de Cloud Asset Inventory, usa el siguiente comando curl:

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "names": [
            "ASSET_NAME_1",
            "ASSET_NAME_2",
            "..."
          ]
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/effectiveIamPolicies:batchGet

Ingresa los siguientes valores:

  • ASSET_NAME: Es una lista separada por comas de los nombres completos de los activos para los que se recuperarán las políticas de IAM vigentes.

    Puedes recuperar políticas para un máximo de 20 activos en un lote.

  • SCOPE: Un permiso puede ser un proyecto, una carpeta o un organización.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Selecciona tu organización en el cuadro Seleccionar una opción y, luego, busca tu el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a él. El número de proyecto se muestra Tarjeta Información del 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

      Cómo encontrar un ID de carpeta de Google Cloud

      Console

      Para encontrar el ID de una carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de 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)"

      Donde TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadena completa o parcial. Quita el --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra carpeta, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto a su nombre.

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