本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS 使用进行身份验证 AWS SDK for Java 2.x
使用时 AWS SDK for Java 2.x,需要了解的有关身份验证的重要一点是,软件开发工具包会使用您的环境或 IAM 角色中的证书自动处理复杂的请求签名过程,而无需您实施任何加密算法。
SDK 完全在幕后管理凭证发现、签名创建和证书刷新,让您可以专注于应用程序逻辑。
设置身份验证
《和工具参考指南》中的身份验证 AWS SDKs 和访问主题描述了不同的身份验证方法。我们建议您按照说明设置对 IAM 身份中心的访问权限,以便软件开发工具包可以获取证书。
按照 AWS SDKs 和《工具参考指南》中的说明进行操作后,您的系统应设置为允许 SDK 对请求进行签名:
1. 设置 SDK 的单点登录访问权限
在完成编程访问部分的步骤 2 以便 SDK 可以使用 IAM Identity Center 身份验证后,您的系统应包含以下元素。
-
AWS CLI,用于在运行应用程序之前启动AWS 访问门户会话。
-
包含默认配置文件的
~/.aws/config
文件。在向 AWS发送请求之前,适用于 Java 的 SDK 使用配置文件的 SSO 令牌提供程序配置来获取凭证。sso_role_name
值是与 IAM Identity Center 权限集关联的 IAM 角色,应允许访问您的应用程序中使用的 AWS 服务 。以下示例
config
文件展示了使用 SSO 令牌提供程序配置来设置的默认配置文件。配置文件的sso_session
设置是指所指定的sso-session
节。sso-session
节包含启动 AWS 访问门户会话的设置。[default] sso_session = my-sso sso_account_id =
111122223333
sso_role_name =SampleRole
region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url =https://provided-domain.awsapps.com/start
sso_registration_scopes = sso:account:access
有关 SSO 令牌提供程序配置中使用的设置的更多详细信息,请参阅 AWS SDKs 和工具参考指南中的 SSO 令牌提供者配置。
如果您的开发环境未如前所示进行编程访问设置,请按照《 SDKs 参考指南》中的步骤 2 进行操作。
2. 使用登录 AWS CLI
在运行可访问的应用程序之前 AWS 服务,您需要进行有效的 AWS 访问门户会话,这样 SDK 才能使用 IAM Identity Center 身份验证来解析证书。在中运行以下命令登录 AWS CLI AWS 访问门户。
aws sso login
由于您有默认的配置文件设置,因此无需使用 --profile
选项调用该命令。如果您的 SSO 令牌提供程序配置在使用指定的配置文件,则命令为 aws sso login --profile
。named-profile
要测试您是否已有活动会话,请运行以下 AWS CLI 命令。
aws sts get-caller-identity
对此命令的响应应该报告共享 config
文件中配置的 IAM Identity Center 账户和权限集。
注意
如果您已经有一个有效的 AWS 访问门户会话并且aws sso
login
正在运行,则无需提供凭据。
但是,您将看到一个对话框,请求 botocore
访问您的信息的权限。botocore
是 AWS CLI 的基础。
选择 “允许” 以授权访问您的信息, AWS CLI 以及适用于 Java 的 SDK。
其他身份验证选项
有关 SDK 身份验证的更多选项,例如配置文件和环境变量的使用,请参阅 AWS SDKs 和工具参考指南中的配置章节。