Quiero obtener credenciales temporales para un usuario de AWS IAM Identity Center.
Breve descripción
Cuando configura un perfil con nombre para que utilice IAM Identity Center, se crea un archivo JSON en el directorio $ cd ~/.aws/sso/cache. El archivo JSON contiene un token web JSON (JWT), que se utiliza para obtener las credenciales de seguridad temporales con un comando que equivale a la API get-role-credentials. El token de acceso es válido durante 8 horas. Puede ver la hora de vencimiento en la marca de tiempo expiresAt en el archivo JSON. Debe usar el comando get-role-credentials para volver a autenticar los tokens que hayan vencido.
Solución
Utilice la Interfaz de la línea de comandos de AWS (AWS CLI) para obtener las credenciales temporales para un usuario del IAM Identity Center.
Nota: Si se muestran errores al ejecutar comandos de la AWS CLI, consulte Errores de solución de problemas de la AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.
Obtención de credenciales temporales
En la AWS CLI, siga estos pasos:
-
Abra el archivo JSON y copie el token de acceso:
$ cat 535a8450b05870c9045c8a7b95870.json
{"startUrl": "https://my-sso-portal.awsapps.com/start", "region": "us-east-1", "accessToken": "eyJlbmMiOiJBM….", "expiresAt": "2020-06-17T10:02:08UTC"}
-
Ejecute el comando get-role-credentials de la AWS CLI para obtener las credenciales para el usuario de IAM Identity Center:
$ aws sso get-role-credentials --account-id 123456789012 --role-name permission-set-name --access-token eyJlbmMiOiJBM…. --region enter_the_same_sso_region_same_in_the_JSON_file
Resultado del ejemplo:
{ "roleCredentials": {
"accessKeyId": "ASIA*************",
"secretAccessKey": "**********************************",
"sessionToken": "****************************************",
"expiration": 1592362463000
}
}
-
Configure las credenciales como variables de entorno.
Solución de problemas con los mensajes de error
«An error occurred (ForbiddenException) when calling the GetRoleCredentials operation: No access.»
Este error puede producirse si un nombre de rol es incorrecto en la AWS CLI. Compruebe el nombre del rol para confirmar que sea correcto.
«An error occurred (UnauthorizedException) when calling the GetRoleCredentials operation: Session token not found or invalid.»
Este error se produce porque el token de la sesión o la región de AWS son incorrectos. Asegúrese de que la región en el comando de la AWS CLI coincida con la región en el resultado del archivo JSON.
Información relacionada
¿Cómo utilizo los conjuntos de permisos de IAM Identity Center?