Amazon IAM Identity Center (successor to Amazon Single Sign-On) 的旧版不可刷新配置
本主题介绍如何将 Amazon CLI 配置为使用 Amazon IAM Identity Center (successor to Amazon Single Sign-On)(IAM Identity Center)对用户进行身份验证,以获取使用旧版方法运行 Amazon CLI 命令的凭证。使用遗留的不可刷新配置时,您需要手动刷新令牌,因为它会定期过期。
使用 IAM Identity Center 时,您可以登录到 Active Directory、内置 IAM Identity Center 目录或已连接到 IAM Identity Center 的另一个 IdP。您可以将这些凭证映射到使您可以运行 Amazon CLI 命令的 Amazon Identity and Access Management (IAM) 角色。
无论您使用哪个 IdP,IAM Identity Center 都会将这些区别抽象出来。例如,您可以连接 Microsoft Azure AD,如博客文章 IAM Identity Center 的下一个演进
注意
有关使用持有者身份验证(不使用账户 ID 和角色)的信息,请参阅《Amazon CodeCatalyst 用户指南》中的进行设置以将 Amazon CLI 与 CodeCatalyst 一起使用。
您可以按以下方式配置一个或多个 Amazon CLI 命名配置文件以使用来自遗留 IAM Identity Center 的角色。
先决条件
您必须先在 IAM Identity Center 内启用 SSO 身份验证。有关启用 SSO 身份验证的详细信息,请参阅《Amazon IAM Identity Center (successor to Amazon Single Sign-On) 用户指南》中的入门。
遗留配置的自动配置
在 Amazon CLI 中启用支持 IAM Identity Center 的配置文件
-
运行
aws configure sso
命令并提供 IAM Identity Center 启动 URL 和托管 Identity Center 目录的 Amazon 区域。$
aws configure sso
SSO session name (Recommended): SSO start URL [None]:
https://my-sso-portal.awsapps.com/start
SSO region [None]:
us-east-1
-
Amazon CLI 尝试打开原定设置浏览器,并开始您的 IAM Identity Center 账户的登录过程。
SSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request.
如果 Amazon CLI 无法打开浏览器,则会显示以下消息,其中包含有关如何手动开始登录过程的说明。
Using a browser, open the following URL:
https://device.sso.us-west-2.amazonaws.com/
and enter the following code:QCFK-N451
IAM Identity Center 使用代码将 IAM Identity Center 会话与当前 Amazon CLI 会话关联。IAM Identity Center 浏览器页面会提示您使用 IAM Identity Center 凭证登录。这样可向 Amazon CLI 授予权限以检索和显示您有权与 IAM Identity Center 一起使用的 Amazon 账户和角色。
-
接下来,Amazon CLI 会显示可供您使用的 Amazon 账户。如果您只被授权使用一个账户,Amazon CLI 会自动为您选择该账户并跳过提示。可供您使用的 Amazon 账户由 IAM Identity Center 中的用户配置决定。
There are 2 Amazon accounts available to you. > DeveloperAccount, developer-account-admin@example.com (
123456789011
) ProductionAccount, production-account-admin@example.com (123456789022
)使用箭头键选择要用于此配置文件的账户。左侧的“>”字符指向当前选择。按 Enter 进行选择。
-
接下来,Amazon CLI 确认您选择的账户,并显示所选账户中可供您使用的 IAM 角色。如果所选账户仅列出一个角色,Amazon CLI 会自动为您选择该角色并跳过提示。可供您使用的角色由 IAM Identity Center 中的用户配置决定。
Using the account ID
123456789011
There are 2 roles available to you. > ReadOnly FullAccess使用箭头键选择要与这个配置文件一起使用的 IAM 角色,然后按 <ENTER> 键。
-
Amazon CLI 将确认您的角色选择。
Using the role name "ReadOnly"
-
完成配置文件的配置,方法是指定默认输出格式、要向其发送命令的默认 Amazon Web Services 区域,并提供配置文件名称,以便您可以从本地计算机上定义的所有配置文件中引用此配置文件。在以下示例中,用户输入原定设置区域、原定设置输出格式和配置文件的名称。也可以按下
<ENTER>
以选择方括号之间显示的任何原定设置值。建议的配置文件名称是账户 ID 号,并依次后跟下划线和角色名称。CLI default client Region [None]:
us-west-2<ENTER>
CLI default output format [None]:
json<ENTER>
CLI profile name [123456789011_ReadOnly]:
my-dev-profile<ENTER>
注意
如果您指定
default
作为配置文件名称,则每当您运行 Amazon CLI 命令但不指定配置文件名称时,此配置文件将变为使用的配置文件。 -
最后一条消息描述了完成的配置文件配置。
要使用此配置文件,请使用 --profile 指定配置文件名称,如下所示:
aws s3 ls --profile my-dev-profile
-
前面的示例条目将在
~/.aws/config
中生成一个命名的配置文件,类似于以下示例。[profile my-dev-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json
此时,您有一个可用于请求临时凭证的配置文件。您必须使用
aws sso login
命令实际请求和检索运行命令所需的临时凭证。有关说明,请参阅使用启用了 IAM Identity Center 的命名配置文件 。
遗留配置的手动配置
使用遗留的不可刷新配置不支持自动令牌刷新。我们建议使用 SSO 令牌配置。
要手动向命名的配置文件添加 IAM Identity Center 支持,必须将以下密钥和值添加到文件 ~/.aws/config
(Linux 或 macOS)或 %USERPROFILE%/.aws/config
(Windows) 中的配置文件定义中。
您可以在 .aws/config
文件中包括有效的任何其他键和值,例如 、 或 。为防止出错,不要包括任何与凭证相关的值,例如 role_arn
或 aws_secret_access_key
。
以下是 .aws/config
中的示例 IAM Identity Center 配置文件:
[profile
my-sso-profile
] sso_start_url =https://my-sso-portal.awsapps.com/start
sso_region =us-west-2
sso_account_id =111122223333
sso_role_name =SSOReadOnlyRole
region =us-west-2
output =json
您的临时凭证配置文件已完成。
要运行命令,您必须首先使用 aws sso login
命令请求和检索临时凭证。有关说明,请参阅下一节:使用启用了 IAM Identity Center 的命名配置文件 。身份验证令牌缓存到磁盘中的 ~/.aws/sso/cache
目录下面,文件名基于 sso_start_url
。