Aplicar permisos con IAM Group y Managed Policy usando CloudFormation


En esta demostración veremos cómo aplicar permisos en un IAM Group y cómo estos se heredan automáticamente a los IAM Users que pertenecen a dicho grupo. Los conceptos tratados incluyen: managed policy, CloudFormation, IAM user, IAM group y S3.
Utilizaremos archivos previos como imágenes, policies y un template de CloudFormation. En este template se desarrollan los recursos lógicos, incluyendo algunas instancias EC2, la creación de un usuario y una Managed Policy. Veremos cómo aplicar esta policy a un grupo de IAM y cómo los usuarios del grupo reciben estos permisos.
Punto de partida
Estoy en mi cuenta aws-general
, donde realizo todo tipo de pruebas. La región seleccionada es N. Virginia. Asegúrate de tener desplegado el stack de CloudFormation.
Una vez creado el stack, podremos observar los recursos físicos que se mencionaron anteriormente. Ahora nos dirigiremos a la consola de S3 para revisar los buckets creados y cargar los archivos correspondientes (imágenes) en cada uno.
animalpics
catpics
Lo mismo para catpics
Revisión de usuario y políticas
Volvemos al stack de CloudFormation, sección Resources, y hacemos clic en el Physical ID del usuario sally
(creado automáticamente).
Le agregaremos la policy IAMGROUP-AllowAllS3ExceptCats. Como su nombre indica, permite acceso completo a S3 excepto al bucket catpics
. Para esto:
Entramos a Add permissions
Seleccionamos Attach policies directly
Buscamos la managed policy creada
Probar permisos con el usuario
Vamos al dashboard de IAM e iniciamos sesión con el usuario sally
para verificar los permisos asignados. Abrimos una ventana en modo incógnito y pegamos la URL de login.
Debes ingresar el usuario IAM (sally
), cuyo valor se encuentra en la sección Outputs del stack. También necesitas la contraseña, visible en los Parameters del mismo.
Una vez dentro, deberías ver únicamente el servicio S3. Recuerda: la managed policy permite todo en S3 excepto acceder o listar objetos en catpics
. En cambio, el bucket animalpics
estará disponible completamente.
Uso de grupos IAM
Ahora eliminaremos la policy que agregamos directamente al usuario. Esto nos permitirá enfocarnos en el objetivo principal: cómo usar IAM Groups para manejar permisos.
Pasos:
Vamos a IAM > Users > sally
Eliminamos la policy
En este punto, sally
no tendrá acceso a ningún bucket, ya que por defecto todo está denegado si no hay permisos explícitos.
Crear un grupo IAM
- En el dashboard de IAM (como administrador), creamos un grupo llamado DEVELOPERS
- Al crear el grupo, adjuntamos la misma Managed Policy que habíamos usado antes (permite acceso completo a S3 excepto a
catpics
)
En el grupo, podremos ver los usuarios añadidos y las políticas que se les asignan a través del grupo.
Ahora agregamos al usuario sally
al grupo DEVELOPERS.
Verificar permisos nuevamente
Volvemos a iniciar sesión con el usuario sally
.
Deberías poder ver nuevamente los buckets y tener acceso completo a animalpics
, pero seguir sin acceso a catpics
.
Conclusión
Cuando se trabaja con múltiples usuarios, no es recomendable asignar políticas directamente a cada uno. En su lugar, agrupar a los usuarios por área o función y asignar las Managed Policies al grupo es una forma más eficiente y escalable de gestionar permisos en AWS.
Recomendación final
Una vez termines de practicar, recuerda eliminar todos los recursos creados en tu cuenta para evitar cargos innecesarios.
¡Gracias por leer!
Subscribe to my newsletter
Read articles from Roberto España directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Roberto España
Roberto España
Ingeniero en Telecomunicaciones con enfoque en redes, conectividad y automatización. Actualmente estudiando AWS, DevOps y CI/CD. Comparto mi camino con proyectos prácticos y artículos técnicos desde Chile 🇨🇱. https://robertoespana.hashnode.dev/portafolio