如何使用 AWS CLI 获取 IAM Identity Center 用户的临时凭证?

1 分钟阅读
0

我想获得 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 中,完成以下步骤:

  1. 打开 JSON 文件,然后复制访问令牌:

    $ cat 535a8450b05870c9045c8a7b95870.json
    {"startUrl": "https://my-sso-portal.awsapps.com/start", "region": "us-east-1", "accessToken": "eyJlbmMiOiJBM….", "expiresAt": "2020-06-17T10:02:08UTC"}
  2. 运行 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
        }
    }
  3. 将凭证配置为环境变量

对错误消息进行故障排除

"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 权限集?

AWS 官方
AWS 官方已更新 1 年前