Cómo usar IAM de forma segura

Introducción

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

Esta página está diseñada para usuarios que dominan Cloud IAM. Si recién comienzas a usar Cloud 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.

Mínimo privilegio

❑  
En el caso de los recursos críticos para la seguridad, evita las funciones básicas, como roles/owner, roles/editor y roles/viewer. En cambio, otorga funciones predefinidas para permitir el acceso menos permisivo necesario.
Otorga 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 donde los miembros del equipo 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 una política establecida en un recurso secundario no puede restringir el acceso otorgado en su superior. Verifica la política otorgada en cada recurso y asegúrate de entender la herencia jerárquica.
Otorga funciones en el menor alcance posible. Por ejemplo, si un usuario solo necesita acceso para publicar en un tema de Pub/Sub, concede la función de publicador al usuario para ese tema.
Restringe quién puede actuar como una cuenta de servicio. Los usuarios que tengan la función de actor de la 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 actor de la cuenta de servicio a un usuario.
Restringe quién tiene acceso para crear y administrar cuentas de servicio en tu proyecto.
❑  
Si se otorgan las funciones predefinidas de administrador del proyecto de IAM y administrador de la carpeta de IAM, se permitirá el acceso para modificar las políticas de Cloud IAM sin permitir acceso directo de lectura, escritura y administración a todos los recursos.

Si se le otorga la función de propietario (roles/owner) a un miembro, este podrá acceder y modificar casi todos los recursos, además de modificar las políticas de Cloud IAM. Esta cantidad de privilegios puede resultar riesgosa. Otorga la función de propietario (roles/owner) solo cuando se requiere el acceso (casi) universal.

Cuentas de servicio y claves de cuenta de servicio

Rota las claves de tu cuenta de servicio con la API de la cuenta de servicio de Cloud IAM. Si quieres rotar una clave, crea una clave nueva, cambia las aplicaciones para usar la clave nueva y, luego, borra la clave antigua. Usa los métodos serviceAccount.keys.create() y serviceAccount.keys.delete() juntos para automatizar la rotación.
Implementa procesos para administrar claves de cuentas 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 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 usan y qué permisos deben tener.
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 Cloud Audit Logging para controlar de forma periódica los cambios hechos a tu política de Cloud IAM.
Exporta los registros de auditoría a Cloud Storage para almacenar tus registros durante períodos prolongados.
Controla quién tiene la capacidad de cambiar las políticas de Cloud IAM en tus proyectos.
Restringe el acceso a los registros mediante las funciones de Logging.
Aplica las mismas políticas de acceso que se aplican en el visualizador de registros al recurso de Google Cloud que usas para exportar los registros.
Usa los registros de Cloud Audit Logging para controlar con regularidad el acceso a las claves de las cuentas de servicio.

Administración de políticas

❑  
Configura políticas de Cloud IAM a nivel de la organización para otorgar acceso a todos los proyectos en tu organización.
Siempre que sea posible, otorga funciones a un Grupo de Google y no a usuarios individuales. Es más fácil agregar miembros y quitarlos de un Grupo de Google que actualizar una política de Cloud IAM para agregar o quitar usuarios.
Si necesitas otorgar varias funciones para permitir una tarea en particular, crea un Grupo de Google, otorga las funciones a ese grupo y, luego, agrega usuarios a ese grupo.