

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Asumir el rol de proveedor de credenciales
<a name="feature-assume-role-credentials"></a>

**nota**  
Para obtener ayuda para comprender el diseño de las páginas de configuración o para interpretar la tabla **Support by AWS SDKs and tools** que aparece a continuación, consulte[Cómo comprender las páginas de configuración de esta guía](settings-reference.md#settingsPages).

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 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)) del rol. Los roles establecen relaciones de confianza con otra entidad. La entidad de confianza que usa el rol puede ser un Servicio de AWS proveedor de identidades web Cuenta de AWS, una federación OIDC o SAML. 

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. Para ello, utilice los siguientes comandos. 

Para comenzar a utilizar esta configuración, consulte [Asumir un rol con AWS credenciales para autenticarse AWS SDKs y herramientas](access-assume-role.md) en esta guía.

## Asumir la configuración del proveedor de credenciales de rol
<a name="feature-assume-role-credentials-settings"></a>

Configure esta funcionalidad mediante lo siguiente:

**`credential_source`- configuración de archivos compartidos AWS `config`**  
Se utiliza en instancias de Amazon EC2 o en contenedores de Amazon Elastic Container Service para especificar dónde el SDK o la herramienta puede encontrar credenciales que tienen permisos para asumir el rol que especificó con el parámetro `role_arn`.  
**Valor predeterminado:** ninguno.  
**Valores válidos:**  
+ **Entorno**: especifica que el SDK o la herramienta va a recuperar las credenciales fuente a partir de las variables de entorno [`AWS_ACCESS_KEY_ID` y `AWS_SECRET_ACCESS_KEY`](feature-static-credentials.md).
+ **Ec2 InstanceMetadata**: especifica que el SDK o la herramienta deben utilizar la [función de IAM asociada al perfil de la instancia EC2 para](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) obtener las credenciales de origen.
+ **EcsContainer**— Especifica que el SDK o la herramienta deben utilizar la [función de IAM asociada al contenedor Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html) o la [función de IAM asociada al contenedor Amazon EKS para](https://docs.aws.amazon.com/eks/latest/userguide/security-iam-service-with-iam.html) obtener las credenciales de origen.
No puede especificar `credential_source` y `source_profile` en el mismo perfil.  
Ejemplo de configuración en un archivo `config` para indicar que las credenciales deben proceder de Amazon EC2:  

```
credential_source = Ec2InstanceMetadata
role_arn = arn:aws:iam::123456789012:role/my-role-name
```

**`duration_seconds`- configuración de archivos compartidos AWS `config`**  
Especifica la duración máxima de la sesión de rol, en segundos.  
Esta configuración solo se aplica cuando el perfil especifica que se asume un rol.   
**Valor predeterminado:** 3600 segundos (una hora)  
**Valores válidos:** Este valor puede oscilar entre 900 segundos (15 minutos) y el valor de la duración máxima de la sesión para el rol (que puede ser 43 200 segundos como máximo, o 12 horas). Para obtener más información, consulte [Cómo consultar la configuración de la duración máxima de la sesión para un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) en la *Guía del usuario de IAM*.  
Ejemplo de esta configuración en un archivo `config`:  

```
duration_seconds = 43200
```

**`external_id`- configuración de AWS `config` archivos compartidos**  
Especifica un identificador único utilizado por terceros para adoptar un rol en las cuentas de los clientes.  
Esta configuración solo se aplica cuando el perfil especifica asumir un rol y la política de confianza del rol requiere un valor para `ExternalId`. El valor se asigna al parámetro `ExternalId` que se pasa a la operación `AssumeRole` cuando el perfil especifica un rol.   
**Valor predeterminado:** ninguno.   
**Valores válidos:** consulte [Cómo utilizar un identificador externo al conceder acceso a sus AWS recursos a un tercero](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) en la *Guía del usuario de IAM*.  
Ejemplo de esta configuración en un archivo `config`:  

```
external_id = unique_value_assigned_by_3rd_party
```

**`mfa_serial`- configuración de AWS `config` archivos compartidos**  
Especifica la identificación o el número de serie de un dispositivo de autenticación multifactor (MFA) que el usuario debe utilizar al asumir un rol.  
Se requiere cuando se asume un rol en el que la política de confianza para ese rol incluye una condición que requiere la autenticación MFA. Para obtener más información sobre la MFA, consulte [AWS autenticación multifactor de en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) en la *Guía del usuario de IAM*.   
**Valor predeterminado:** ninguno.   
**Valores válidos:** el valor puede ser un número de serie de un dispositivo de hardware (como `GAHT12345678`) o un nombre de recurso de Amazon (ARN) de un dispositivo MFA virtual. El formato del ARN es: `arn:aws:iam::account-id:mfa/mfa-device-name`  
Ejemplo de esta configuración en un archivo `config`:  
En este ejemplo, se asume un dispositivo MFA virtual, denominado `MyMFADevice`, que se creó para la cuenta y se habilitó para un usuario.  

```
mfa_serial = arn:aws:iam::123456789012:mfa/MyMFADevice
```

**`role_arn`- configuración de AWS `config` archivos compartidos`AWS_ROLE_ARN`: variable de entorno`aws.roleArn`- Propiedad del sistema JVM: solo Java/Kotlin **  
Especifica el nombre de recurso de Amazon (ARN) de un rol de IAM que desea utilizar para realizar las operaciones solicitadas con este perfil.  
**Valor predeterminado:** ninguno.   
**Valores válidos:** el valor debe ser el ARN de un rol de IAM, con el siguiente formato: `arn:aws:iam::account-id:role/role-name`  
 Además, también debe especificar **una** de las siguientes configuraciones:  
+ `source_profile`: para identificar otro perfil y usarlo para buscar las credenciales que tengan permiso para asumir el rol en este perfil.
+ `credential_source`: utilizar las credenciales identificadas por las variables de entorno actuales o las credenciales adjuntas a un perfil de instancia de Amazon EC2 o a una instancia de contenedor de Amazon ECS.
+ `web_identity_token_file`: utilizar proveedores de identidades públicos o cualquier proveedor de identidades compatible con OpenID Connect (OIDC) para los usuarios que han sido autenticados en un móvil o una aplicación web.

**`role_session_name`- configuración de AWS `config` archivos compartidos`AWS_ROLE_SESSION_NAME`: variable de entorno`aws.roleSessionName`- Propiedad del sistema JVM: solo Java/Kotlin **  
Especifica el nombre que se va a asociar a la sesión de rol. Este nombre aparece en los registros de AWS CloudTrail para las entradas asociadas a esta sesión, que puede resultar útil al realizar auditorías. *Para obtener más información, consulte el [CloudTrailelemento UserIdentity en la Guía del usuario.](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)AWS CloudTrail *  
**Valor predeterminado:** un parámetro opcional. Si no proporciona este valor, se genera automáticamente un nombre de sesión en caso de que el perfil asuma un rol.  
**Valores válidos:** se proporcionan al `RoleSessionName` parámetro cuando la AWS CLI AWS API llama a la `AssumeRole` operación (o a operaciones como la `AssumeRoleWithWebIdentity` operación) en su nombre. El valor pasa a formar parte del usuario de rol asumido Amazon Resource Name (ARN) que puede consultar y aparece como parte de las entradas de CloudTrail registro de las operaciones invocadas por este perfil.  
 `arn:aws:sts::123456789012:assumed-role/my-role-name/my-role_session_name`.  
Ejemplo de esta configuración en un archivo `config`:  

```
role_session_name = my-role-session-name
```

**`source_profile`- configuración de AWS `config` archivos compartidos**  
Especifica otro perfil cuyas credenciales se utilizan para asumir la función especificada en la configuración `role_arn` del perfil original. Para saber cómo se utilizan los perfiles en los `credentials` archivos AWS `config` y archivos compartidos, consulte[Archivos `config` y `credentials` compartidos](file-format.md).  
Si especifica un perfil que también sea un perfil de asunción de roles, cada rol se asumirá en orden secuencial para resolver completamente las credenciales. Esta cadena se detiene cuando el SDK encuentra un perfil con credenciales. El encadenamiento de roles limita tu sesión de rol AWS CLI o de AWS API a un máximo de una hora y no se puede aumentar. Para obtener más información, consulte los [Términos y conceptos de roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) en la *Guía del usuario de IAM*.  
**Valor predeterminado:** ninguno.  
**Valores válidos:** una cadena de texto que consiste en el nombre de un perfil definido en los archivos `config` y `credentials`. También debe especificar un valor para `role_arn` en el perfil actual.  
No puede especificar `credential_source` y `source_profile` en el mismo perfil.  
Ejemplo de esta configuración en un archivo de configuración:  

```
[profile A]
source_profile = B
role_arn =  arn:aws:iam::123456789012:role/RoleA
role_session_name = ProfileARoleSession
                
[profile B]
credential_process = ./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_ID
```
En el ejemplo anterior, el perfil `A` indica al SDK o a la herramienta que busque automáticamente las credenciales del perfil `B` vinculado. En este caso, el perfil `B` utiliza la herramienta de ayudante de credenciales proporcionada por [Uso de funciones de IAM en cualquier lugar para AWS SDKs autenticar y utilizar herramientas](access-rolesanywhere.md) para obtener las credenciales de AWS SDK. Estas credenciales temporales las utiliza el código para acceder a los recursos de AWS . El rol especificado debe tener políticas de permisos de IAM adjuntas que permitan ejecutar el código solicitado, como el comando o el método Servicio de AWS de API. Cada acción que realiza el perfil `A` incluye el nombre de la sesión del rol en CloudTrail los registros.   
Para ver un segundo ejemplo de encadenamiento de roles, puede usar la siguiente configuración si tiene una aplicación en una instancia de Amazon Elastic Compute Cloud y desea que esa aplicación asuma otro rol.   

```
[profile A]
source_profile = B
role_arn =  arn:aws:iam::123456789012:role/RoleA
role_session_name = ProfileARoleSession
                
[profile B]
credential_source=Ec2InstanceMetadata
```
El perfil `A` utilizará las credenciales de la instancia de Amazon EC2 para asumir el rol especificado y las renovará de manera automática.  


**`web_identity_token_file`- configuración de AWS `config` archivos compartidos`AWS_WEB_IDENTITY_TOKEN_FILE`: variable de entorno`aws.webIdentityTokenFile`- Propiedad del sistema JVM: solo Java/Kotlin **  
Especifica la ruta a un archivo que contiene un token de acceso de un [proveedor OAuth 2.0 compatible o de un proveedor](https://wikipedia.org/wiki/List_of_OAuth_providers) de [identidad de OpenID Connect ID](https://openid.net/developers/certified/).  
Esta configuración permite la autenticación mediante proveedores de federaciones de identidades web, como [Google](https://developers.google.com/identity/protocols/OAuth2), [Facebook](https://developers.facebook.com/docs/facebook-login/overview) y [Amazon](https://login.amazon.com/), entre muchos otros. El SDK o la herramienta para desarrolladores carga el contenido de este archivo y lo pasa como argumento `WebIdentityToken` cuando llama a la operación `AssumeRoleWithWebIdentity` en su nombre.  
**Valor predeterminado:** ninguno.   
**Valores válidos:** este valor debe ser una ruta y un nombre de archivo. El archivo debe contener un token de acceso OAuth 2.0 o un token de OpenID Connect que le haya proporcionado un proveedor de identidad. Las rutas relativas se consideran relativas al directorio de trabajo del proceso.

## Support by AWS SDKs and tools
<a name="assume-role-sdk-compat"></a>

Las siguientes SDKs son compatibles con las funciones y configuraciones descritas en este tema. Se anotan todas las excepciones parciales. Todos los ajustes de propiedades del sistema JVM son compatibles con AWS SDK para Java y AWS SDK para Kotlin únicamente.


| SDK |  compatible | Notas o más información | 
| --- | --- | --- | 
| [AWS CLI  ](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | Sí |  | 
| [SDK para C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | Parcial | credential\$1source no admitido. duration\$1seconds no admitido. mfa\$1serial no admitido. | 
| [SDK para Go V2 (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | Sí |  | 
| [SDK para Go 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | Sí | Para usar la configuración de archivos compartidos config, debe activar la carga desde el archivo de configuración; consulte [Sesiones](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/). | 
| [SDK para Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | Parcial | mfa\$1serial no es compatible. duration\$1seconds no es compatible. | 
| [SDK para Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | Parcial | credential\$1source no es compatible. mfa\$1serial no es compatible. No se admiten las propiedades del sistema JVM.  | 
| [SDK para 3.x JavaScript ](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | Sí |  | 
| [SDK para 2.x JavaScript ](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | Parcial | credential\$1source no admitidas. | 
| [SDK para Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | Sí |  | 
| [SDK para .NET 4.x](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | Sí |  | 
| [SDK para .NET 3.x](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | Sí |  | 
| [SDK para PHP 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | Sí |  | 
| [SDK para Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | Sí |  | 
| [SDK para Ruby 3.x](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | Sí |  | 
| [SDK para Rust](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | Sí |  | 
| [SDK para Swift](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | Sí |  | 
| [Herramientas para V5 PowerShell ](https://docs.aws.amazon.com/powershell/latest/userguide/) | Sí |  | 
| [Herramientas para V4 PowerShell ](https://docs.aws.amazon.com/powershell/v4/userguide/) | Sí |  | 