El IAM en AWS puede ser un desafío para usar y entender, especialmente para los nuevos usuarios. ¡Pero no te preocupes! Si estás teniendo dificultades para entender cómo funciona IAM en la gestión de permisos de usuario en AWS, has llegado al lugar correcto para comprender lo que es posible con IAM.
En este tutorial, aprenderás los conceptos básicos de IAM a través de una serie de ejemplos que se van construyendo uno sobre otro.
¿Listo? ¡Toma aire y sumérgete!
Requisitos previos
Este tutorial será una demostración práctica. Si deseas seguir, asegúrate de tener una PC y una cuenta de AWS. Si no tienes una cuenta de AWS, hay disponible una cuenta gratuita.
Creación de Usuarios IAM en AWS
Antes de comprender cómo funciona IAM, comenzarás este tutorial creando usuarios. Los usuarios pueden ser utilizados para todo tipo de cosas. Pero para este tutorial, crearás usuarios que no tienen ningún permiso, no pertenecen a ningún grupo y no tienen acceso a nada en absoluto.
1. Inicia sesión en la Consola de AWS. Esta demostración utiliza un nombre de usuario llamado cloud_user, pero tu nombre de usuario será diferente.

2. En la consola de AWS, escribe IAM en el cuadro de búsqueda, luego haz clic en el servicio IAM que aparece, como se muestra a continuación. Tu navegador se redirigirá al panel de IAM.

IAM es un servicio global, lo que indica que los usuarios y sus permisos se aplican a toda tu cuenta/región de AWS. Si varias personas comparten una cuenta de AWS (lo cual es muy común, por ejemplo en el caso de un equipo de desarrollo de toda la empresa), deberás asegurarte de una rotación adecuada de la fuerza laboral de IAM.
También puedes crear una instancia EC dentro de la región us-east. Las instancias son regionales. Sin embargo, los controles de AWS Identity and Access Management no son regionales. Los permisos asignados a un usuario se aplicarán independientemente de la región a la que se conecten los usuarios de la instancia EC.

4. En el panel izquierdo del panel de IAM, haz clic en Usuarios, luego haz clic en Agregar usuarios en la parte superior derecha de la página para iniciar la adición de usuarios.

Ahora configura los detalles del usuario con lo siguiente:
- Proporciona un nombre de usuario en el campo Nombre de usuario que se muestra a continuación. Para este ejemplo, el nombre de usuario se establece en usuario-1.
- Habilita la opción Contraseña: acceso a la consola de administración de AWS para permitir que los usuarios inicien sesión en la consola de administración de AWS.
- Selecciona la opción Contraseña personalizada para la Contraseña de la consola, y proporciona una contraseña segura en el campo de texto.
- Desmarca la opción Requerir restablecimiento de contraseña para que al usuario no se le pida crear una nueva contraseña en el próximo inicio de sesión, luego haz clic en Siguiente: Permiso.

5. Saltar el ajuste de permisos y hacer clic en Siguiente: Etiquetas ya que estás creando un usuario que no tiene permisos.

6. También salta la adición de etiquetas y haz clic en Siguiente: Revisar.

7. Revisa los detalles del usuario y haz clic en Crear usuario para finalizar la creación del usuario.

Después de crear el usuario, verás una pantalla de Éxito como la que se muestra a continuación.

8. Ahora regresa a la página de Usuarios en tu panel de IAM, y haz clic en el usuario recién creado (usuario-1) para ver la información del usuario. Abriendo tu usuario-1

Debajo, en las pestañas de Permisos y Grupos, puedes ver que usuario-1 no tiene ningún permiso asociado y no es miembro de ningún grupo.


En la pestaña de Credenciales de seguridad, verás diferentes claves de acceso que usuario-1 podría tener. Puedes subir una clave pública SSH en esta pestaña, lo cual es excelente para tus instancias de AWS EC2.

La pestaña de Asesor de acceso te muestra los servicios a los que usuario-1 ha accedido, ya sea directamente o a través de otros servicios, junto con la última vez que usuario-1 accedió a ese servicio.

9. Finalmente, repite el proceso (pasos tres a siete) para crear dos usuarios más (usuario-2 y usuario-3). Regresa a la página de Usuarios en tu panel de IAM y verás una lista similar a la que se muestra a continuación.

Creando los Grupos de Usuarios
Ahora que has creado los usuarios, es hora de crear grupos. Crearás grupos utilizando la política administrada de AWS y un archivo JSON.
Para este tutorial, crearás tres grupos:
- EC2-Admin: Proporciona permisos para ver, iniciar y detener instancias de EC2
- EC2-Support: Proporciona acceso de solo lectura a EC2
- S3-Support: Proporciona acceso de solo lectura a S3
Para empezar a crear grupos de usuarios:
1. En tu panel de IAM, haz clic en Grupos de usuarios en el panel izquierdo, luego haz clic en Crear grupo.
2. Proporciona un Nombre del grupo de usuarios (EC2-Admin) en la página Crear grupo de usuarios, como se muestra a continuación.

Mantén los permisos predeterminados y haz clic en Crear grupo para finalizar la creación del grupo EC2-Admin.

Una vez que hayas creado el nuevo grupo, recibirás el mensaje Grupo de usuarios EC2-Admin creado en la parte superior de la página, como se muestra a continuación. Luego, tu navegador se redirige automáticamente a la página Grupos de usuarios (paso tres).

3. Haz clic en el grupo EC2-Admin bajo la columna Nombre del grupo para ver la información resumida del grupo, donde puedes agregar políticas integradas (paso cuatro).

4. Ahora haz clic en la pestaña Permisos -> Agregar permisos -> Crear política integrada para crear una política integrada. Las políticas integradas generalmente están asociadas directamente con los usuarios y se utilizan típicamente para aplicar permisos en situaciones únicas.
Por ejemplo, tu equipo está migrando un antiguo entorno de EC2 a uno nuevo. Quieres asegurarte de que el administrador de la instancia antigua de EC2 tenga acceso para iniciar/detener y copiar la configuración del grupo de seguridad a la nueva instancia de EC2.

5. En la página Crear política, haz clic en la pestaña JSON que se muestra a continuación para abrir un editor JSON donde crearás una política.

6. Pega el código (política) a continuación en el campo del editor y haz clic en Revisar política para crear una política en línea. Esta política en línea está preconstruida por AWS o un administrador dentro de tu cuenta de AWS que puedes usar, personalizar o editar según tus necesidades exactas.
Con esta política, los miembros del grupo EC2-Admin tienen permitido iniciar ("ec2:StartInstances"
), detener ("ec2:StopInstances"
) y ver ("ec2:Describe*"
) instancias de EC2. Se les permite (”Efecto”: “Permitir”
) realizar acciones en todos los recursos ("Recurso": "*"
). Estas acciones están vinculadas a llamadas programáticas o de API de AWS en esencia.
Los miembros del grupo EC2-Admin también tienen permiso para ver todos los equilibrios de carga elásticos (Acción": "elasticloadbalancing:Describe
), listar métricas (cloudwatch:ListMetrics
), obtener estadísticas de métricas cloudwatch:GetMetricStatistics
, y describir métricas (cloudwatch:Describe
).
Las métricas de CloudWatch se configuran automáticamente con tu instancia de EC, y lo mismo se aplica al servicio de Auto Scaling.

7. Revisa el resumen de la política y haz clic en Guardar cambios para guardar la política.

8. Ahora, navega de nuevo a tu panel de IAM e inicializa la creación de un grupo como lo hiciste en el paso dos. Pero esta vez, nombra el nombre del grupo de usuarios como EC2-Support.
Desplázate hacia abajo, busca AmazonEC2ReadOnlyAccess en el cuadro de búsqueda de Adjuntar políticas de permisos para adjuntar esa política al grupo (EC2-Support):
AmazonEC2ReadOnlyAccess es una política administrada similar a una política interna, ya que también se puede adjuntar a varios usuarios o grupos de usuarios. Pero a diferencia de la política interna, este tipo de política creada por los administradores es reutilizable y se puede compartir en toda tu organización o con todas las cuentas de AWS en tu cuenta.
A managed policy is a shared policy. As a result, all users or groups of users who use the shared policy will have updated permissions automatically when the policy is updated.
Esta función de actualización automática hace que las políticas administradas sean más atractivas que las políticas internas. Con las políticas internas, cada permiso debe ser actualizado por el administrador si la política cambia.
Marca la opción AmazonEC2ReadOnlyAccess y haz clic en Crear grupo para finalizar la creación del grupo.

10. Ahora, repite los pasos del ocho al nueve para crear el grupo S3-Support con una política administrada de AmazonS3ReadOnlyAccess. Una vez que hayas creado el grupo S3-Support, tendrás una lista de grupos similar a la que se muestra a continuación que muestra que cada grupo tiene permisos definidos.

Agregando Usuarios a sus Grupos Correspondientes
Has creado los usuarios y grupos con permisos definidos. Ahora, es hora de agregar los usuarios a sus grupos correspondientes. Abrirás la página de resumen de cada grupo y agregarás manualmente un usuario a ese grupo.
La tabla a continuación muestra los grupos correspondientes donde agregarás a cada usuario:
Users | In-group | Permissions |
---|---|---|
user-1 | S3-Support | Read-only access to S3 Bucket |
user-2 | EC2-Support | Read-only access to EC2 Instance |
user-3 | EC2-Admin | Full EC2 Access (View/Start/Stop) |
1. En tu panel de IAM, navega hasta la página de Grupos de usuarios y haz clic en el grupo S3-Support que se muestra a continuación para acceder a la página de resumen del grupo.

2. A continuación, haz clic en la pestaña de Usuarios → Agregar usuarios para inicializar la adición de usuarios al grupo. Tu navegador te redirige a una página donde verás una lista de usuarios que aún no pertenecen a ningún grupo (paso tres).

3. Marca la casilla frente a usuario-1, luego haz clic en Agregar usuarios para agregar el usuario al grupo S3-Support. Tu navegador luego se redirige automáticamente a la página de resumen del grupo S3-Support.

A continuación, puedes ver que usuario-1 ahora forma parte del grupo S3-Support.

4. Repite los pasos uno a tres para agregar al usuario-2 y al usuario-3 a sus grupos correspondientes.
5. Finalmente, navega hasta la página de Grupos de usuarios y verás que los grupos ahora tienen un usuario cada uno, como se muestra en la captura de pantalla a continuación.

Prueba de que los permisos de usuario están funcionando correctamente
Has creado completamente usuarios en sus propios grupos con permisos definidos. Pero, ¿cómo sabes si funciona? Es hora de verificar que los permisos estén funcionando según lo previsto, y hay varias formas de hacerlo. Una de las formas más comunes es mediante el uso de la Consola de administración de AWS basada en la web.
1. Navega hasta tu panel de IAM y copia la URL de inicio de sesión de usuario de IAM en el panel derecho, como se muestra a continuación.

2. En tu navegador web, navega hasta la URL de inicio de sesión que anotaste previamente (paso uno) e inicia sesión con las credenciales del usuario-1. Google Chrome y Firefox son los navegadores más recomendados para esta tarea.

3. Escribe S3 en el cuadro de búsqueda y haz clic en el enlace S3 que se muestra a continuación para acceder a la página de Buckets de Amazon S3.

4. Ahora, haz clic en Crear bucket para inicializar la creación de un bucket S3.

5. Ingresa un nombre de bucket en la sección de Configuración general, luego haz clic en Crear bucket para intentar crear un bucket S3.


Si recuerdas, adjuntaste la política AmazonS3ReadOnlyAccess al usuario-1, lo que solo le da permiso de solo lectura al usuario-1 para ver los buckets S3. Como resultado, si el usuario-1 intenta crear, eliminar o actualizar un bucket S3, aparecerá el mensaje de error que se muestra a continuación.
El mensaje de error a continuación indica que la permisión que estableciste para el usuario-1 funciona correctamente.

Nota que el usuario-1 tampoco tiene ningún permiso de EC2. Entonces, para verificar, navega hasta tu panel de EC2 y verás que aparecen muchos errores de API como en la captura de pantalla a continuación.
Obtienes estos errores debido al principio de menor privilegio (PoLP). PoLP es el concepto de que cualquier cuenta de usuario o proceso del sistema operativo dado debería tener los privilegios absolutamente mínimos necesarios para completar un trabajo.

6. Ahora, cierra sesión desde el usuario-1 e inicia sesión como usuario-2, y navega a tu tablero de EC2.

7. Haz clic en cualquier instancia EC2 en ejecución para ver los permisos de usuario-2. Como se muestra a continuación, obtendrás información sobre la instancia como ID de la Instancia, Dirección IPv4 Pública, y así sucesivamente.

8. Haz clic en el estado de la Instancia en la parte más derecha de la página, y elige la opción de Detener instancia, Reiniciar instancia, o Terminar instancia para probar si el permiso del usuario-2 funciona.

Recuerda que el usuario-2 solo tiene acceso de solo lectura para las instancias EC2 (AmazonEC2ReadOnlyAccess). Así que si un usuario intenta manipular una instancia EC2, el mensaje de error a continuación aparece.
Obtener el error a continuación indica que el permiso del usuario-2 funciona correctamente.

9. Finalmente, cierra sesión desde el usuario-2, luego inicia sesión como usuario-3 y trata de manipular cualquier instancia EC2 que esté ejecutándose en tu cuenta. Dado que el usuario-3 tiene permiso completo de EC2, puedes iniciar, detener o terminar una instancia sin recibir un mensaje de error.
Conclusión
A lo largo de este tutorial, has aprendido cómo crear usuarios IAM y grupos de usuarios con políticas definidas. También has tocado cómo verificar si los permisos están funcionando según lo previsto al intentar cambiar el estado de una instancia EC2 e intentar crear un bucket S3.
En este punto, ya tienes tu configuración básica para que los usuarios y grupos IAM gestionen los permisos de usuario. Por supuesto, siempre puedes añadir más usuarios a tu cuenta y aplicar más políticas según lo consideres necesario.
Ahora, ¿cuál es el siguiente paso para ampliar tus nuevos conocimientos? Quizás investigar cómo configurar tus servicios EC2 en Auto-Scaling para que funcionen con IAM.