本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS SDK for Java 2.x访问交互式开发工作的凭证
为了提高安全性, AWS 建议您将适用于 Java 的 SDK 配置为使用临时凭证而不是长期证书。临时凭证由访问密钥(访问密钥 ID 与秘密访问密钥)和会话令牌组成。
您可以通过几种方法来使用临时凭证。您使用的方法以及您向 SDK 提供的配置都取决于您的使用案例。
使用 Java SDK 进行交互式开发工作时,我们建议您使用 AWS 控制台登录凭据。
使用控制台登录凭证
您可以使用现有的 AWS 管理控制台登录凭据以编程方式访问 AWS 服务。在基于浏览器的身份验证流程之后, AWS 生成可在本地开发工具(如 AWS CLI 和 SDK for Java 2.x)上使用的临时证书。
通过此流程,您可以使用在初始账户设置期间创建的根证书、IAM 用户或身份提供商提供的联合身份进行身份验证,然后 AWS CLI 自动为您管理临时证书。这种方法无需在本地存储长期凭证,从而增强了安全性。
运行 aws login 命令时,您可以从活动控制台会话中进行选择,也可以通过基于浏览器的身份验证流程登录,这将自动生成临时凭证。适用于 Java 的 SDK 2.x 将在最长 12 小时内自动刷新这些凭证。
重要
除了您在共享配置文件中设置的适用于所有项目的配置外,每个 Java 项目都需要在 Maven pom.xml 文件中具有以下依赖关系:
<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>signin</artifactId> </dependency>
该signin依赖项提供了允许适用于 Java 2.x 的 SDK 访问和使用控制台登录凭据的代码。
有关先决条件、登录和注销的更多信息,请参阅 AWS SDK 和工具参考指南中的使用控制台凭据登录进行 AWS 本地开发。
Single-sign-on 方法
使用 Java SDK 进行交互式开发工作时,也可以使用单点登录方法。此方法需要以下设置:
-
使用 AWS CLI 并运行命令登录并创建活动会话
IAM Identity Center 配置
当您将 SDK 配置为使用本指南的设置概述中所述的 IAM Identity Center 单点登录访问时,SDK 会使用临时凭证。
SDK 使用 IAM Identity Center 访问令牌来访问用您的 config 文件中的 sso_role_name 设置配置的 IAM 角色。SDK 代入此 IAM 角色并检索用于签署 AWS 服务 请求的临时凭证。
有关软件开发工具包如何从配置中获取临时证书的更多详细信息,请参阅 AWS SDKs 和工具参考指南的了解 IAM Identity Center 身份验证部分。
重要
除了在共享 config 文件中设置的适用于所有项目的配置外,每个 Java 项目还需要在 Maven pom.xml 文件中具有以下依赖项:
<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>sso</artifactId> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>ssooidc</artifactId> </dependency>
sso 和 ssooidc 依赖项提供的代码使适用于 Java 的 SDK 2.x 能够访问临时凭证。
从 AWS 访问门户检索临时证书
作为 IAM Identity Center 单点登录配置的替代方案,您可以复制和使用 AWS 访问门户中提供的临时证书。您可以在配置文件中使用临时凭证,也可以将其用作系统属性和环境变量的值。
为临时凭证设置本地凭证文件
-
在 credentials 文件中,粘贴以下占位符文本,直到粘贴有效的临时凭证为止。
[default] aws_access_key_id=<value from AWS access portal>aws_secret_access_key=<value from AWS access portal>aws_session_token=<value from AWS access portal> -
保存该文件。该
~/.aws/credentials文件现在应该存在于您的本地开发系统上。此文件包含 [默认] 配置文件,如果未指定特定的命名配置文件,则适用于 Java 的 SDK 将使用该配置文件。 -
按照手动刷新凭证标题下的说明从 AWS 访问门户复制 IAM 角色证书。
-
对于链接的说明中的步骤 2,为可授予访问权限以满足开发需求的 IAM 角色名称选择
Access keys。此角色的名称通常类似于PowerUserAccess或开发人员。 -
在模态对话框中,选择您的操作系统,然后从将配置文件添加到您的 AWS 凭证文件复制内容。
-
-
将复制的凭证粘贴到您的本地
credentials文件中,并移除生成的配置文件名称。您的文件应类似于以下内容。[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE -
保存
credentials文件。
当适用于 Java 的 SDK 创建服务客户端时,它将访问这些临时凭证并将它们用于每个请求。在步骤 5a 中选择的 IAM 角色的设置决定了临时凭证的有效时间。最长持续时间为 12 小时。
在临时凭证过期后,重复步骤 4 到 7。