Aprovechar los privilegios de AWS STS Assume Role para gestionar AWS

¿Estás luchando por gestionar el acceso a tus recursos de AWS a medida que crece tu organización? ¡No temas! El Servicio de Tokens de Seguridad de AWS (STS) está aquí para salvar el día.

Con los privilegios de asumir roles de AWS STS, puedes otorgar acceso temporal a tus recursos de AWS a usuarios y aplicaciones sin necesidad de credenciales a largo plazo. Y en este tutorial, aprenderás a gestionar tus recursos de manera más eficiente mientras los mantienes seguros.

¡Sigue leyendo y obtén control total de tu infraestructura y recursos de AWS con facilidad!

Prerrequisitos

Este tutorial será una demostración práctica. Para seguirlo, asegúrate de tener una cuenta de AWS con facturación activa, pero una cuenta de nivel gratuito es suficiente.

Creación de un Usuario IAM sin Acceso

Antes de poder usar los privilegios de asumir roles de AWS STS, primero debes crear un usuario IAM al que no se le hayan asignado permisos. Esta acción puede parecer contraintuitiva, pero es crucial porque los usuarios IAM no pueden asumir roles directamente. Primero deben adquirir credenciales de seguridad temporales al asumir un rol a través del servicio AWS STS.

Para crear un usuario IAM sin permisos, sigue estos pasos:

1. Abre tu navegador web favorito e inicia sesión en la Consola de administración de AWS con tu cuenta raíz de AWS.

2. A continuación, busca y selecciona IAM en la lista de servicios para acceder a la consola de IAM.

Accessing the IAM console

3. En la consola de IAM, navega hasta Usuarios (panel izquierdo) y haz clic en Agregar usuario para iniciar la adición de un nuevo usuario.

Initiating adding a new user

4. Ahora, configura los detalles del usuario a continuación. Esta acción permite que tu usuario IAM inicie sesión en la Consola de administración de AWS con su nombre de usuario y contraseña.

  • Nombre de usuario: proporciona un nombre para el nuevo usuario y marca la casilla de abajo para Proporcionar acceso al usuario a la Consola de administración de AWS.
  • Selecciona la opción Quiero crear un usuario IAM ya que estás creando un usuario IAM.
  • Contraseña de la consola: elige la opción Contraseña autogenerada para generar una contraseña que puedas cambiar más tarde.

Una vez configurado, haz clic en Siguiente para continuar con la creación del usuario IAM.

Configuring the user details

5. En la siguiente página, deja los valores predeterminados como están y haz clic en Siguiente para omitir la configuración de permisos de usuario.

No es necesario asignar ningún permiso a este usuario ya que estás creando uno con cero permisos y acceso a la Consola de administración de AWS.

Con cero permisos, los usuarios no pueden realizar ninguna acción hasta que asuman un rol que les otorgue los permisos necesarios.

Skipping setting permissions

6. A continuación, revisa los detalles de usuario configurados y haz clic en Crear usuario para finalizar la creación del usuario IAM.

Finalizing creating the new IAM user

7. Copie y guarde el URL de inicio de sesión y la contraseña del usuario IAM. Necesitará esta información para iniciar sesión con el usuario IAM más tarde.

Taking note of the IAM user’s sign-in URL and password

8. Ahora, regrese a la consola de IAM, vaya a la página de Usuarios (panel izquierdo) y haga clic en el nombre del usuario recién creado para acceder a su página de Resumen.

Accessing the newly-created user’s summary page

9. Por último, en la página de Resumen, tome nota del Nombre de Recurso de Amazon (ARN) del usuario, el identificador único del usuario. Necesitará este ARN más tarde cuando asigne un rol al usuario.

Noting down the newly-created user’s ARN

Preparación de una Política de Confianza Personalizada

Con un usuario IAM dedicado creado, está listo para asumir el rol, otorgando acceso a los recursos de AWS. Pero para que un usuario IAM asuma un rol, el rol primero debe confiar en el usuario.

Al crear una política de confianza personalizada, establecerá una “relación de confianza” entre el usuario IAM y el rol. Esta relación de confianza especifica qué usuarios o cuentas pueden asumir el rol y en qué condiciones.

Para preparar una política de confianza personalizada, siga estos pasos:

1. Vaya a Roles (panel izquierdo) en la consola de IAM y haga clic en Crear rol para iniciar la creación de un nuevo rol.

Initiating creating a new role

2. A continuación, haga clic en la opción de política de confianza personalizada para crear una política personalizada.

Choosing to create a custom trust policy

3. Ingrese la siguiente política en el campo de texto, como se muestra a continuación, y haga clic en Siguiente. Reemplace YOUR_ARN con el ARN de su usuario IAM que anotó en el último paso de la sección “Creación de un Usuario IAM con Acceso Cero”.

A continuación se muestra un ejemplo básico de una política de confianza personalizada que permite a un usuario o rol de IAM especificado asumir un rol de IAM específico con los siguientes campos:

Field Function
Version Specifies the version of the policy language.
Statement Contains the policy statement(s).
Effect Specifies whether the statement allows or denies access, with Allow, in this case, granting access.
Principal Specifies the entity allowed to assume the role; in this example, it is an empty string.
Action Specifies the action the IAM user or role is allowed to perform. The sts:AssumeRole value allows the user to assume the specified IAM role.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
               "AWS": "YOUR_ARN"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
Creating a custom trust policy

4. En la siguiente página, busca y selecciona AmazonEC2FullAccess de la lista de políticas que aparece y haz clic en Siguiente. Esta política otorga acceso completo a todos los recursos de EC2.

Selecting the AmazonEC2FullAccess policy

5. A continuación, proporciona un nombre para tu política de confianza personalizada (por ejemplo, AWSEC2FULLACCESS).

provide a name for your custom trust policy

6. Deja los demás ajustes como están y haz clic en Crear rol para finalizar la creación del rol.

En este punto, el rol debería ser asumible por el usuario de IAM (sts_user). Cuando se asuma, el usuario tendrá acceso a todos los recursos de EC2, como listar, crear y eliminar instancias de EC2, etc.

Creating the new role

7. Haz clic en el rol recién creado, como se muestra a continuación, para ver sus detalles.

Accessing the role’s details

8. En última instancia, copia el enlace para cambiar de roles en la consola y guárdalo. Necesitarás este enlace más adelante para cambiar de roles en la consola cuando inicies sesión con el usuario de IAM (sts_user).

Copying the link to switch roles in the console

Cambiar y asumir un rol con un usuario de IAM

Después de crear un rol, ahora puedes asumir el rol con tu usuario de IAM dedicado. Iniciarás sesión en la consola de AWS con tu usuario de IAM y cambiarás al rol que creaste para probar el acceso a EC2.

Para ver cómo cambiar y asumir un rol con un usuario de IAM:

1. Navegue hacia la URL de inicio de sesión que anotó en el paso siete de la sección “Creación de un usuario IAM sin acceso”, e inicie sesión con la contraseña del usuario IAM.

?Evite conflictos con su cuenta principal iniciando sesión utilizando un navegador diferente o una ventana de navegación privada.

Logging into the AWS Management Console with the IAM user

2. Una vez iniciada la sesión, diríjase a la consola de EC2 y verá muchos errores de API en rojo, como se muestra a continuación. Estos errores indican que el usuario IAM no tiene permiso para acceder a los recursos de EC2.

Para solucionar estos errores, debe asumir el rol que creó para obtener acceso a todos los recursos de EC2 (AWSEC2FULLACCESS) en el siguiente paso. Al asumir un rol en AWS, temporariamente adquiere los permisos asociados con ese rol.

Getting errors due to lack of permissions

3. Abra una nueva pestaña del navegador y vaya al “enlace para cambiar de roles” que anotó en el último paso de la sección “Preparación de una Política de Confianza Personalizada”.

Este enlace es una URL especial que lo lleva directamente a la página Cambiar de Rol en la Consola de Administración de AWS. La página Cambiar de Rol le permite asumir un rol diferente, un conjunto de permisos que determina a qué recursos de AWS puede acceder.

4. Ahora, proporcione un Nombre de Visualización descriptivo para la sesión y haga clic en Cambiar de Rol para asumir el rol. El nombre de visualización le ayuda a realizar un seguimiento de sus sesiones activas.

Después de asumir el rol, su navegador se redirige a la Consola de Administración de AWS con los permisos del rol seleccionado.

Switching roles

5. Vuelva a la consola de EC2 para confirmar que su usuario IAM ha obtenido acceso a los recursos de EC2.

Si todo va bien, ya no verás los errores de la API que viste anteriormente, ya que ahora has iniciado sesión con los permisos del rol, incluido el acceso a los recursos de EC2.

Confirming the IAM user has been successfully granted access to EC2 resources

6. Finalmente, haz clic en el nombre de visualización de tu sesión (arriba a la derecha) y selecciona Cambiar de nuevo para volver al usuario IAM original.

Te desconectarás de tu sesión actual e iniciarás sesión como tu usuario IAM original con su conjunto original de permisos. Esta acción es la mejor práctica para reducir el riesgo de realizar accidentalmente acciones no deseadas.

Switching back to the original IAM user

Conclusión

Suponer un rol en AWS es una característica poderosa que te permite otorgar acceso temporal a recursos sin compartir tus credenciales permanentes. Y a lo largo de este tutorial, has aprendido a aprovechar los privilegios de suposición de rol de AWS STS.

En este punto, puedes asumir un rol con confianza con permisos limitados para garantizar la seguridad de tus recursos y minimizar el impacto potencial de cualquier acción accidental o malintencionada.

La Consola de administración de AWS es una excelente manera de comenzar con los servicios de AWS, como asumir roles. Pero, ¿por qué no intentar asumir un rol a través de la Interfaz de línea de comandos de AWS (CLI)? Explorar e integrar AWS CLI en tus scripts de automatización puede proporcionar características y funcionalidades más avanzadas.

Source:
https://adamtheautomator.com/aws-sts-assume-role/