AWS 使用进行身份验证 AWS SDK for Java 2.x - AWS SDK for Java 2.x

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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 和工具参考指南中的配置章节。