

# Recuperar credenciales de seguridad de los metadatos de la instancia
<a name="instance-metadata-security-credentials"></a>

Una aplicación de una instancia recupera las credenciales de seguridad que proporciona el rol en el elemento `iam/security-credentials/`*role-name* de los metadatos de la instancia. Se conceden a la aplicación los permisos para las acciones y los recursos que usted ha definido para el rol mediante las credenciales de seguridad asociadas al rol. Estas credenciales de seguridad son temporales y las rotamos automáticamente. Activamos la disponibilidad de las nuevas credenciales al menos cinco minutos antes del vencimiento de las antiguas.

Para obtener más información acerca de los metadatos de instancias, consulte [Uso de los metadatos de la instancia para administrar su instancia de EC2](ec2-instance-metadata.md).

**aviso**  
Si utiliza servicios que utilizan metadatos de las instancias con los roles de IAM, asegúrese de que no revela sus credenciales cuando los servicios realizan llamadas HTTP en su nombre. Los tipos de servicios que pueden llegar a revelar sus credenciales son, entre otros, proxies HTTP, servicios de validador HTML/CSS y procesadores XML que admiten la inclusión de XML.

Para sus cargas de trabajo de Amazon EC2, le recomendamos que recupere las credenciales de sesión mediante el método que se describe a continuación. Estas credenciales deberían permitir a su carga de trabajo realizar solicitudes de API de AWS, sin necesidad de usar `sts:AssumeRole` para asumir el mismo rol que ya está asociado a la instancia. A menos que necesite pasar etiquetas de sesión para el control de acceso basado en atributos (ABAC) o pasar una política de sesión para restringir aún más los permisos del rol, estas llamadas de asunción de roles no son necesarias, ya que crean un nuevo conjunto de las mismas credenciales temporales de sesión de rol.

Si su carga de trabajo usa un rol para asumirse a sí mismo, debe crear una política de confianza que permita explícitamente que ese rol se asuma a sí mismo. Si no crea la política de confianza, aparece el error `AccessDenied`. Para obtener más información, consulte [Actualización de una política de confianza de rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html) en la *Guía del usuario de IAM*.

------
#### [ IMDSv2 ]

**Linux**  
Ejecute el siguiente comando desde la instancia de Linux para recuperar las credenciales de seguridad de un rol de IAM.

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

**Windows**  
Ejecute el siguiente cmdlet desde la instancia de Windows para recuperar las credenciales de seguridad de un rol de IAM.

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

------
#### [ IMDSv1 ]

**Linux**  
Ejecute el siguiente comando desde la instancia de Linux para recuperar las credenciales de seguridad de un rol de IAM.

```
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

**Windows**  
Ejecute el siguiente cmdlet desde la instancia de Windows para recuperar las credenciales de seguridad de un rol de IAM.

```
Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

------

A continuación, se muestra un ejemplo del resultado. Si no puede recuperar las credenciales de seguridad, consulte [No puedo obtener acceso a las credenciales de seguridad temporales de mi instancia EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_iam-ec2.html#troubleshoot_iam-ec2_no-keys) en la *Guía del usuario de IAM*.

```
{
  "Code" : "Success",
  "LastUpdated" : "2012-04-26T16:39:16Z",
  "Type" : "AWS-HMAC",
  "AccessKeyId" : "ASIAIOSFODNN7EXAMPLE",
  "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
  "Token" : "token",
  "Expiration" : "2017-05-17T15:09:54Z"
}
```

Para las aplicaciones, la AWS CLI y los comandos de las herramientas para Windows PowerShell que se ejecutan en la instancia, no es necesario obtener de forma explícita las credenciales de seguridad temporales, dado que los AWS SDK, la AWS CLI y las herramientas para Windows PowerShell obtienen automáticamente las credenciales del servicio de metadatos de la instancia de EC2 y las utilizan. Para llamar fuera de la instancia utilizando credenciales de seguridad temporales (por ejemplo, para probar políticas de IAM), debe proporcionar la clave de acceso, la clave secreta y el token de la sesión. Para obtener más información, consulte [Uso de credenciales de seguridad temporales para solicitar acceso a los recursos de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) en la *Guía del usuario de IAM*.