Cómo administrar AWS IAM con aws-cli
Gestionar Usuarios, Grupos y Roles de IAM desde tu terminal es fácil e interesante, sólo necesitas ejecutar los comandos para lograr la tarea. En este artículo, veremos los comandos para crear Usuarios, Grupos y Roles. También veremos comandos para adjuntar y desasociar políticas al usuario, grupo y rol IAM que creemos. Esta guía te ayudará a iniciarte en la gestión de recursos IAM desde el terminal.
Antes de continuar, se supone que estás familiarizado con los Usuarios, Grupos, Roles y Políticas de IAM.
Algunos de los comandos que hemos cubierto en este artículo son los siguientes.
- list-users: Obtiene una lista de los usuarios existentes.
- lista-grupos: Obtiene una lista de los grupos existentes.
- list-roles: Obtiene una lista de los roles existentes.
- crear-usuario: Crear un nuevo usuario.
- crear-grupo: Crear un nuevo grupo.
- crear-rol: Crear un nuevo rol.
- añadir-usuario-a-grupo: Añade un usuario al grupogrupo existente existente.
- obtener-grupo: Obtener una lista de los usuarios que hay en el grupo
- adjuntar-política-usuario: Adjunta la política gestionada al grupousuario existente en usuario existente.
- adjuntar-política-de-grupo: Adjunta la política gestionada al usuariogrupo existente en existente.
- adjuntar-política-de-rol: adjunta la política gestionada alrol existente en existente.
- listar-políticas-usuario-asociadas: Lista las políticas asociadas al usuario.
- listar-políticas-asociadas-grupo: Lista las políticas asociadas al grupo.
- listar-políticas-asociadas-al-rol: Lista las políticas asociadas al rol.
- eliminar-política-usuario: Elimina la política gestionada de la listausuario existente en usuario existente.
- desvincular-política-de-grupo: Elimina la política gestionada del usuario existente.grupo existente en existente.
- eliminar-política-usuario: Elimina la política gestionada del usuarioexistente en existente.
- eliminar-usuario-del-grupo: Eliminar un usuario de los grupos
- eliminar-usuario: Eliminar un usuario IAM.
- eliminar-grupo: Eliminar un grupo IAM.
- delete-role: Eliminar un rol IAM
Visita la documentación oficial de AWS aquí para conocer todos los comandos aws-cli para IAM.
Requisitos previos
- Cuenta AWS (Créala si no tienes una).
- Conocimientos básicos de IAM (Haz clic aquí para aprender a crear un usuario, grupo y rol IAM desde la consola de AWS).
- Usuario IAM de AWS con la política AdministratorAccess asociada y sus claves de acceso y secretas (Haz clic aquí para aprender a crear un Usuario IAM).
- AWS CLI instalado en tu máquina local.
¿Qué vamos a hacer?
- Comprueba aws cli y exporta la clave de acceso y secreta de AWS en tu máquina local.
- Gestionar IAM con aws-cli
Comprueba aws-cli y exporta la clave de acceso y secreta de AWS en tu máquina local.
Comprueba si tienes aws-cli instalado en tu máquina local.
aws --version #aws-cli/2.0.0 Python/3.8.2 Darwin/19.2.0 botocore/2.0.0dev7
El siguiente paso es exportar tu acceso de usuario de AWS y la clave secreta en tu terminal. Las claves serán diferentes para ti, no utilices las que se mencionan a continuación.
export AWS_ACCESS_KEY_ID=<your-iam-user-access-key-here>
export AWS_SECRET_ACCESS_KEY=<your-iam-user-secret-key-here>
Ejecuta el siguiente comando para comprobar la identidad del usuario del que has exportado las claves.
aws sts get-caller-identity
Gestionar IAM utilizando aws-cli
Para empezar con IAM, primero vamos a comprobar los usuarios, grupos y roles IAM existentes en la cuenta.
aws iam list-users
aws iam list-groups
aws iam list-roles
Para crear un Usuario IAM ejecuta el siguiente comando.
aws iam create-user --user-name test-user
Vamos a crear un Grupo IAM.
aws iam create-group --group-name test-group
Al crear un rol, también necesitamos adjuntar una relación de confianza. Para ello, necesitamos una política.
Crea un archivo en tu sistema local con el siguiente contenido, nombra el archivo como «trust-relationship-policy.json». La siguiente política permite que el servicio EC2 asuma el rol.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } }
Ahora, estamos preparados para crear un rol IAM.
aws iam create-role --role-name test-role --assume-role-policy-document file://trust-relationship-policy.json
Hasta este momento, tenemos un Usuario, un Grupo y un Rol IAM.
Ahora podemos añadir un usuario al grupo que hemos creado utilizando el siguiente comando.
aws iam add-user-to-group --user-name test-user --group-name test-group
Comprueba los detalles del grupo después de añadirle el usuario.
aws iam get-group --group-name test-group
Vamos a añadir la política «AccesoSóloLectura» al Usuario, Grupo y Rol que hemos creado.
aws iam attach-user-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --user-name test-user
aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --group-name test-group
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --role-name test-role
Comprueba si la política se ha añadido al usuario, al Grupo y al Rol.
aws iam list-attached-user-policies --user-name test-user
aws iam list-attached-group-policies --group-name test-group
aws iam list-attached-role-policies --role-name test-role
De la misma forma que añadimos una política al Usuario, Grupo y Rol, también podemos desvincularla.
Para desvincular una política necesitamos pasar su arn al comando.
aws iam detach-user-policy --user-name test-user --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
aws iam detach-group-policy --group-name Testers --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
aws iam detach-group-policy --group-name test-group --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
aws iam detach-role-policy --role-name test-role --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
Después de desvincular la política, podemos asegurarnos de que ya no está vinculada al Usuario, Grupo y Rol.
aws iam list-attached-user-policies --user-name test-user
aws iam list-attached-group-policies --group-name test-group
aws iam list-attached-role-policies --role-name test-role
Si ya no necesitamos el Usuario, Grupo y Rol que hemos creado, podemos eliminarlos ejecutando el siguiente comando.
aws iam delete-user --user-name test-user
Ten en cuenta que, antes de eliminar un Usuario, tienes que eliminarlo del Grupo al que fue añadido.
aws iam remove-user-from-group --user-name test-user --group-name test-group
aws iam delete-user --user-name test-user
aws iam delete-group --group-name test-group
aws iam delete-role --role-name test-role
Conclusión
En este artículo, hemos visto el comando para gestionar Usuario, Grupo y Rol IAM. Primero creamos estos recursos IAM y luego les añadimos políticas gestionadas por IAM. También vimos cómo se pueden desvincular las políticas del usuario, Grupo y Rol. Después, también vimos el comando para eliminar los recursos IAM que creamos. Ahora puedes probar otros comandos y gestionar IAM utilizando aws-cli.