Controlar quién accede a cada recurso dentro de una cuenta de AWS es una de las tareas más críticas en la nube. Identity and Access Management (IAM) es el servicio gratuito incluido en todas las cuentas de AWS que permite administrar usuarios, grupos, roles y políticas para otorgar o denegar acceso de forma granular. Comprender sus componentes principales es el primer paso para construir una infraestructura segura.
¿Qué es IAM y por qué es esencial en AWS?
IAM es el servicio que responde a dos preguntas fundamentales: quién puede acceder y a qué recurso puede acceder dentro de una cuenta de AWS [0:16]. Está disponible sin costo adicional y viene integrado en cada cuenta. Gracias a IAM es posible crear usuarios individuales, agruparlos y asignar permisos específicos mediante políticas, todo desde una consola centralizada.
Cuando se crea una cuenta de AWS se genera automáticamente un usuario root [1:07]. Este usuario tiene privilegios totales sobre todos los recursos y es el encargado de crear las demás identidades: desarrolladores, personal de ventas, testers, ingenieros de versiones, entre otros.
¿Cómo se organizan los usuarios y los grupos?
Imagina una empresa con diez desarrolladores, cinco vendedores, dos probadores y un ingeniero de versiones [1:27]. Cada equipo necesita un nivel de acceso distinto:
- Los desarrolladores requieren acceso a los servidores de desarrollo.
- El equipo de ventas necesita consultar informes almacenados en el servicio de almacenamiento S3.
- Los testers deben llegar tanto a servidores de desarrollo como a servidores de pruebas.
- El ingeniero de versiones necesita acceso completo a todos los recursos.
En lugar de configurar permisos usuario por usuario, IAM permite crear grupos [2:22]. Al agregar un desarrollador al grupo "Desarrollo", este hereda automáticamente los permisos del grupo. Si llega un nuevo integrante al equipo, basta con añadirlo al grupo correspondiente.
¿Cómo funcionan las políticas en IAM?
Las políticas son documentos en formato JSON que definen qué acciones están permitidas o denegadas sobre recursos específicos [2:40]. Se crean y editan desde la consola de IAM, tanto de forma visual como directamente en JSON.
Un ejemplo práctico: una política que permite a un usuario almacenar archivos en un bucket de S3 contiene tres elementos clave [3:08]:
- ListBucket: permite visualizar el contenido del bucket.
- PutObject / GetObject: permite subir o descargar objetos dentro del bucket.
- Un recurso con la ruta del bucket seguida de
/*, que indica acceso a todo el contenido interior.
Estas políticas pueden aplicarse a un usuario individual o a un grupo completo, y su complejidad crece conforme lo exige la arquitectura.
¿Qué diferencia a los roles de los usuarios en IAM?
Los roles funcionan de manera similar a las políticas de usuario, pero con una diferencia fundamental: no solo los usuarios pueden asumir un rol, también los servicios de AWS [3:48]. Este concepto es vital para la seguridad entre servicios.
¿Cuándo se utiliza un rol en la práctica?
Consideremos un caso real [4:16]: una máquina virtual aloja un sitio web que necesita conectarse a una base de datos gestionada por AWS. En lugar de almacenar credenciales en la máquina virtual, se crea un rol con permisos de acceso a la base de datos y se asigna a la máquina virtual. Así, solo esa instancia puede comunicarse con la base de datos.
Esta estrategia añade una capa extra de seguridad [4:46] por encima del uso tradicional de nombre de usuario, contraseña o firewall. En esencia:
- Un usuario representa a una persona.
- Un rol puede ser asumido tanto por personas como por servicios.
- Los roles permiten delegar acceso temporal sin compartir credenciales permanentes.
A medida que la infraestructura crece, los roles se vuelven más complejos y poderosos, convirtiéndose en una pieza central de la arquitectura de seguridad dentro de AWS [5:07].
Si te interesa profundizar en cómo proteger información sensible, el siguiente paso natural es explorar AWS Secrets Manager y su integración con IAM. ¿Qué escenario de permisos te resulta más desafiante? Comparte tu experiencia en los comentarios.