Asumir un rol con credenciales de AWS para autenticar los SDK y las herramientas de AWS - SDK y herramientas de AWS

Asumir un rol con credenciales de AWS para autenticar los SDK y las herramientas de AWS

Para asumir un rol, se utiliza un conjunto de credenciales de seguridad temporales para acceder a los recursos de AWS a los que de otro modo usted no tendría acceso. Las credenciales temporales incluyen un ID de clave de acceso, una clave de acceso secreta y un token de seguridad. Para obtener más información sobre las solicitudes de la API de AWS Security Token Service (AWS STS), consulte Acciones en la Referencia de la API de AWS Security Token Service.

Para configurar el SDK o la herramienta para que asuma un rol, primero debe crear o identificar el rol específico que desee asumir. Los roles de IAM se identifican de forma exclusiva mediante un nombre de recurso de Amazon (ARN) del rol. Los roles establecen relaciones de confianza con otra entidad. La entidad de confianza que usa el rol puede ser un Cuenta de AWS u otra Servicio de AWS. Para más información acerca de los roles de IAM, consulte Uso de roles de IAM en la Guía del usuario de IAM.

Una vez identificado el rol de IAM, si esa función confía en usted, puede configurar el SDK o la herramienta para que utilice los permisos que otorga la función.

nota

AWS recomienda utilizar puntos de conexión regionales siempre que sea posible y configurar su Región de AWS.

Asumir un rol de IAM

Al asumir un rol, AWS STS devuelve un conjunto de credenciales de seguridad temporales. Estas credenciales provienen de otro perfil o de la instancia o contenedor en el que se ejecuta el código. Por lo general, este tipo de asumir un rol se utiliza cuando se tienen credenciales de AWS para una cuenta, pero la aplicación necesita acceder a los recursos de otra cuenta.

Paso 1: Configurar un rol de IAM

Para configurar el SDK o la herramienta para que asuma un rol, primero debe crear o identificar el rol específico que desee asumir. Los roles de IAM se identifican de forma exclusiva mediante un ARN de rol. Los roles establecen relaciones de confianza con otra entidad, normalmente dentro de su cuenta o para el acceso entre cuentas. Para obtener más información, consulte Creación de roles de IAM en la Guía del usuario de IAM.

Paso 2: configurar el SDK o la herramienta

Configure el SDK o la herramienta para obtener las credenciales de credential_source o source_profile.

Se utiliza credential_source para obtener credenciales de un contenedor de Amazon ECS, de una instancia de Amazon EC2 o de variables de entorno.

Se utiliza source_profile para obtener credenciales de otro perfil. source_profile también admite el encadenamiento de roles, que consiste en jerarquías de perfiles en las que se utiliza un rol asumido para asumir otro rol.

Al especificar esto en un perfil, la herramienta o SDK realiza automáticamente la llamada a la API AssumeRole de AWS STS correspondiente. Para recuperar y usar credenciales temporales asumiendo un rol, especifique los siguientes valores de configuración en el archivo compartido config de AWS. Para obtener más información sobre esta configuración, consulte la sección Asumir la configuración del proveedor de credenciales de rol.

  • role_arn: del rol de IAM que creó en el paso 1

  • Configure una de las siguientes opciones: credential_source o source_profile

  • (Opcional) duration_seconds

  • (Opcional) external_id

  • (Opcional) mfa_serial

  • (Opcional) role_session_name

Los siguientes ejemplos muestran la configuración de ambas opciones de asumir roles en un archivo config compartido:

role_arn = arn:aws:iam::123456789012:role/my-role-name credential_source = Ec2InstanceMetadata
[profile-with-user-that-can-assume-role] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE [profile dev] region = us-east-1 output = json role_arn = arn:aws:iam::123456789012:role/my-role-name source_profile = profile-with-user-that-can-assume-role role_session_name = my_session

Para obtener más información sobre la configuración del proveedor de credenciales de rol, consulte Asumir el rol de proveedor de credenciales en esta guía.