Escribir análisis de políticas en Cloud Storage

En esta página, se explica cómo analizar las políticas Identity and Access Management (IAM) de forma asíncrona y escribir resultados en Cloud Storage. En general, la funcionalidad es equivalente a analizar políticas de IAM, excepto que el resultado del análisis se escribe en un depósito de Cloud Storage.

Antes de comenzar

Habilita Cloud Asset API.

Habilita la API

Debes habilitar la API en el proyecto o la organización que usarás para enviar la consulta. No es necesario que sea el mismo recurso al que describiste tu consulta.

Funciones y permisos requeridos

Las siguientes funciones y permisos son necesarios para ejecutar un análisis de políticas y exportar los resultados a Cloud Storage.

Funciones de IAM obligatorias

A fin de obtener los permisos que necesitas para analizar una política y exportar los resultados a BigQuery, pídele al administrador que te otorgue las siguientes funciones de IAM en el proyecto, la carpeta o la organización que definirás en tu consulta:

  • Visualizador de Cloud Asset (roles/cloudasset.viewer)
  • Creador de objetos de almacenamiento (roles/storage.objectCreator)
  • Para analizar políticas con funciones de IAM personalizadas, haz lo siguiente: Visualizador de funciones (roles/iam.roleViewer).
  • Para usar la CLI de Google Cloud a fin de analizar las políticas, usa: consumidor de servicios (roles/serviceusage.serviceUsageConsumer)

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Estas funciones predefinidas contienen los permisos necesarios para analizar una política y exportar los resultados a BigQuery. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • storage.objects.create
  • Para analizar políticas con funciones personalizadas de IAM, haz lo siguiente: iam.roles.get
  • Usa la CLI de Google Cloud para analizar políticas: serviceusage.services.use

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Permisos necesarios de Google Workspace

Si deseas ver si una principal tiene ciertas funciones o permisos como resultado de su membresía en un grupo de Google Workspace, necesitas el permiso groups.read de Google Workspace. Este permiso se encuentra dentro de la función de administrador de grupos de lectores y en funciones más potentes, como las funciones de administrador de grupos o administrador avanzado. Consulta Asigna funciones de administrador específicas para obtener más información.

Llama a AnalyzeIamPolicyLongrunning

El método AnalyzeIamPolicyLongrunning te permite emitir una solicitud de análisis y obtener resultados en el depósito de Cloud Storage especificado.

gcloud

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • RESOURCE_TYPE: El tipo de recurso en el que deseas establecer el alcance de la búsqueda. Solo se analizarán las políticas de IAM permitidas para este recurso y sus descendientes. Usa los valores project, folder o organization.
  • RESOURCE_ID: Es el ID del proyecto, la carpeta o la organización de Google Cloud en el que deseas establecer el alcance de la búsqueda. Solo se analizarán las políticas de IAM permitidas para este recurso y sus descendientes. Los ID de proyecto son strings alfanuméricas, como my-project. Los ID de carpeta y organización son numéricos, como 123456789012.
  • PRINCIPAL: La principal cuyo acceso deseas analizar, con el formato PRINCIPAL_TYPE:ID (por ejemplo, user:my-user@example.com). Para obtener una lista completa de los tipos principales, consulta Identificadores principales.
  • PERMISSIONS: Una lista separada por comas de los permisos que deseas verificar, por ejemplo, compute.instances.get,compute.instances.start Si enumeras varios permisos, el Analizador de políticas verificará cualquiera de los permisos enumerados.
  • STORAGE_OBJECT_URI: El identificador de recurso único del objeto de Cloud Storage al que deseas exportar los resultados del análisis, en el formato gs://BUCKET_NAME/OBJECT_NAME, por ejemplo, gs://my-bucket/analysis.json.

Ejecuta el comando gcloud asset analiza-iam-policy-longrunning:

Linux, macOS o Cloud Shell

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID \
    --full-resource-name=FULL_RESOURCE_NAME \
    --identity=PRINCIPAL \
    --permissions='PERMISSIONS' \
    --gcs-output-path=STORAGE_OBJECT_URI

Windows (PowerShell)

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID `
    --full-resource-name=FULL_RESOURCE_NAME `
    --identity=PRINCIPAL `
    --permissions='PERMISSIONS' `
    --gcs-output-path=STORAGE_OBJECT_URI

Windows (cmd.exe)

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID ^
    --full-resource-name=FULL_RESOURCE_NAME ^
    --identity=PRINCIPAL ^
    --permissions='PERMISSIONS' ^
    --gcs-output-path=STORAGE_OBJECT_URI

Deberías recibir una respuesta similar a la que figura a continuación:

Analyze IAM Policy in progress.
Use [gcloud asset operations describe projects/my-project/operations/AnalyzeIamPolicyLongrunning/1195028485971902504711950280359719028666] to check the status of the operation.

REST

Para analizar una política de permiso de IAM y exportar los resultados a Cloud Storage, usa el método analyzeIamPolicyLongrunning de la API de Cloud Asset Inventory.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • RESOURCE_TYPE: El tipo de recurso en el que deseas establecer el alcance de la búsqueda. Solo se analizarán las políticas de IAM permitidas para este recurso y sus descendientes. Usa los valores projects, folders o organizations.
  • RESOURCE_ID: Es el ID del proyecto, la carpeta o la organización de Google Cloud en el que deseas establecer el alcance de la búsqueda. Solo se analizarán las políticas de IAM permitidas para este recurso y sus descendientes. Los ID de proyecto son strings alfanuméricas, como my-project. Los ID de carpeta y organización son numéricos, como 123456789012.
  • FULL_RESOURCE_NAME: Opcional. El nombre completo del recurso para el que deseas analizar el acceso. Para obtener una lista de los formatos de nombres de recursos completos, consulta Formato de nombres de recursos.
  • PRINCIPAL: Opcional. La principal cuyo acceso deseas analizar, en el formato PRINCIPAL_TYPE:ID, por ejemplo, user:my-user@example.com Para obtener una lista completa de los tipos principales, consulta Identificadores principales.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N: Opcional. Los permisos que deseas verificar, por ejemplo, compute.instances.get Si enumeras varios permisos, el Analizador de políticas verificará cualquiera de los permisos enumerados.
  • STORAGE_OBJECT_URI: El identificador de recurso único del objeto de Cloud Storage al que deseas exportar los resultados del análisis, en el formato gs://BUCKET_NAME/OBJECT_NAME, por ejemplo, gs://my-bucket/analysis.json.

Método HTTP y URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicyLongrunning

Cuerpo JSON de la solicitud:

{
  "analysisQuery": {
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "identitySelector": {
      "identity": "PRINCIPAL"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    },
    "outputConfig": {
      "gcsDestination": {
        "uri": "STORAGE_OBJECT_URI"
      }
    }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/my-project/operations/AnalyzeIamPolicyLongrunning/1206385342502762515812063858425027606003",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata",
    "createTime": "2022-04-12T21:31:10.753173929Z"
  }
}

Visualiza los resultados del análisis de las políticas de IAM

Para ver los resultados del análisis de las políticas de IAM, sigue estos pasos:

  1. En Cloud Console, ve a la página Navegador.

    Ir al navegador

  2. Abre el archivo nuevo al que exportaste tu análisis.

Los resultados muestran las tuplas de {identity, role(s)/permission(s), resource} junto con las políticas de IAM que generan esas tuplas.