我想获得 AWS IAM Identity Center 用户的临时凭证。
简短描述
当您配置一个命名配置文件以使用 IAM Identity Center 时,将在 $ cd ~/.aws/sso/cache 目录中创建一个 JSON 文件。这个 JSON 文件包含一个 JSON Web 令牌(JWT),该令牌用于通过 API 等效命令 get-role-credentials 获取临时安全凭证。该访问令牌的有效期为 8 小时。您可以在 JSON 文件的 expiresAt 时间戳中查看到期时间。您必须使用 get-role-credentials 命令来重新验证过期的令牌。
解决方法
使用 AWS 命令行界面(AWS CLI)获取 IAM Identity Center 用户的临时凭证。
**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅排查 AWS CLI 错误。此外,确保您使用的是最新版本的 AWS CLI。
获取临时凭证
在 AWS CLI 中,完成以下步骤:
-
打开 JSON 文件,然后复制访问令牌:
$ cat 535a8450b05870c9045c8a7b95870.json
{"startUrl": "https://my-sso-portal.awsapps.com/start", "region": "us-east-1", "accessToken": "eyJlbmMiOiJBM….", "expiresAt": "2020-06-17T10:02:08UTC"}
-
运行 AWS CLI 命令 get-role-credentials 获取 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
输出示例:
{ "roleCredentials": {
"accessKeyId": "ASIA*************",
"secretAccessKey": "**********************************",
"sessionToken": "****************************************",
"expiration": 1592362463000
}
}
-
将凭证配置为环境变量。
对错误消息进行故障排除
"An error occurred (ForbiddenException) when calling the GetRoleCredentials operation: No access."
此错误可能是由于 AWS CLI 中的角色名称不正确而导致的。检查角色名称以确认其正确性。
"An error occurred (UnauthorizedException) when calling the GetRoleCredentials operation: Session token not found or invalid."
出现此错误是因为会话令牌或 AWS 区域不正确。确保 AWS CLI 命令中的区域与 JSON 文件输出中的区域相同。
相关信息
如何使用 IAM Identity Center 权限集?