Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Analizar políticas de IAM

En esta página, se muestra cómo usar el Analizador de políticas para descubrir qué identidades o principales (usuarios, cuentas de servicio, grupos y dominios) tienen qué acceso a qué recursos de Google Cloud.

Las típicas preguntas que el Analizador de políticas puede ayudarte a responder son: “¿Quién puede acceder a esta cuenta de servicio de IAM?”. y “¿Quién puede leer datos en este conjunto de datos de BigQuery que contiene información de identificación personal (PII)?”

Puedes usar el método AnalyzeIamPolicy para emitir una solicitud de análisis y, luego, obtener los resultados en su respuesta. Ten en cuenta que es posible que los resultados del análisis no estén completos, según la cantidad de datos que deban procesarse. Si quieres obtener resultados completos, escribir los resultados para un análisis más detallado o almacenarlos por tu cuenta, puedes usar AnalyzeIamPolicyLongrunning para escribir BigQuery o Cloud Storage.

Descripción general

El Analizador de políticas te permite realizar la administración de acceso, proporciona la visibilidad del acceso y también se puede usar para tareas relacionadas con la auditoría y el cumplimiento.

En particular, considera lo siguiente:

  • El Analizador de políticas admite jerarquías de recursos y políticas, para que sin importar el lugar desde el que intentes consultar, siempre se considere la jerarquía cuando se analizan políticas eficaces.
  • El Analizador de políticas admite la expansión de grupos de usuarios, así que, incluso si se incluye un usuario en un grupo, podemos ayudar a identificar su acceso.
  • El Analizador de políticas admite la función de expansión de permisos, lo que permite una mayor flexibilidad en tus consultas, ya que puedes consultar por permiso o funciones.
  • El Analizador de políticas admite un conjunto limitado de expansión de recursos dentro de la jerarquía de recursos. Por ejemplo, en los resultados de la consulta, puedes expandir todas las instancias de VM dentro de un proyecto o todos los proyectos de una carpeta.
  • (Solo para la API y la herramienta gcloud) Cuando se analizan las políticas de IAM, el Analizador de políticas admite el análisis de robo de identidad de cuentas de servicio, incluido el robo de identidad “encadenado” en varios niveles. El Analizador de políticas ayuda a analizar cualquier acceso indirecto a través de cuentas de servicio.

Por ejemplo, pueden ocurrir los siguientes casos de uso en los análisis:

  • Determinar las principales que pueden acceder a un recurso: encuentra las principales a las que se otorgó acceso en un recurso específico. Este tipo de análisis se puede usar para responder preguntas como las siguientes:

    • "¿Quién tiene acceso a esta cuenta de servicio de IAM?"
    • "¿Quién tiene permiso como actuar en nombre de esta cuenta de servicio de IAM?"
    • "¿Quiénes son los administradores de facturación en el proyecto A?"
    • (Solo para la API y la herramienta gcloud) “¿Quién puede actualizar el proyecto A si actúa en nombre de una cuenta de servicio?”
  • Determinar las principales que tienen ciertas funciones o permisos: encuentra las principales que tienen las funciones o los permisos especificados en los recursos aplicables. Este tipo de análisis se puede usar para responder preguntas como las siguientes:

    • "¿Quién tiene permiso para actuar en nombre de las cuentas de servicio de mi organización?"
    • "¿Quiénes son los administradores de facturación de mi organización?"
    • (Solo para la API y la herramienta gcloud) "¿Quién de mi organización puede leer un conjunto de datos de BigQuery si actúa en nombre de una cuenta de servicio?"
  • Determinar el tipo de acceso que tiene una principal en un recurso: encuentra qué tipo de acceso se otorgó a una principal para un recurso específico. Este tipo de análisis se puede usar para responder preguntas como las siguientes:

    • “¿Qué funciones y permisos tiene el usuario Ivy en este conjunto de datos de BigQuery?”
    • "¿Qué funciones y permisos tiene el grupo dev-testers para los recursos de este proyecto?"
    • (Solo para la API y la herramienta gcloud) “¿Qué funciones y permisos tiene el usuario Ivy en este conjunto de datos de BigQuery si actúa en nombre de una cuenta de servicio?”
  • Determinar a qué recursos puede acceder una principal: busca los recursos a los que una principal tiene acceso. Esto se puede usar para responder preguntas como las siguientes:

    • “¿En qué conjuntos de datos de BigQuery el usuario Ivy tiene permiso para leer?”
    • "¿En qué conjuntos de datos de BigQuery posee datos el grupo dev-testers?"
    • "¿Qué VM puede borrar John en el proyecto A?"
    • (Solo para la API y la herramienta gcloud). "¿Qué VM puede borrar el usuario John si actúa en nombre de una cuenta de servicio?".

Antes de comenzar

  • Debes habilitar la API de Cloud Asset para tu proyecto.

  • Si usas la API para ejecutar estas consultas, debes configurar tu entorno y gcurl.

    1. Configura el entorno.

    2. Para configurar un alias gcurl, sigue estos pasos:

      Si usas una instancia de Compute Engine, ejecuta el siguiente comando.

      alias gcurl='curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json" -X POST -H "X-HTTP-Method-Override: GET"'
      

      Si no usas una instancia de Compute Engine, ejecuta el siguiente comando.

      alias gcurl='curl -H "$(oauth2l header --json CREDENTIALS cloud-platform)" \
      -H "Content-Type: application/json" -X POST -H "X-HTTP-Method-Override: GET"'
      

      En este ejemplo, CREDENTIALS es la ruta del archivo de credenciales, como ~/credentials.json.

Permisos necesarios

Se requieren los siguientes permisos para ejecutar un análisis de políticas.

Permiso en la organización, carpeta o proyecto de Google Cloud

Para analizar una política, necesitas los siguientes permisos de IAM en la organización, carpeta o proyecto de Google Cloud que analizarás:

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

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

Permisos en funciones de IAM

Cuando especificas una carpeta o un proyecto como alcance en tu solicitud, si el análisis encuentra principales con una función personalizada de IAM definida a nivel de la organización, necesitarás el permiso iam.roles.get en esa función para que el análisis pueda usar su definición en tu nombre.

Permisos de las membresías de grupos de Google Workspace

Cuando verificas qué principales pueden acceder a un recurso, si eliges expandir los miembros de un grupo, intentaremos expandir los grupos para los miembros con tu credencial de usuario final. Por lo tanto, solo podrás ver los miembros de los grupos en los que tienes permiso para ver la membresía.

Cuando creas una consulta para determinar qué tipo de acceso tiene una principal en un recurso o a qué recursos tiene acceso, debes especificar una principal. Intentaremos averiguar de qué grupos (directa o indirectamente) es miembro la principal especificada. Nuevamente, se usa tu credencial de usuario final; solo verás los grupos en los que tienes permiso para ver la membresía.

Determina qué principales pueden acceder a un recurso

Puedes usar el Analizador de políticas para verificar qué principales tienen ciertas funciones o permisos en un recurso específico de tu organización. Para obtener esta información, crea una consulta sobre una principal que incluya el recurso cuyo acceso deseas analizar y una o más funciones o permisos para buscar.

Console

  1. En Cloud Console, ve a la página Analizador de políticas.

    Ir a la página de Analizador de políticas

  2. Haz clic en el menú desplegable Crear consulta personalizada y, luego, en Principal.

  3. En el campo Recurso, ingresa el nombre completo del recurso del que deseas analizar el acceso. Si no conoces el nombre completo del recurso, comienza a escribir su nombre visible y, luego, selecciónalo en la lista de recursos proporcionados.

  4. En la sección Selecciona funciones o permisos, o ambos, selecciona una o más funciones o permisos para analizar:

    • Para agregar una función, haz clic en Agregar función. Luego, selecciona una función de la lista de funciones. Para agregar otra función, haz clic en Agregar otra función y selecciona la función que deseas agregar.
    • Para agregar un permiso, haz clic en Agregar permisos. Luego, selecciona los permisos que deseas agregar. Para agregar permisos adicionales, haz clic en Agregar más permisos y selecciona los permisos que deseas agregar.
  5. Opcional: Para enumerar usuarios individuales dentro de los grupos en la página de resultados, haz clic en el interruptor de la sección Opción de grupos.

  6. Haz clic en Ejecutar consulta para ejecutar tu consulta. La página de informes muestra los parámetros de consulta que ingresaste y una tabla de resultados de todas las principales con las funciones y permisos indicados en el recurso especificado.

gcloud

Puedes llamar a AnalyzeIamPolicy en tu proyecto con la API habilitada mediante el comando de gcloud asset analyze-iam-policy. Debes ejecutar la versión 314.0.0 o posterior del SDK de Cloud. Puedes verificar tu versión con el comando gcloud version.

Para verificar qué principales tienen los COMMA_SEPARATED_PERMISSIONS en el FULL_RESOURCE_NAME de ORG_ID, haz lo siguiente:

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

Por ejemplo, para verificar qué principales tienen los permisos compute.instances.get o compute.instances.start en la instancia de Compute Engine ipa-gce-instance-2, en la organización 1234567890:

gcloud asset analyze-iam-policy --organization="1234567890" \
    --full-resource-name="//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2" \
    --permissions="compute.instances.get,compute.instances.start"

REST

  1. Analiza las políticas de IAM y escribe los resultados con el alias gcurl.

  2. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    Por ejemplo, el siguiente cuerpo de solicitud verifica quién tiene los permisos compute.instances.get o compute.instances.start en la instancia de Compute Engine ipa-gce-instance-2:

    {
      "analysisQuery": {
        "resourceSelector": {
          "fullResourceName":
            "//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2"
         },
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        }
      }
    }
    
  3. Analiza las políticas de IAM con el siguiente comando gcurl.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    En el ejemplo anterior, ORG_ID es el ID de la organización, como 1234567890.

Determina qué principales tienen ciertas funciones o permisos

Puedes usar el Analizador de políticas para verificar qué principales tienen funciones o permisos específicos en cualquier recurso de Google Cloud de tu organización. Para obtener esta información, crea una consulta sobre una principal que incluya una o más funciones o permisos que se deben verificar, pero que no especifique un recurso.

Console

  1. En Cloud Console, ve a la página Analizador de políticas.

    Ir a la página de Analizador de políticas

  2. Haz clic en el menú desplegable Crear consulta personalizada y, luego, en Principal.

  3. Deje en blanco el campo Recurso.

  4. En la sección Selecciona funciones o permisos, o ambos, selecciona una o más funciones o permisos para analizar:

    • Para agregar una función, haz clic en Agregar función. Luego, selecciona una función de la lista de funciones. Para agregar otra función, haz clic en Agregar otra función y selecciona la función que deseas agregar.
    • Para agregar un permiso, haz clic en Agregar permisos. Luego, selecciona los permisos que deseas agregar. Para agregar permisos adicionales, haz clic en Agregar más permisos y selecciona los permisos que deseas agregar.
  5. Opcional: Para enumerar usuarios individuales dentro de los grupos en la página de resultados, haz clic en el interruptor de la sección Opción de grupos.

  6. Haz clic en Ejecutar consulta para ejecutar tu consulta. La página de informes muestra los parámetros de consulta que ingresaste y una tabla de resultados de todas las principales con las funciones y permisos indicados en cualquier recurso del proyecto.

gcloud

Puedes llamar a AnalyzeIamPolicy en tu proyecto con la API habilitada mediante el comando de gcloud asset analyze-iam-policy. Debes ejecutar la versión 314.0.0 o posterior del SDK de Cloud. Puedes verificar tu versión con el comando gcloud version.

Para verificar qué principales tienen el COMMA_SEPARATED_PERMISSIONS en ORG_ID, haz lo siguiente:

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

Por ejemplo, para verificar qué principales tienen los permisos compute.instances.get o compute.instances.start en la organización 1234567890:

gcloud asset analyze-iam-policy --organization="1234567890" \
    --permissions="compute.instances.get,compute.instances.start"

REST

  1. Analiza las políticas de IAM y escribe los resultados con el alias gcurl.

  2. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    Por ejemplo, en el siguiente cuerpo de solicitud, se verifica qué principales tienen los permisos compute.instances.get o compute.instances.start en los recursos aplicables:

    {
      "analysisQuery": {
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        }
      }
    }
    
  3. Analiza las políticas de IAM con el siguiente comando gcurl.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    En el ejemplo anterior, ORG_ID es el ID de la organización, como 1234567890.

Determina qué acceso tiene un principal en un recurso

Puedes usar el Analizador de políticas para verificar qué funciones o permisos tiene una principal en un recurso en tu organización. Para obtener esta información, crea una consulta sobre el acceso que incluya la principal cuyo acceso deseas analizar y el recurso para el que deseas analizar el acceso.

Console

  1. En Cloud Console, ve a la página Analizador de políticas.

    Ir a la página de Analizador de políticas

  2. En el campo Recurso, ingresa el nombre completo del recurso del que deseas analizar el acceso. Si no conoces el nombre completo del recurso, comienza a escribir su nombre visible y, luego, selecciónalo en la lista de recursos proporcionados.

  3. En el campo Principal, comienza a escribir el nombre de un usuario, una cuenta de servicio o un grupo. Luego, en la lista de principales que se proporciona, selecciona el usuario, la cuenta de servicio o el grupo cuyo acceso deseas analizar.

  4. Opcional: Para enumerar permisos dentro de las funciones en la página de resultados, haz clic en el interruptor de la sección Opción de funciones.

  5. Haz clic en Ejecutar consulta para ejecutar tu consulta. La página de informes muestra los parámetros de consulta que ingresaste y una tabla de resultados de todas las funciones que la principal especificada tiene en el recurso que ingresaste.

gcloud

Puedes llamar a AnalyzeIamPolicy en tu proyecto con la API habilitada mediante el comando de gcloud asset analyze-iam-policy. Debes ejecutar la versión 314.0.0 o posterior del SDK de Cloud. Puedes verificar tu versión con el comando gcloud version.

Para determinar qué funciones o permisos se otorgaron a USER en el FULL_RESOURCE_NAME de ORG_ID, haz lo siguiente:

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --identity="USER"

Por ejemplo, qué funciones o permisos tiene el usuario user1@example.com en la instancia de Compute Engine ipa-gce-instance-2, en la organización 1234567890:

gcloud asset analyze-iam-policy --organization="1234567890" \
    --full-resource-name="//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2" \
    --identity="user:user1@example.com"

REST

  1. Analiza las políticas de IAM y escribe los resultados con el alias gcurl.

  2. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    Por ejemplo, en el siguiente cuerpo de solicitud, se verifica qué funciones o permisos se otorgaron al usuario user1@example.com en la instancia de Compute Engine ipa-gce-instance-2:

    {
      "analysisQuery": {
        "resourceSelector": {
          "fullResourceName":
            "//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2"
         },
        "identitySelector": {
          "identity": "user:user1@example.com"
        }
      }
    }
    
  3. Analiza las políticas de IAM con el siguiente comando gcurl.

    gcurl -d @request.json \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    En el ejemplo anterior, ORG_ID es el ID de la organización, como 1234567890.

Determina a qué recursos puede acceder un principal

Puedes usar el Analizador de políticas para verificar qué recursos de la organización tiene funciones o permisos una principal. Para obtener esta información, crea una consulta sobre un recurso que incluya la principal cuyo acceso deseas analizar y uno o más permisos o funciones que desees comprobar.

Console

  1. En Cloud Console, ve a la página Analizador de políticas.

    Ir a la página de Analizador de políticas

  2. Haz clic en el menú desplegable Crear consulta personalizada y, luego, en Recurso.

  3. En el campo Principal, comienza a escribir el nombre de un usuario, una cuenta de servicio o un grupo. Luego, en la lista de principales que se proporciona, selecciona el usuario, la cuenta de servicio o el grupo cuyo acceso deseas analizar.

  4. En la sección Selecciona funciones o permisos, o ambos, selecciona una o más funciones o permisos para analizar:

    • Para agregar una función, haz clic en Agregar función. Luego, selecciona una función de la lista de funciones. Para agregar otra función, haz clic en Agregar otra función y selecciona la función que deseas agregar.
    • Para agregar un permiso, haz clic en Agregar permisos. Luego, selecciona los permisos que deseas agregar. Para agregar permisos adicionales, haz clic en Agregar más permisos y selecciona los permisos que deseas agregar.
  5. Opcional: Para enumerar los recursos de los proyectos en la página de resultados, haz clic en el interruptor de la sección Opción de recursos.

  6. Haz clic en Ejecutar consulta para ejecutar tu consulta. La página de informes muestra los parámetros de consulta que ingresaste y una tabla de resultados de todos los recursos en los que la principal especificada tiene las funciones o los permisos ingresados.

gcloud

Puedes llamar a AnalyzeIamPolicy en tu proyecto con la API habilitada mediante el comando de gcloud asset analyze-iam-policy. Debes ejecutar la versión 314.0.0 o posterior del SDK de Cloud. Puedes verificar tu versión con el comando gcloud version.

Para determinar qué recurso tiene un USER en los COMMA_SEPARATED_PERMISSIONS de ORG_ID, haz lo siguiente:

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --identity="USER" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

Por ejemplo, en qué recursos user1@example.com tiene permisos compute.instances.get o compute.instances.start en la organización 1234567890:

gcloud asset analyze-iam-policy --organization="1234567890" \
    --identity="user:user1@example.com" \
    --permissions="compute.instances.get,compute.instances.start"

REST

  1. Analiza las políticas de IAM y escribe los resultados con el alias gcurl.

  2. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    Por ejemplo, en el siguiente cuerpo de solicitud, se verifica qué recursos user1@example.com tienen los permisos compute.instances.get o compute.instances.start en:

    {
      "analysisQuery": {
        "identitySelector": {
          "identity": "user:user1@example.com"
         },
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        }
      }
    }
    
  3. Analiza las políticas de IAM con el siguiente comando gcurl.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    En el ejemplo anterior, ORG_ID es el ID de la organización, como 1234567890.

Referencia de la API y biblioteca cliente

Crea una consulta

A fin de obtener información sobre otros casos prácticos y opciones para las consultas, visita cómo analizar las muestras de consultas de políticas de IAM.

Limitaciones

  • El Analizador de políticas de Cloud Console no admite el análisis de robo de identidad de cuentas de servicio. Si quieres analizar el robo de identidad de la cuenta de servicio, usa la API de REST o la herramienta de gcloud.

  • Las condiciones de IAM se muestran como están en las vinculaciones de política que se muestran y no se explican con más detalle. Si existen una o más condiciones en una vinculación, significa que todas las identidades resultantes de esa vinculación tienen acceso condicional.

  • No todos los tipos de recursos son compatibles. Consulta la lista de tipos de recursos compatibles.