Analizador de políticas para políticas de IAM

El Analizador de políticas te permite descubrir qué principales (por ejemplo, usuarios, cuentas de servicio, grupos y dominios) tienen qué acceso a cuáles recursos de Google Cloud en función de tus políticas de permisos de IAM.

El Analizador de políticas puede ayudarte a responder las siguientes preguntas:

  • ¿Quién puede acceder a esta cuenta de servicio de IAM?
  • ¿Quién puede leer datos en este conjunto de datos de BigQuery que contiene información de identificación personal (PII)?
  • ¿Qué roles y permisos tiene el grupo dev-testers para los recursos de este proyecto?
  • ¿Qué instancias de máquina virtual (VM) de Compute Engine puede borrar Tal en el proyecto A?
  • ¿Quién puede acceder a este bucket de Cloud Storage a las 7 p.m.?

Cómo funciona el Analizador de políticas

Para usar el Analizador de políticas, crea una consulta de análisis, especifica un alcance para el análisis y, luego, ejecuta la consulta.

Consultas de análisis

Para usar el Analizador de políticas, crea una consulta de análisis que especifique uno o más de los siguientes campos:

  • Principales: Las identidades (por ejemplo, usuarios, cuentas de servicio, grupos y dominios) cuyo acceso quieres verificar
  • Acceso: Los permisos y roles que quieres verificar
  • Recursos: Los recursos a los que deseas verificar el acceso
  • (Solo API) Contexto de la condición: El contexto (por ejemplo, la hora del día) en el que deseas verificar el acceso

Por lo general, debes especificar uno o dos de estos campos en la consulta de análisis y, luego, utilizar los resultados de la consulta para obtener más información sobre los campos que no especificaste. Por ejemplo, si quieres saber quién tiene un determinado permiso sobre un recurso determinado, debes especificar el acceso y el recurso en la consulta de análisis, pero no debes especificar la principal.

Para obtener más ejemplos de los tipos de consultas que puedes crear, lee la sección Tipos de consulta comunes.

Alcance del análisis

Para ejecutar una consulta de análisis, debes especificar un alcance para analizar. El alcance es una organización, una carpeta o un proyecto al que deseas restringir tu análisis. Solo se analizarán las políticas de permisos de IAM vinculadas al recurso usado como permiso y a sus elementos subordinados.

En la API de REST y en gcloud CLI, especifica el permiso de forma manual. En la consola de Google Cloud, el permiso se determina de forma automática según el proyecto, la carpeta o la organización que administras actualmente.

Después de crear una consulta de análisis y especificar el alcance, puedes ejecutar la consulta para analizar las políticas en ese alcance.

Resultados de la consulta

Cuando ejecutas una consulta de análisis, el Analizador de políticas informa cualquier vinculación de funciones que contiene las principales, el acceso y los recursos que especificaste en la consulta. Para cada vinculación de función, informa las principales en la vinculación, el acceso (función y permisos) que la vinculación otorga y el recurso al que otorga acceso.

Puedes revisar estos resultados para comprender mejor el acceso a tu proyecto, organización o carpeta. Por ejemplo, si ejecutas una consulta para averiguar qué principales tienen acceso a un recurso específico, deberías revisarlas en los resultados de la consulta.

Puedes habilitar las opciones de consulta para ajustar la información de los resultados de la consulta.

Tipos de políticas admitidas

El Analizador de políticas de IAM solo es compatible con las políticas de permisos de IAM.

El Analizador de políticas no admite las siguientes formas de control de acceso:

Los resultados de la consulta del Analizador de políticas no tienen en cuenta los tipos de políticas no compatibles. Por ejemplo, imagina que un usuario tiene el permiso iam.roles.get en un proyecto debido a una política de permisos, pero una política de denegación le impide usar el permiso. El Analizador de políticas informará que tienen el permiso iam.roles.get, a pesar de la política de denegación.

Herencia de políticas

Para tener en cuenta la herencia de políticas, el Analizador de políticas analiza de forma automática todas las políticas de permisos relevantes dentro del alcance especificado, sin importar en qué parte de la jerarquía de recursos se encuentren.

Por ejemplo, imagina que intentas averiguar quién puede acceder a una cuenta de servicio de IAM:

  • Si determinas el alcance de la consulta a un proyecto, el Analizador de políticas analiza la política de permisos de la cuenta de servicio y la del proyecto.
  • Si determinas el alcance de la consulta a una organización, el Analizador de políticas analiza la política de permisos de la cuenta de servicio, la política de permisos del proyecto que posee la cuenta de servicio, las políticas de permisos de cualquier carpeta que contiene el proyecto y la política de permisos de la organización.

Acceso condicional

Si una vinculación de función tiene una condición, solo otorga un acceso principal cuando se cumple esa condición. El Analizador de políticas siempre informa las condiciones adjuntas a vinculaciones de funciones relevantes. Estas son aquellas que contienen las principales, el acceso y los recursos que especificaste en la consulta de análisis.

En algunos casos, el Analizador de políticas también puede analizar la condición, lo que significa que puede informar si se cumpliría la condición. El Analizador de políticas puede analizar los siguientes tipos de condiciones:

Si una vinculación de rol relevante contiene una condición, el Analizador de políticas realiza una de las siguientes acciones:

  • Si el Analizador de políticas puede analizar la condición, realiza una de las siguientes acciones:

    • Si la condición se evalúa como verdadera, el Analizador de políticas incluye la vinculación de función en los resultados de la consulta y marca la evaluación de la condición como TRUE.
    • Si la condición se evalúa como falsa, el Analizador de políticas no incluye el rol en los resultados de la consulta.
  • Si el Analizador de políticas no puede analizar una condición para una vinculación de función relevante, incluye el rol en los resultados de la consulta y marca la evaluación de la condición como CONDITIONAL.

Actualidad de los datos

El Analizador de políticas usa la API de Cloud Asset, que ofrece la actualización de los datos del mejor esfuerzo. Si bien casi todas las actualizaciones de políticas aparecen en el Analizador de políticas en minutos, es posible que el Analizador de políticas no incluya las actualizaciones de políticas más recientes.

Tipos comunes de consultas

En esta sección, se describe cómo usar consultas de análisis para responder preguntas comunes relacionadas con el acceso.

¿Qué principales pueden acceder a este recurso?

Para determinar qué principales pueden acceder a un recurso, crea una consulta de análisis que especifique el recurso y, de forma opcional, las funciones y los permisos que quieres verificar.

Estas consultas pueden ayudarte a responder preguntas como las siguientes:

  • ¿Quién tiene acceso a esta cuenta de servicio de IAM?
  • ¿Quién tiene permiso para usar la identidad de esta cuenta de servicio de IAM?
  • ¿Quiénes son los administradores de facturación del proyecto A?
  • (Solo API y gcloud CLI): ¿Quién puede actualizar el proyecto A si se hace la identidad de una cuenta de servicio?

Para obtener información sobre cómo crear y enviar estas consultas, consulta Determina qué principales pueden acceder a un recurso.

¿Qué principales tienen estos roles y permisos?

Para determinar qué principales tienen ciertas funciones y permisos, crea una consulta de análisis que especifique una principal y un conjunto de funciones y permisos que desees verificar.

Estas consultas pueden ayudarte a responder preguntas como las siguientes:

  • ¿Quién tiene permiso para usar la identidad de cuentas de servicio en mi organización?
  • ¿Quiénes son los administradores de facturación de mi organización?
  • ¿Quién puede leer datos en este conjunto de datos de BigQuery que contiene información de identificación personal (PII)?
  • (Solo API y gcloud CLI): ¿Quién en mi organización puede leer un conjunto de datos de BigQuery suplantando la identidad de una cuenta de servicio?

Para obtener información sobre cómo crear y enviar estas consultas, consulta Determina qué principales tienen ciertos roles o permisos.

¿Qué roles y permisos tiene esta principal en este recurso?

Para determinar qué funciones y permisos tiene una principal sobre un recurso específico, crea una consulta de análisis que especifique una principal y un recurso para el que quieras verificar los permisos.

Estas consultas pueden ayudarte a responder preguntas como las siguientes:

  • ¿Qué funciones y permisos tiene el usuario Sasha en este conjunto de datos de BigQuery?
  • ¿Qué roles y permisos tiene el grupo dev-testers para los recursos de este proyecto?
  • (Solo API y gcloud CLI): ¿Qué funciones y permisos tiene el usuario Dana en este conjunto de datos de BigQuery si Dana actúa en nombre de una cuenta de servicio?

Para aprender a crear y enviar estas consultas, consulta Determina qué acceso tiene una principal a un recurso.

¿A qué recursos puede acceder esta principal?

Para determinar a qué recursos puede acceder una principal específica, crea una consulta de análisis que especifique una principal y los roles y permisos que deseas verificar.

Estas consultas pueden ayudarte a responder preguntas como las siguientes:

  • ¿Qué conjuntos de datos de BigQuery tiene permiso para leer el usuario Mahan?
  • ¿De qué conjuntos de datos de BigQuery es el grupo dev-testers el propietario de los datos?
  • ¿Qué VMs puede borrar Tal en el proyecto A?
  • (Solo API y gcloud CLI): ¿Qué VM puede borrar el usuario John cuando suplanta la identidad de una cuenta de servicio?

Para aprender a crear y enviar estas consultas, consulta Determina a qué recursos puede acceder una principal.

Consultas de análisis guardadas

Si usas la API de REST, puedes guardar las consultas de análisis para volver a usarlas o compartirlas con otras personas. Puedes ejecutar una consulta guardada como lo harías con cualquier otra consulta.

Si deseas obtener más información para guardar consultas, visita Administra las consultas guardadas.

Exportar resultados de consultas

Puedes ejecutar consultas de forma asíncrona y exportar los resultados de consultas a BigQuery o Cloud Storage mediante analyzeIamPolicyLongrunning.

Para obtener información sobre cómo exportar resultados de consultas a BigQuery, consulta Escribe análisis de políticas en BigQuery.

Para obtener información sobre cómo exportar resultados de consultas a Cloud Storage, consulta Escribe un análisis de políticas en Cloud Storage.

Opciones de consulta

El Analizador de políticas ofrece varias opciones que agregan más detalles a los resultados de la consulta.

Si deseas obtener información para habilitar estas opciones, consulta Habilitar opciones.

Expansión del grupo

Si habilitas la expansión de grupos, cualquier grupo en los resultados de la consulta se expande en miembros individuales. Esta expansión tiene un límite de 1,000 miembros por grupo. Si tienes suficientes permisos de grupo, los grupos anidados también se expandirán. Esta opción solo es eficaz si no especificas una principal en tu consulta.

Por ejemplo, imagina que habilitas la expansión de grupos para la consulta “¿Quién tiene el permiso storage.buckets.delete para project-1?”. Si el Analizador de políticas encuentra cualquier grupo que tenga el permiso storage.buckets.delete, los resultados de la consulta enumerarán no solo el identificador del grupo, sino también todos sus miembros individuales.

Esta opción te permite comprender el acceso de usuarios individuales, incluso si ese acceso es el resultado de su membresía en un grupo.

Expansión de la función

Si habilitas la expansión de funciones, los resultados de la consulta enumerarán todos los permisos dentro de cada función además de la función en sí. Esta opción solo está disponible si no especificas ningún permiso o función en tu consulta.

Por ejemplo, imagina que habilitas la expansión de funciones para la consulta “¿Qué acceso tiene my-user@example.com en el bucket bucket-1?”. Si el Analizador de políticas encuentra alguna función que le da a my-user@example.com acceso a bucket-1, los resultados de la consulta enumerarán no solo el nombre de la función, sino también todos los permisos incluidos en el rol.

Esta opción te permite ver exactamente qué permisos tienen tus principales.

Expansión de recursos

Si habilitas la expansión de recursos para una consulta del Analizador de políticas, los resultados de la consulta enumerarán todos los recursos subordinados relevantes para cualquier recurso superior (proyectos, carpetas y organizaciones) en los resultados de la consulta. Esta expansión tiene un límite de 1,000 recursos por recurso superior para las consultas del Analizador de políticas y de 100,000 recursos por recurso superior en el caso de las consultas de larga duración del Analizador de políticas.

Por ejemplo, considera cómo la expansión de recursos afectaría las siguientes consultas:

  • ¿Quién tiene el permiso storage.buckets.delete para project-1?

    Si habilitas la expansión de recursos para esta consulta, en la sección de recursos de los resultados de la consulta se mostrará no solo el proyecto, sino también todos los buckets de almacenamiento dentro del proyecto.

  • ¿En qué recursos my-user@example.com tiene el permiso compute.instances.setIamPolicy?

    Si habilitas la expansión de recursos para esta consulta y el Analizador de políticas descubre que my-user@example.com tiene una función a nivel de proyecto que contiene ese permiso, la sección de recursos de los resultados de la consulta mostrará no solo el proyecto, sino también todas las instancias de Compute Engine dentro del proyecto.

Esta opción te permite obtener una comprensión detallada de los recursos a los que pueden acceder las principales.

Uso de identidad temporal como cuenta de servicio

Si usas la API de REST o gcloud CLI, puedes habilitar el análisis de robo de identidad de cuentas de servicio.

Si esta opción está habilitada, el Analizador de políticas ejecuta consultas de análisis adicionales para determinar quién puede usar la identidad de las cuentas de servicio que tienen el acceso especificado a los recursos especificados. El Analizador de políticas ejecuta una consulta por cada cuenta de servicio en los resultados de las consultas. Con estas consultas, se analiza quién tiene alguno de los siguientes permisos en la cuenta de servicio:

  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.getOpenIdToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt

Cuotas y límites

Cloud Asset Inventory aplica la tasa de solicitudes entrantes, incluidas las solicitudes de análisis de políticas, según el proyecto del consumidor. Cloud Asset Inventory también limita la expansión del grupo dentro de las membresías del grupo y la expansión de recursos dentro de la jerarquía de recursos.

Para ver las cuotas y los límites predeterminados del Analizador de políticas, consulta Cuotas y límites en la documentación de Cloud Asset Inventory.

¿Qué sigue?