教程:使用 IAM 身份中心在 AWS CLI 中运行 Amazon S3 命令
本主题介绍如何配置 AWS CLI,通过使用当前 AWS IAM Identity Center (IAM Identity Center) 验证用户身份,来获取针对 Amazon Simple Storage Service(Amazon S3)运行 AWS Command Line Interface(AWS CLI)命令的凭证。
主题
步骤 1:使用 IAM Identity Center 进行身份验证
获取在 IAM Identity Center 中访问 SSO 身份验证的权限。选择下列方法之一来访问您的 AWS 凭证。
请按照《AWS IAM Identity Center 用户指南》的入门中的说明操作。此过程激活 IAM Identity Center,创建管理用户并添加适当的最低权限集。
注意
创建应用最低权限的权限集。除非您的雇主已为此目的创建自定义权限集,否则建议使用预定义的 PowerUserAccess
权限集。
退出门户并重新登录以查看您的 AWS 账户、编程访问详细信息以及 Administrator
和 PowerUserAccess
选项。在使用 SDK 时选择 PowerUserAccess
。
通过身份提供者的门户登录 AWS。如果您的云管理员已向您授予 PowerUserAccess
(开发人员)权限,您将看到您有权访问的 AWS 账户和您的权限集。在您的权限集名称旁边,可以看到有关使用该权限集手动或以编程方式访问账户的选项。
自定义实现可能会产生不同的体验,例如不同的权限集名称。如果您不确定要使用哪个权限集,请联系 IT 团队以寻求帮助。
通过您的 AWS 访问门户登录到 AWS。如果您的云管理员已向您授予 PowerUserAccess
(开发人员)权限,您将看到您有权访问的 AWS 账户和您的权限集。在您的权限集名称旁边,可以看到有关使用该权限集手动或以编程方式访问账户的选项。
请联系您的 IT 团队以寻求帮助。
步骤 2:收集 IAM Identity Center 信息
获得对 AWS 访问权限后,通过执行以下操作收集 IAM Identity Center 信息:
-
在 AWS 访问门户中,选择用于开发的权限集,然后选择访问密钥链接。
-
在获取凭证对话框中,选择与您的操作系统匹配的选项卡。
-
选择 IAM Identity Center 凭证方法以获取运行
aws configure sso
所需的SSO Start URL
和SSO Region
值。有关要注册哪些范围值的信息,请参阅《IAM Identity Center 用户指南》中的 OAuth 2.0 访问范围。
步骤 3:创建 Amazon S3 存储桶
登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
在本教程中,创建几个存储桶,以便稍后在列表中检索。
第 4 步:安装 AWS CLI
要安装 AWS CLI,请按照适用操作系统的说明操作。有关更多信息,请参阅 安装或更新最新版本的 AWS CLI。
安装完成后,可以通过打开首选终端并运行以下命令来验证安装情况。这应该会显示您已安装的 AWS CLI 版本。
$
aws --version
步骤 5:配置 AWS CLI 配置文件
使用以下方法之一配置您的配置文件
config
文件的 sso-session
部分用于对获取 SSO 访问令牌的配置变量进行分组,然后可以用来获取 AWS 凭证。使用了以下设置:
您可以定义 sso-session
部分并将其与配置文件相关联。必须在 sso-session
部分配置 sso_region
和 sso_start_url
设置。通常,必须在 profile
部分配置 sso_account_id
和 sso_role_name
设置,以便 SDK 可以请求 SSO 凭证。
以下示例将 SDK 配置为请求 SSO 凭证并支持自动令牌刷新:
[profile
dev
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole
[sso-sessionmy-sso
] sso_region =us-east-1
sso_start_url =https://my-sso-portal.awsapps.com/start
config
文件的 sso-session
部分用于对获取 SSO 访问令牌的配置变量进行分组,然后可以用来获取 AWS 凭证。使用了以下设置:
您定义一个 sso-session
部分并将其关联到配置文件。必须在 sso-session
部分内设置 sso_region
和 sso_start_url
。通常,必须在 profile
部分配置 sso_account_id
和 sso_role_name
设置,以便 SDK 可以请求 SSO 凭证。
以下示例将 SDK 配置为请求 SSO 凭证并支持自动令牌刷新:
[profile
my-dev-profile
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole
[sso-sessionmy-sso
] sso_region =us-east-1
sso_start_url =https://my-sso-portal.awsapps.com/start
sso_registration_scopes =sso:account:access
身份验证令牌缓存到 ~/.aws/sso/cache
目录下的磁盘上,文件名基于会话名称。
步骤 6:登录到 IAM Identity Center
注意
登录过程可能会提示您允许 AWS CLI 访问您的数据。由于 AWS CLI 基于 SDK for Python 而构建,因此权限消息可能包含 botocore
名称的变体。
要检索和缓存您的 IAM Identity Center 凭证,请在 AWS CLI 中运行以下命令,打开您的默认浏览器并验证您的 IAM Identity Center 登录信息。
$
aws sso login --profile my-dev-profile
步骤 7:运行 Amazon S3 命令
要列出您之前创建的存储桶,请使用 aws s3
ls
$
aws s3 ls
2018-12-11 17:08:50 my-bucket 2018-12-14 14:55:44 my-bucket2
步骤 8:注销 IAM Identity Center
使用完您的 IAM Identity Center 配置文件后,可运行以下命令删除缓存凭证。
$
aws sso logout
Successfully signed out of all SSO profiles.
步骤 9:清理资源
完成本教程后,请清理在本教程中创建的所有不再需要的资源,包括 Amazon S3 存储桶。
故障排除
如果您遇到 AWS CLI 使用问题,请参阅排查 AWS CLI 错误了解故障排除步骤。
其他资源
其他资源如下所示。
-
《AWS CLI 版本 2 中参考》中的
aws configure sso
-
《AWS CLI 版本 2 中参考》中的
aws configure sso-session
-
《AWS CLI 版本 2 中参考》中的
aws sso login
-
《AWS CLI 版本 2 中参考》中的
aws sso logout
-
《Amazon CodeCatalyst 用户指南》中的设置为将 AWS CLI 与 CodeCatalyst 一起使用
-
《IAM Identity Center 用户指南》中的 OAuth 2.0 访问范围
-
《IAM Identity Center 用户指南》中的入门教程