Las recomendaciones de roles te ayudan a identificar y eliminar permisos innecesarios de tus principales, lo que mejora las configuraciones de seguridad de tus recursos.
Descripción general de las recomendaciones de roles
El recomendador de gestión de identidades y accesos genera recomendaciones de roles. El recomendador de gestión de identidades y accesos es uno de los recomendadores que ofrece Recomendador.
Cada recomendación de rol sugiere que elimines o sustituyas un rol que otorga a tus principales permisos excesivos. A gran escala, estas recomendaciones te ayudan a aplicar el principio de mínimos accesos, ya que garantizan que las entidades solo tengan los permisos que realmente necesitan.
El recomendador de IAM identifica los permisos excesivos mediante estadísticas de políticas. Las estadísticas de políticas son resultados basados en aprendizaje automático sobre el uso de permisos de un principal.
Algunas recomendaciones también están asociadas a estadísticas de movimientos laterales. Estas estadísticas identifican los roles que permiten que las cuentas de servicio de un proyecto suplanten la identidad de las cuentas de servicio de otro proyecto. Para obtener más información, consulta cómo se generan las estadísticas de movimientos laterales.
Cómo se generan las estadísticas de políticas
Las estadísticas de las políticas destacan los permisos de los roles de una entidad de seguridad que no está usando.
El recomendador de gestión de identidades y accesos genera estadísticas de políticas comparando el número total de permisos de un principal con los permisos que ha usado en los últimos 90 días. Si el rol se ha concedido hace menos de 90 días, el recomendador de IAM analiza el uso de permisos de la entidad en el periodo transcurrido desde que se le concedió el rol.
Hay varias formas en las que una entidad de seguridad puede usar un permiso:
Directamente, llamando a una API que requiera el permiso
Por ejemplo, el método
roles.list
de la API REST de gestión de identidades y accesos requiere el permisoiam.roles.list
. Cuando llamas al métodoroles.list
, usas el permisoiam.roles.list
.Del mismo modo, cuando llamas al método
testIamPermissions
de un recurso, usas de forma efectiva todos los permisos que estás probando.Indirectamente, mediante la consola para trabajar con recursos Google Cloud Google Cloud
Por ejemplo, en la Google Cloud consola, puedes editar una instancia de máquina virtual (VM) de Compute Engine, lo que requiere diferentes permisos en función de los ajustes que cambies. Sin embargo, la consola Google Cloud también muestra los ajustes actuales, lo que requiere el permiso
compute.instances.get
.Por lo tanto, cuando editas una instancia de VM en la consola, usas el permiso
compute.instances.get
. Google Cloud
Para determinar los permisos que ha usado la entidad de seguridad, el recomendador de gestión de identidades y accesos usa datos de acceso de gestión de identidades y accesos agregados. Para saber cómo exportar los datos que usa el recomendador de IAM para generar estas estadísticas, consulta Exportar datos de recomendaciones de roles.
El recomendador de gestión de identidades y accesos también usa el aprendizaje automático para identificar los permisos del rol actual de una entidad principal que es probable que necesite en el futuro, aunque no los haya usado recientemente. Para obtener más información, consulta la sección Aprendizaje automático para obtener estadísticas de las políticas de esta página.
No se generan estadísticas de políticas para todos los roles de gestión de identidades y accesos que se conceden a las principales. Para obtener más información sobre por qué un rol puede no tener una estadística de política, consulta la sección Disponibilidad de esta página.
Para saber cómo gestionar la información valiosa sobre políticas, consulta Gestionar información valiosa sobre políticas de proyectos, carpetas y organizaciones o Gestionar información valiosa sobre políticas de cubos de Cloud Storage.
Aprendizaje automático para obtener información valiosa sobre las políticas
En algunos casos, es probable que una entidad necesite ciertos permisos que se incluyan en sus roles actuales, pero que no haya utilizado recientemente. Para identificar estos permisos, el recomendador de IAM usa un modelo de aprendizaje automático (ML) al generar estadísticas de políticas.
Este modelo de aprendizaje automático se entrena con varios conjuntos de señales:
Patrones de co-ocurrencia habituales en el historial observado: el hecho de que un usuario haya usado los permisos A, B y C en el pasado indica que A, B y C pueden estar relacionados de alguna forma y que se necesitan juntos para llevar a cabo una tarea en Google Cloud. Si el modelo de aprendizaje automático observa este patrón con suficiente frecuencia, la próxima vez que otro usuario utilice los permisos A y B, el modelo sugerirá que el usuario también podría necesitar el permiso C.
Conocimientos del dominio codificados en las definiciones de roles: IAM proporciona cientos de roles predefinidos diferentes que son específicos de cada servicio. Si un rol predefinido contiene un conjunto de permisos, es una señal clara de que esos permisos deben concederse juntos.
Además de estas señales, el modelo también usa incrustaciones de palabras para calcular la similitud semántica de los permisos. Los permisos semánticamente similares estarán "cerca" entre sí después de la inserción y será más probable que se concedan juntos. Por ejemplo, bigquery.datasets.get
y bigquery.tables.list
estarán muy cerca entre sí después de la inserción.
Todos los datos utilizados en la canalización de aprendizaje automático del recomendador de IAM tienen k-anonimato, lo que significa que no se puede reidentificar a las personas del conjunto de datos anonimizado. Para alcanzar este nivel de anonimato, eliminamos toda la información personal identificable (IPI), como el ID de usuario relacionado con cada patrón de uso de permisos. Después, eliminamos todos los patrones de uso que no se repiten con suficiente frecuencia en Google Cloud. El modelo global se entrena con estos datos anonimizados.
El modelo global se puede personalizar aún más para cada organización mediante el aprendizaje federado, un proceso de aprendizaje automático que entrena modelos de aprendizaje automático sin exportar datos.
Cómo se generan las recomendaciones de roles
Si una estadística de políticas indica que un principal no necesita todos los permisos de su rol, el recomendador de gestión de identidades y accesos evalúa el rol para determinar si se puede revocar o si hay otro rol que se ajuste mejor. Si se puede revocar el rol, el recomendador de gestión de identidades y accesos genera una recomendación para revocarlo. Si hay otro rol que se ajuste mejor, el recomendador de gestión de identidades y accesos generará una recomendación para sustituir el rol por otro sugerido. Este rol sugerido puede ser un rol personalizado nuevo, un rol personalizado que ya tengas o uno o varios roles predefinidos. Excepto en el caso de las recomendaciones para agentes de servicio, una recomendación de rol nunca sugiere un cambio que aumente el nivel de acceso de una principal.
Las recomendaciones de roles se generan únicamente en función de los controles de acceso de gestión de identidades y accesos. No tienen en cuenta otros tipos de controles de acceso, como las listas de control de acceso (LCA) y el control de acceso basado en roles (RBAC) de Kubernetes. Si utilizas otros tipos de controles de acceso, ten especial cuidado al revisar tus recomendaciones y ten en cuenta cómo se relacionan esos controles de acceso con tus políticas de permiso.
Además, no se generan recomendaciones de roles para todos los roles de gestión de identidades y accesos que se conceden a las principales. Para obtener más información sobre por qué un rol puede no tener una recomendación, consulta la sección Disponibilidad de esta página.
Periodo de observación
El periodo de observación de una recomendación de rol es el número de días de datos de uso de permisos en los que se basa la recomendación.
El periodo de observación máximo para las recomendaciones de roles es de 90 días. Esto significa que el recomendador de IAM usa, como máximo, los datos de uso de permisos de los últimos 90 días para generar recomendaciones de roles.
Además, el recomendador de IAM no empieza a generar recomendaciones de roles hasta que tiene un determinado número de días de datos de uso de permisos. Esta duración se denomina periodo de observación mínimo. De forma predeterminada, el periodo de observación mínimo es de 90 días, pero, en el caso de las recomendaciones de roles a nivel de proyecto, puedes definirlo manualmente en 30 o 60 días. Para obtener más información, consulta Configurar la generación de recomendaciones de roles. Si defines un periodo de observación mínimo inferior a 90 días, recibirás recomendaciones antes, pero la precisión de estas podría verse afectada.
Si ha transcurrido más tiempo que el periodo de observación mínimo, pero menos de 90 días desde que se concedió el rol, el periodo de observación será el tiempo transcurrido desde que se concedió el rol.
Nuevos roles personalizados en las recomendaciones de roles
Cuando el recomendador de gestión de identidades y accesos sugiere sustituciones para un rol, siempre propone un rol personalizado o uno o varios roles predefinidos que parecen ajustarse mejor a las necesidades de la entidad.
Si el recomendador de gestión de identidades y accesos identifica un patrón de uso de permisos habitual en tu organización que no se corresponde con ningún rol predefinido o personalizado, también puede recomendarte que crees un rol personalizado a nivel de proyecto. Este rol personalizado incluye solo los permisos recomendados. Puedes modificar la recomendación de rol personalizado añadiendo o quitando permisos.
Si quieres aplicar el principio de mínimos accesos de la forma más estricta posible, elige el nuevo rol personalizado. El recomendador de gestión de identidades y accesos crea el rol personalizado a nivel de proyecto. Eres responsable de mantener y actualizar los roles personalizados de tus proyectos.
Si prefieres usar un rol que se mantenga automáticamente, elige el rol predefinido. Google Cloud actualiza estos roles periódicamente añadiendo o quitando permisos. Para recibir notificaciones sobre estas actualizaciones, suscríbete al feed de noticias del registro de cambios de permisos. Si eliges el rol predefinido, la entidad principal seguirá teniendo al menos algunos permisos, y posiblemente muchos, que no ha usado.
El recomendador de gestión de identidades y accesos solo recomienda roles personalizados nuevos para los roles concedidos en un proyecto. No recomienda nuevos roles personalizados para los roles concedidos en otros recursos, como carpetas u organizaciones.
Además, el recomendador de gestión de identidades y accesos no recomienda nuevos roles personalizados en los siguientes casos:
- Tu organización ya tiene 100 o más roles personalizados.
- Tu proyecto ya tiene 25 o más roles personalizados.
El recomendador de IAM recomienda crear un máximo de 5 roles personalizados nuevos al día en cada proyecto y un máximo de 15 roles personalizados nuevos en toda la organización.
Cómo se generan las estadísticas de movimientos laterales
El movimiento lateral se produce cuando una cuenta de servicio de un proyecto tiene permiso para suplantar la identidad de una cuenta de servicio de otro proyecto. Por ejemplo, se puede haber creado una cuenta de servicio en el proyecto A, pero tener permisos para suplantar la identidad de una cuenta de servicio del proyecto B.
Estos permisos pueden provocar una cadena de suplantaciones de identidad entre proyectos que otorgue a las entidades acceso no deseado a los recursos. Por ejemplo, si un principal suplanta la identidad de la cuenta de servicio del proyecto A, puede usar esa cuenta de servicio para suplantar la identidad de la cuenta de servicio del proyecto B. Si la cuenta de servicio del proyecto B tiene permiso para suplantar la identidad de otras cuentas de servicio de otros proyectos de tu organización, la principal puede seguir usando la suplantación de identidad de la cuenta de servicio para pasar de un proyecto a otro y obtener permisos a medida que avanza.
El recomendador de IAM genera información valiosa sobre movimientos laterales identificando roles que cumplen los siguientes criterios:
- El principal al que se le ha concedido el rol es una cuenta de servicio que no se ha creado en el proyecto.
El rol incluye uno de los siguientes permisos, que permiten que un principal suplante la identidad de una cuenta de servicio:
iam.serviceAccounts.actAs
iam.serviceAccounts.getAccessToken
iam.serviceAccounts.getOpenIdToken
iam.serviceAccounts.implicitDelegation
iam.serviceAccounts.signBlob
iam.serviceAccounts.signJwt
Si un rol cumple estos criterios, el recomendador de gestión de identidades y accesos genera una estadística de movimiento lateral para ese rol. Esta información valiosa contiene datos sobre las funciones de suplantación de la cuenta de servicio, incluidas las cuentas de servicio que puede suplantar y si ha usado algún permiso de suplantación en los últimos 90 días.
El recomendador de gestión de identidades y accesos no usa las estadísticas de movimiento lateral por sí solas para generar nuevas recomendaciones de roles. Esto se debe a que, si una cuenta de servicio usa sus permisos de suplantación de identidad, el recomendador de IAM no puede sugerir que se eliminen de forma segura. Sin embargo, si una recomendación de rol sugiere eliminar estos permisos porque no se están usando, el recomendador de IAM vinculará la estadística de movimiento lateral a esa recomendación. Esta vinculación te ayuda a priorizar las recomendaciones de roles para las cuentas de servicio que tienen permisos de suplantación potentes y sin usar en varios proyectos.
Para saber cómo gestionar la información valiosa sobre movimientos laterales, consulta Gestionar información valiosa sobre movimientos laterales.
Disponibilidad
Las estadísticas de políticas, las estadísticas de movimientos laterales y las recomendaciones de roles no se generan para todos los roles que se conceden a las entidades. Lee las siguientes secciones para saber qué roles se usan para generar estadísticas de políticas, estadísticas de movimientos laterales y recomendaciones.
Disponibilidad de las estadísticas de políticas
Para que el recomendador de gestión de identidades y accesos genere una información valiosa sobre una política de un rol, se deben cumplir los siguientes requisitos:
La política de permiso de gestión de identidades y accesos que concede el rol debe estar asociada a uno de los siguientes recursos:
- Segmento de Cloud Storage
- Conjunto de datos de BigQuery
- Proyecto
- Carpeta
- Organización
El recomendador de gestión de identidades y accesos solo genera estadísticas de políticas para los roles que se conceden en estos recursos.
La vinculación de roles que concede el rol no debe tener una condición. El recomendador de gestión de identidades y accesos no genera información valiosa sobre las asignaciones de roles condicionales.
La entidad a la que se le ha concedido el rol debe ser uno de los siguientes tipos de entidad:
- Usuario
- Cuenta de servicio
- Grupo
allUsers
allAuthenticatedUsers
- Valores de conveniencia de Cloud Storage
- Pertenencia a grupos especiales de BigQuery
Uno de los siguientes tipos de identidades federadas:
- Todas las identidades de un grupo de identidades de carga de trabajo
- Identidad única de un grupo de identidades de carga de trabajo
- Todas las identidades de un grupo de identidades de Workforce
- Una sola identidad en un grupo de identidades de Workforce
Todos los pods de Google Kubernetes Engine que usan una cuenta de servicio de Kubernetes específica
Para obtener información sobre el formato del identificador de cada tipo de principal, consulta Identificadores de principales.
El recomendador de gestión de identidades y accesos puede tardar hasta 10 días en generar estadísticas de políticas para un rol recién concedido.
Las estadísticas de las políticas se actualizan a diario en función del uso reciente de los permisos. Sin embargo, los datos en los que se basan las estadísticas de la política suelen tener un retraso de hasta dos días con respecto al uso real.
Disponibilidad de la información valiosa sobre movimientos laterales
La información valiosa sobre movimientos laterales se genera para los roles que se conceden en los siguientes recursos:
- Organizaciones
- Carpetas
- Proyectos
- Cuentas de servicio
Disponibilidad de las recomendaciones de roles
Para que el recomendador de gestión de identidades y accesos genere una recomendación de rol, se deben cumplir los siguientes requisitos:
- El rol debe tener un análisis de políticas asociado. Esta información sobre la política sirve de base para la recomendación.
- Debe haber transcurrido un periodo superior al mínimo de observación desde que se concedió el rol. De esta forma, el recomendador de IAM tiene suficientes datos de uso para hacer una recomendación. De forma predeterminada, el periodo de observación mínimo es de 90 días, pero puedes configurarlo manualmente en 30 o 60 días. Para obtener más información, consulta Configurar la generación de recomendaciones de roles.
- Si la entidad a la que se le concede el rol es un agente de servicio, el rol debe ser Propietario, Editor o Lector. El recomendador de gestión de identidades y accesos no genera recomendaciones de roles para agentes de servicio con otros roles. Para obtener más información, consulta Recomendaciones de roles para agentes de servicio.
Si un rol se ha concedido hace poco o no tiene ninguna estadística, la columna Permisos analizados de la consola Google Cloud muestra el icono
.Hay casos en los que el recomendador de gestión de identidades y accesos no genera recomendaciones de roles para un rol, aunque haya pasado suficiente tiempo y el rol tenga una estadística asociada. Esto puede ocurrir por los siguientes motivos:
No hay roles de gestión de identidades y accesos predefinidos que sean más adecuados que el rol actual. Si una entidad de seguridad ya tiene un rol predefinido que minimiza sus permisos o que incluye menos permisos que otros roles predefinidos, el recomendador de IAM no puede recomendar otro rol predefinido.
Puedes reducir los permisos de la principal creando un rol personalizado para ella.
La entidad principal es un agente de servicio y el rol no es un rol básico. El recomendador de IAM solo genera recomendaciones de roles para agentes de servicio que tienen un rol básico (propietario, editor o lector). Para obtener más información, consulta Recomendaciones de roles para agentes de servicio.
Ninguna otra entidad principal tiene el rol básico Propietario en el proyecto. Al menos una entidad principal debe tener el rol Propietario (
roles/owner
) en cada proyecto. Si solo un principal tiene este rol, el recomendador de gestión de identidades y accesos no te recomendará que lo revoques o lo sustituyas.
En estos casos, la columna Permisos analizados de la consolaGoogle Cloud muestra el uso de permisos de la entidad, pero no tiene el icono Recomendación disponible.
Las recomendaciones de roles se actualizan a diario en función del uso reciente de los permisos. Sin embargo, los datos en los que se basan las recomendaciones de roles suelen tener un retraso de hasta dos días con respecto a tu uso real.
Prioridad y gravedad
La prioridad de las recomendaciones y la gravedad de las estadísticas te ayudan a entender la urgencia de una recomendación o una estadística y a priorizar en consecuencia.
Prioridad de las recomendaciones de roles
A las recomendaciones se les asignan niveles de prioridad en función de la urgencia percibida.
Los niveles de prioridad van de P1
(prioridad más alta) a P4
(prioridad más baja).
La prioridad de una recomendación de rol depende del rol al que se refiera:
Detalles de la recomendación | Prioridad | Explicación |
---|---|---|
Recomendaciones de roles que conceden acceso público a segmentos de Cloud Storage | P1 |
Cualquier usuario de Internet puede acceder a los segmentos de acceso público. Al eliminar el acceso público, tendrás más control sobre tus datos. |
Recomendaciones de roles que conceden acceso público a conjuntos de datos de BigQuery | P1 |
Cualquier usuario de Internet puede acceder a los conjuntos de datos de acceso público. Al eliminar el acceso público, tendrás más control sobre tus datos. |
Recomendaciones de roles básicos (Propietario, Editor y Lector) que se han concedido en un proyecto, una carpeta o una organización | P2 |
Los roles básicos son muy permisivos, por lo que aplicar recomendaciones a estos roles puede reducir considerablemente los permisos excedentes. |
Recomendaciones que no conceden acceso público ni roles básicos | P4 |
Aunque estas recomendaciones te ayudan a reducir los permisos excesivos, no eliminan el acceso público ni los roles básicos con muchos permisos, por lo que tienen una prioridad más baja. |
Gravedad de las estadísticas
A las estadísticas se les asignan niveles de gravedad en función de la urgencia percibida. Los niveles de gravedad pueden ser LOW
, MEDIUM
, HIGH
o CRITICAL
.
La gravedad de una estadística de políticas depende del rol al que esté dirigida:
Detalles de la estadística | Gravedad | Explicación |
---|---|---|
Estadísticas de los roles que conceden acceso público a los segmentos de Cloud Storage | CRITICAL |
Cualquier usuario de Internet puede acceder a los segmentos de acceso público. Al eliminar el acceso público, tendrás más control sobre tus datos. |
Estadísticas de los roles que conceden acceso público a conjuntos de datos de BigQuery | CRITICAL |
Cualquier usuario de Internet puede acceder a los conjuntos de datos de acceso público. Al eliminar el acceso público, tendrás más control sobre tus datos. |
Estadísticas de los roles básicos (Propietario, Editor y Lector) que se han concedido en un proyecto, una carpeta o una organización | HIGH |
Los roles básicos son muy permisivos, y si se tienen en cuenta las estadísticas de estos roles, se pueden reducir considerablemente los permisos excesivos. |
Información valiosa que no concede acceso público ni roles básicos | LOW |
Aunque estas estadísticas destacan los permisos excesivos, no implican acceso público ni roles básicos con muchos permisos, por lo que tienen una prioridad más baja. |
Todos los datos de movimientos laterales tienen una gravedad de LOW
.
Cómo se aplican las recomendaciones de roles
El recomendador de gestión de identidades y accesos no aplica las recomendaciones automáticamente. En su lugar, debes revisar las recomendaciones y decidir si quieres aplicarlas o rechazarlas. Para saber cómo revisar, aplicar y rechazar recomendaciones de roles, consulta una de las siguientes guías:
- Revisar y aplicar recomendaciones de roles para proyectos, carpetas y organizaciones
- Revisar y aplicar recomendaciones de roles para segmentos de Cloud Storage
- Revisar y aplicar recomendaciones de roles para conjuntos de datos de BigQuery
Registros de auditoría
Cuando aplicas o rechazas una recomendación, el recomendador de gestión de identidades y accesos crea una entrada de registro. Puedes ver estas entradas en tu historial de recomendaciones o consultarlas en tus registros de auditoría Google Cloud .
Subtipos de recomendaciones de roles
Las recomendaciones de roles se dividen en varios subtipos diferentes en función de la acción que recomiendan. Si usas la CLI de gcloud o la API REST, puedes usar estos subtipos para filtrar tus recomendaciones.
Subtipo | Descripción |
---|---|
REMOVE_ROLE |
Una recomendación para quitar el rol del principal a nivel de proyecto, carpeta u organización. |
REMOVE_ROLE_BIGQUERY_DATASET |
Una recomendación para quitar el rol a nivel de conjunto de datos de la cuenta principal. |
REMOVE_ROLE_STORAGE_BUCKET |
Una recomendación para quitar el rol a nivel de cubo de la cuenta principal. |
REPLACE_ROLE |
Recomendación para sustituir el rol del principal a nivel de proyecto, carpeta u organización por un rol con menos permisos. El reemplazo recomendado puede ser un rol personalizado o uno o varios roles predefinidos. |
REPLACE_ROLE_CUSTOMIZABLE |
Una recomendación para sustituir el rol de la principal por un nuevo rol personalizado que sea menos permisivo que el rol actual. |
REPLACE_ROLE_BIGQUERY_DATASET |
Recomendación para sustituir el rol a nivel de conjunto de datos de la principal por un rol menos permisivo. El rol de sustitución recomendado puede ser un rol personalizado o uno o varios roles predefinidos. |
REPLACE_ROLE_STORAGE_BUCKET |
Una recomendación para sustituir el rol a nivel de cubo de un principal por un rol menos permisivo. El rol de sustitución recomendado puede ser un rol personalizado o uno o varios roles predefinidos. |
SERVICE_AGENT_WITH_DEFAULT_ROLE |
Una recomendación para sustituir el rol de propietario, editor o lector de un agente de servicio por el rol que se concedió automáticamente a la cuenta de servicio cuando se creó. Para obtener más información, consulta Recomendaciones de roles para agentes de servicio. |
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE |
Una recomendación para sustituir el rol de propietario, editor o lector de un agente de servicio por un rol con menos permisos. Para obtener más información, consulta Recomendaciones de roles para agentes de servicio. |
Recomendaciones de roles para agentes de servicio
En el caso de los agentes de servicio, el recomendador de gestión de identidades y accesos solo proporciona recomendaciones para los roles básicos (propietario, editor o lector).
Las recomendaciones para agentes de servicio se dividen en dos subtipos.
SERVICE_AGENT_WITH_DEFAULT_ROLE
Al crearse, algunos agentes de servicio reciben automáticamente el rol de agente de servicio para asegurar que tus Google Cloud servicios funcionen
correctamente. Si sustituyes este rol por un rol básico (Propietario, Editor o Lector), es posible que se te sugiera que restaures el rol de agente de servicio original para eliminar permisos innecesarios, aunque el rol de agente de servicio tenga permisos que no estén incluidos en el rol básico. Estas recomendaciones tienen el subtipo SERVICE_AGENT_WITH_DEFAULT_ROLE
. Te ayudan a eliminar de forma segura los permisos innecesarios y, al mismo tiempo, se aseguran de que todos los servicios de Google Cloud funcionen correctamente.
Las recomendaciones SERVICE_AGENT_WITH_DEFAULT_ROLE
son el único tipo de recomendación que puede sugerir roles con permisos que no están en el rol actual.
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE
Si no se asigna automáticamente un rol a un agente de servicio al crearlo, las recomendaciones para el agente de servicio se basarán exclusivamente en los permisos que utilice. Estas recomendaciones tienen el subtipo
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE
.
Recomendaciones de roles en Security Command Center
Si tienes el nivel Premium o Enterprise de Security Command Center, puedes ver algunos subtipos de recomendaciones de roles como resultados en Security Command Center. Cada subtipo se asocia a un detector:
Subtipo de recomendación | Categorías de resultado |
---|---|
REMOVE_ROLE |
Unused IAM role |
REPLACE_ROLE |
IAM role has excessive permissions |
SERVICE_AGENT_WITH_DEFAULT_ROLE |
Service agent role replaced with basic role |
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE |
Service agent granted basic role |
Para obtener más información sobre cómo ver recomendaciones de roles en Security Command Center, consulta el artículo Recomendador de gestión de identidades y accesos en la documentación de Security Command Center.
Precios
Las recomendaciones de roles a nivel de proyecto, carpeta y organización para roles básicos están disponibles sin coste adicional.
Las siguientes funciones avanzadas de Recomendador de gestión de identidades y accesos están disponibles con las activaciones a nivel de proyecto o de organización de los niveles Premium o Enterprise de Security Command Center:
- Recomendaciones para roles no básicos
- Recomendaciones de roles concedidos en recursos distintos de organizaciones, carpetas y proyectos (por ejemplo, recomendaciones de roles concedidos en segmentos de Cloud Storage)
- Recomendaciones que sugieren roles personalizados
- Información valiosa sobre las políticas
- Información valiosa sobre movimientos laterales
Para obtener más información, consulta las preguntas sobre la facturación.
Ejemplos de recomendaciones de roles
En los siguientes ejemplos se muestran los tipos de recomendaciones que puedes recibir.
Revocar un rol
Se ha concedido el rol de navegador al usuario my-user@example.com
en un proyecto.
El rol Navegador incluye seis permisos que permiten al usuario ver los recursos del proyecto. Sin embargo, durante los últimos 90 días,
my-user@example.com
no ha visto ningún recurso.
Por lo tanto, el recomendador de gestión de identidades y accesos genera una recomendación de rol en la que se sugiere que revoques el rol Navegador de my-user@example.com
:
Consola
gcloud
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
}
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/browser"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"member": "user:my-user@example.com",
"removedRole": "roles/browser",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
}
},
"description": "This role has not been used during the observation window.",
"etag": "\"9fc3241da8bfab51\"",
"lastRefreshTime": "2022-05-20T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 6
}
}
},
"priority": "P4",
"recommenderSubtype": "REMOVE_ROLE",
"stateInfo": {
"state": "ACTIVE"
}
}
REST
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2022-05-20T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 6
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/browser"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"member": "user:my-user@example.com",
"removedRole": "roles/browser"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"9fc3241da8bfab51\"",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
}
],
"priority": "P4"
}
Sustituir un rol
Se ha asignado el rol Editor (roles/editor
) a una cuenta de servicio en un proyecto.
Este rol básico incluye más de 3000 permisos y concede un amplio acceso al proyecto. Sin embargo, durante los últimos 90 días, la cuenta de servicio solo ha usado algunos de esos permisos.
Por lo tanto, el recomendador de gestión de identidades y accesos genera una recomendación de rol en la que se sugiere que revoques el rol Editor y lo sustituyas por una combinación de otros dos roles, lo que elimina miles de permisos innecesarios:
Consola
gcloud
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/3d4ef3d6-bdf0-4330-975d-c65cb929c44d"
}
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"path": "/iamPolicy/bindings/*/members/-",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/iam.serviceAccountUser"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"value": "user:my-user@example.com"
},
{
"action": "add",
"path": "/iamPolicy/bindings/*/members/-",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"value": "user:my-user@example.com"
},
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/editor"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"addedRoles": [
"roles/iam.serviceAccountUser",
"roles/storage.objectAdmin"
],
"member": "user:my-user@example.com",
"minimumObservationPeriodInDays": "0",
"removedRole": "roles/editor",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
}
},
"description": "Replace the current role with smaller predefined roles to cover the permissions needed.",
"etag": "\"0da9a354c2a83d96\"",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/4637db3d-dba5-45eb-95ac-b4ee4b4cd14e",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 2998
}
}
},
"priority": "P2",
"recommenderSubtype": "REPLACE_ROLE",
"stateInfo": {
"state": "ACTIVE"
}
}
REST
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/4637db3d-dba5-45eb-95ac-b4ee4b4cd14e",
"description": "Replace the current role with smaller predefined roles to cover the permissions needed.",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 2998
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:my-user@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/iam.serviceAccountOwner"
}
},
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:my-user@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/editor"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"member": "user:my-user@example.com",
"removedRole": "roles/editor",
"addedRoles": [
"roles/iam.serviceAccountUser",
"roles/storage.objectAdmin"
],
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"0da9a354c2a83d96\"",
"recommenderSubtype": "REPLACE_ROLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/3d4ef3d6-bdf0-4330-975d-c65cb929c44d"
}
],
"priority": "P2"
}
Crear una función personalizada
Se ha concedido el rol de administrador de Cloud Trace (roles/cloudtrace.admin
) al usuario my-user@example.com
en un proyecto. El rol incluye más de 10 permisos, pero un análisis de la política indica que, durante los últimos 90 días, my-user@example.com
solo ha usado 4 de esos permisos.
Por lo tanto, el recomendador de gestión de identidades y accesos genera una recomendación de rol
en la que se sugiere que crees un rol personalizado que incluya solo los permisos que
my-user@example.com
se hayan usado:
Consola
gcloud
El subtipo REPLACE_ROLE_CUSTOMIZABLE
indica que el
recomendador de IAM recomienda crear un rol personalizado con los
permisos utilizados. Para ver los permisos utilizados, obtén la información valiosa de la política asociada.
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
}
],
"associatedResourceNames": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"path": "/iamPolicy/bindings/*/members/-",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"value": "user:my-user@example.com"
},
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"minimumObservationPeriodInDays": "0"
}
},
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"etag": "\"c7f57a4725d32d66\"",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
"originalContent": {},
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {},
"revokedIamPermissionsCount": 1
}
},
"priority": "P4",
"recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
"stateInfo": {
"state": "ACTIVE"
},
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
]
}
REST
El subtipo REPLACE_ROLE_CUSTOMIZABLE
indica que el recomendador de gestión de identidades y accesos recomienda crear un rol personalizado con los permisos utilizados. Para ver los permisos utilizados, obtén la información valiosa de la política asociada.
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 1
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:my-user@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
}
}
]
}
],
"overview": {
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"c7f57a4725d32d66\"",
"recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
}
],
"priority": "P4"
}
En la recomendación de rol también se sugiere otra opción: sustituir el rol actual por el rol de usuario de Cloud Trace (roles/cloudtrace.user
). Este rol predefinido incluye ligeramente menos permisos que el rol de administrador de Cloud Trace.
Sustitución de roles con permisos sugeridos por el aprendizaje automático
Se ha asignado el rol Editor (roles/editor
) a una cuenta de servicio en un proyecto.
Este rol básico incluye más de 3000 permisos y concede un amplio acceso a un proyecto. Sin embargo, una estadística de la política indica que, durante los últimos 90 días, la cuenta de servicio ha usado menos de 10 permisos.
La información valiosa también destaca varios permisos que es probable que la cuenta de servicio necesite en el futuro. El recomendador de IAM ha identificado estos permisos mediante aprendizaje automático.
El recomendador de gestión de identidades y accesos genera una recomendación de rol que sugiere que revoques el rol Editor y lo sustituyas por el rol Administrador de objetos de Storage (roles/storage.objectAdmin
), que concede control total de los objetos de un segmento de Cloud Storage. Con este cambio, se eliminan miles de permisos innecesarios, pero se conservan tanto los permisos que usaba la cuenta de servicio como los que es probable que necesite en el futuro:
Consola
El recomendador de gestión de identidades y accesos usa el icono Aprendizaje automático
resourcemanager.projects.get
se ha recomendado
en función del aprendizaje automático:
gcloud
Los permisos que se han añadido en función del aprendizaje automático del recomendador de gestión de identidades y accesos en lugar de en función del uso de los permisos no se incluyen en la recomendación. En su lugar, se indican en las estadísticas de las políticas asociadas a la recomendación. Todos los permisos basados en aprendizaje automático se indican en el inferredPermissions
campo de la estadística. En este ejemplo, el resourcemanager.projects.get
permiso se ha recomendado en función del aprendizaje automático:
associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f
category: SECURITY
content:
condition:
description: ''
expression: ''
location: ''
title: ''
currentTotalPermissionsCount: '5069'
exercisedPermissions:
- permission: storage.objects.create
- permission: storage.objects.delete
- permission: storage.objects.get
- permission: storage.objects.list
inferredPermissions:
- permission: resourcemanager.projects.get
member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com
role: roles/editor
description: 4 of the permissions in this role binding were used in the past 90 days.
etag: '"d3cdec23cc712bd0"'
insightSubtype: PERMISSIONS_USAGE
lastRefreshTime: '2020-07-11T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040
observationPeriod: 7776000s
stateInfo:
state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012
severity: HIGH
Para saber cómo obtener una estadística de una política, consulta uno de los siguientes artículos:
REST
Los permisos que se han añadido en función del aprendizaje automático del recomendador de gestión de identidades y accesos en lugar de en función del uso de los permisos no se incluyen en la recomendación. En su lugar, se indican en las estadísticas de las políticas asociadas a la recomendación. Todos los permisos basados en aprendizaje automático se indican en el inferredPermissions
campo de la estadística. En este ejemplo, el resourcemanager.projects.get
permiso se ha recomendado en función del aprendizaje automático:
{
"name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568",
"description": "4 of the permissions in this role binding were used in the past 90 days.",
"content": {
"role": "roles/editor",
"member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com",
"condition": {
"expression": "",
"title": "",
"description": "",
"location": ""
},
"exercisedPermissions": [
{
"permission": "storage.objects.create"
},
{
"permission": "storage.objects.delete"
},
{
"permission": "storage.objects.get"
},
{
"permission": "storage.objects.list"
}
],
"inferredPermissions": [
{
"permission": "resourcemanager.projects.get"
}
],
"currentTotalPermissionsCount": "5069"
},
"lastRefreshTime": "2020-07-12T07:00:00Z",
"observationPeriod": "7776000s",
"stateInfo": {
"state": "ACTIVE"
},
"category": "SECURITY",
"associatedRecommendations": [
{
"recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656"
}
],
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
],
"insightSubtype": "PERMISSIONS_USAGE",
"etag": "\"d3cdec23cc712bd0\"",
"severity": "HIGH"
}
Para saber cómo obtener una estadística de una política, consulta uno de los siguientes artículos:
Siguientes pasos
- Consulta las prácticas recomendadas para usar las recomendaciones de roles.
- Revisa y aplica las recomendaciones de roles para proyectos, carpetas y organizaciones.
- Revisar y aplicar las recomendaciones de roles para los segmentos de Cloud Storage
- Revisar y aplicar recomendaciones de roles para conjuntos de datos de BigQuery
- Consulta más información sobre Recommender.
- Conocer los roles predefinidos y los roles personalizados de gestión de identidades y accesos.