教程:使用 IAM 身份中心在 AWS CLI 中运行 Amazon S3 命令 - AWS Command Line Interface

教程:使用 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 账户、编程访问详细信息以及 AdministratorPowerUserAccess 选项。在使用 SDK 时选择 PowerUserAccess

通过身份提供者的门户登录 AWS。如果您的云管理员已向您授予 PowerUserAccess(开发人员)权限,您将看到您有权访问的 AWS 账户和您的权限集。在您的权限集名称旁边,可以看到有关使用该权限集手动或以编程方式访问账户的选项。

自定义实现可能会产生不同的体验,例如不同的权限集名称。如果您不确定要使用哪个权限集,请联系 IT 团队以寻求帮助。

通过您的 AWS 访问门户登录到 AWS。如果您的云管理员已向您授予 PowerUserAccess(开发人员)权限,您将看到您有权访问的 AWS 账户和您的权限集。在您的权限集名称旁边,可以看到有关使用该权限集手动或以编程方式访问账户的选项。

请联系您的 IT 团队以寻求帮助。

步骤 2:收集 IAM Identity Center 信息

获得对 AWS 访问权限后,通过执行以下操作收集 IAM Identity Center 信息:

  1. 在 AWS 访问门户中,选择用于开发的权限集,然后选择访问密钥链接。

  2. 获取凭证对话框中,选择与您的操作系统匹配的选项卡。

  3. 选择 IAM Identity Center 凭证方法以获取运行 aws configure sso 所需的 SSO Start URLSSO 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_regionsso_start_url 设置。通常,必须在 profile 部分配置 sso_account_idsso_role_name 设置,以便 SDK 可以请求 SSO 凭证。

以下示例将 SDK 配置为请求 SSO 凭证并支持自动令牌刷新:

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [sso-session my-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_regionsso_start_url。通常,必须在 profile 部分配置 sso_account_idsso_role_name 设置,以便 SDK 可以请求 SSO 凭证。

以下示例将 SDK 配置为请求 SSO 凭证并支持自动令牌刷新:

[profile my-dev-profile] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [sso-session my-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 命令。以下示例列出您的所有 Amazon S3 存储桶。

$ 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 错误了解故障排除步骤。

其他资源

其他资源如下所示。