Usa IAM de forma segura

En esta página, se sugieren prácticas recomendadas de seguridad que debes tener en cuenta cuando usas IAM.

Esta página está diseñada para usuarios que dominan IAM. Si recién comienzas a usar IAM, estas instrucciones no te enseñarán a usarlo. En su lugar, los usuarios nuevos deben comenzar con la Guía de inicio rápido.

Privilegio mínimo

Las funciones básicas incluyen miles de permisos en todos los servicios de Google Cloud. En entornos de producción, no otorgues funciones básicas, a menos que no haya alternativa. En su lugar, otorga las funciones predefinidas más limitadas o las funciones personalizadas que satisfagan tus necesidades.

Si necesitas reemplazar una función básica, puedes usar las recomendaciones de funciones para determinar qué funciones otorgar en su lugar. También puedes usar Policy Simulator para asegurarte de que el cambio de la función no afecte el acceso de la principal.

Podría ser adecuado otorgar funciones básicas en los siguientes casos:

  • Cuando el servicio de Google Cloud no proporcione una función predefinida. Consulta la tabla de funciones predefinidas para obtener una lista de todas las funciones predefinidas disponibles.
  • Cuando quieras otorgar permisos más amplios para un proyecto. Esto sucede a menudo cuando se otorgan permisos en entornos de desarrollo o prueba.
  • Cuando trabajes en un equipo pequeño en el que los miembros no necesitan permisos detallados.
Trata cada componente de tu aplicación como un límite de confianza separado. Si tienes varios servicios que requieren permisos diferentes, crea una cuenta de servicio individual para cada uno de los servicios y otorga solo los permisos necesarios a cada cuenta de servicio.
Recuerda que las políticas de permisos para recursos secundarios se heredan de las políticas de permisos en sus recursos superiores. Por ejemplo, si la política de permisos de un proyecto otorga a un usuario la capacidad de administrar instancias de máquina virtual (VM) de Compute Engine, el usuario puede administrar cualquier VM de Compute Engine en ese proyecto, sin importar la política de permisos que configures en cada VM.
Otorga funciones en el menor alcance posible. Por ejemplo, si un usuario solo necesita acceso a fin de publicar temas de Pub/Sub, otórgale la función publicador al usuario para ese tema.
Especifica qué principales pueden actuar como cuentas de servicio. Los usuarios que tengan la función de usuario de cuenta de servicio pueden acceder a todos los mismos recursos que la cuenta de servicio en sí. Por lo tanto, ten cuidado cuando otorgas la función de usuario de cuenta de servicio a un usuario.
Especifica quién tiene acceso para crear y administrar cuentas de servicio en tu proyecto.
Si se otorgan los roles predefinidos Project IAM Admin y Folder IAM Admin, se permitirá el acceso para modificar las políticas de permisos sin permitir acceso directo de lectura, escritura y administración a todos los recursos.

Si se le otorga el rol Owner (roles/owner) a una principal, esta podrá acceder a casi todos los recursos y modificarlos, además de modificar las políticas de permisos. Esta cantidad de privilegios puede resultar riesgosa. Otorga el rol Owner solo cuando se requiere el acceso (casi) universal.
Usa las vinculaciones condicionales de roles para permitir que el acceso caduque de forma automática y considera otorgar acceso con privilegios solo justo a tiempo.

Cuentas de servicio

Sigue las prácticas recomendadas para trabajar con cuentas de servicio. Garantizar que las cuentas de servicio tengan privilegios limitados y protegerse contra posibles amenazas de seguridad
No borres las cuentas de servicio que usen las instancias en ejecución. Esto podría hacer que toda tu aplicación (o parte de ella) falle si no has hecho la transición al uso de una cuenta de servicio alternativa primero.
Usa el nombre visible de una cuenta de servicio para hacer un seguimiento de para qué se usa la cuenta de servicio y qué permisos necesita.

Claves de cuenta de servicio

Evita usar claves de cuenta de servicio si hay otra opción disponible. Las claves de cuenta de servicio son un riesgo de seguridad si no se administran de forma adecuada. Debes elegir una alternativa más segura a las claves de la cuenta de servicio siempre que sea posible. Si te debes autenticar con una clave de cuenta de servicio, eres responsable de la seguridad de la clave privada y de otras operaciones que se describen en Prácticas recomendadas para administrar claves de cuenta de servicio. Si no se te permite crear una clave de cuenta de servicio, es posible que la creación de claves de cuentas de servicio esté inhabilitada para tu organización. Para obtener más información, consulta Administra los recursos de la organización con seguridad de forma predeterminada.
Rota las claves de tu cuenta de servicio mediante la API de la cuenta de servicio de IAM. A fin de rotar una clave, crea una clave nueva, cambia las aplicaciones para usar la clave nueva, inhabilita la clave anterior y bórrala cuando estés seguro de que ya no es necesaria.
Implementa procesos para administrar claves de cuenta de servicio administradas por el usuario.
Ten cuidado de no confundir las claves de encriptación con las claves de la cuenta de servicio. Las claves de encriptación suelen usarse para encriptar datos, mientras que las claves de cuentas de servicio se usan con el fin de acceder de forma segura a las API de Google Cloud.
No ingreses las claves de la cuenta de servicio en el código fuente ni las dejes en el directorio de descargas.

Auditoría

Usa los Registros de auditoría de Cloud para auditar con regularidad los cambios en tu política de permisos.
Exporta los registros de auditoría a Cloud Storage para almacenar tus registros durante períodos prolongados.
Audita quién tiene la capacidad de cambiar las políticas de permisos en los proyectos.
Administra el acceso a los registros mediante las funciones de Logging.
Aplica las mismas políticas de acceso que se aplican en el Explorador de registros al recurso de Google Cloud que usas para exportar los registros.
Usa los registros de auditoría de Cloud para auditar con regularidad el acceso a las claves de las cuentas de servicio.

Administración de políticas

Si una principal necesita acceso a todos los proyectos de tu organización, otorga roles a la principal a nivel de organización.
Siempre que sea posible, otorga funciones a un Grupo de Google y no a usuarios individuales. Es más fácil actualizar los miembros de un Grupo de Google que actualizar los principales en tus políticas de permiso.