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

❑  
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 en el que los miembros no necesitan permisos detallados.
❑  
Trata cada componente de tu aplicación como un límite de confianza individual. 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 los recursos secundarios heredan de las políticas de sus recursos superiores. Por ejemplo, si la política de un proyecto otorga al 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 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é miembros pueden actuar como cuentas 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 cuenta de servicio a un usuario.
Especifica quién tiene acceso para crear y administrar cuentas de servicio en tu proyecto.
Si se otorgan las funciones predefinidas de administrador de IAM de proyectos y administrador de IAM de carpetas, se permitirá el acceso para modificar las políticas de 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 a casi todos los recursos y modificarlos, además de modificar las políticas de 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 mediante la API de la cuenta de servicio de 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 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 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 auditoría de Cloud para auditar con regularidad los cambios en tu política de IAM.
❑  
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 IAM 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 visualizador 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

❑  
Configura políticas de 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 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.