使用AWS SDK for Java 2.x 访问交互式开发工作的凭证 - AWS SDK for Java 2.x

使用AWS SDK for Java 2.x 访问交互式开发工作的凭证

为了提高安全性,AWS 建议您将适用于 Java 的 SDK 配置为使用临时凭证而不是长期凭证。临时凭证由访问密钥(访问密钥 ID 与秘密访问密钥)和会话令牌组成。

您可以通过几种方法来使用临时凭证。您使用的方法以及您向 SDK 提供的配置都取决于您的使用案例。

当您使用 Java SDK 进行交互式开发工作时,建议使用单点登录方法。此方法需要以下设置:

IAM Identity Center 配置

当您将 SDK 配置为使用本指南的设置概述中所述的 IAM Identity Center 单点登录访问时,SDK 会使用临时凭证。

SDK 使用 IAM Identity Center 访问令牌来访问用您的 config 文件中的 sso_role_name 设置配置的 IAM 角色。SDK 代入此 IAM 角色并检索用于签署 AWS 服务请求的临时凭证。

有关 SDK 如何从配置中获取临时凭证的更多详细信息,请参阅《AWS SDKs and Tools Reference Guide》的 Understanding IAM Identity Center authentication 部分。

重要

除了在共享 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>

ssossooidc 依赖项提供的代码使适用于 Java 的 SDK 2.x 能够访问临时凭证。

从 AWS 访问门户检索临时凭证

作为 IAM Identity Center 单点登录配置的替代方案,您可以复制和使用 AWS 访问门户中提供的临时凭证。您可以在配置文件中使用临时凭证,也可以将其用作系统属性和环境变量的值。

为临时凭证设置本地凭证文件
  1. 创建共享 credentials 文件

  2. 在 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>
  3. 保存该文件。该 ~/.aws/credentials 文件现在应该存在于您的本地开发系统上。此文件包含 [默认] 配置文件,如果未指定特定的命名配置文件,则适用于 Java 的 SDK 将使用该配置文件。

  4. 登录到 AWS 访问门户

  5. 手动刷新凭证标题下,按照以下说明操作以从 AWS 访问门户中复制 IAM 角色凭证。

    1. 对于链接的说明中的步骤 2,为可授予访问权限以满足开发需求的 IAM 角色名称选择 Access keys。此角色的名称通常类似于 PowerUserAccessDeveloper

    2. 在模态对话框中,选择您的操作系统,然后从将配置文件添加到您的 AWS 凭证文件复制内容。

  6. 将复制的凭证粘贴到您的本地 credentials 文件中,并移除生成的配置文件名称。您的文件应类似于以下内容。

    [default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
  7. 保存 credentials 文件。

当适用于 Java 的 SDK 创建服务客户端时,它将访问这些临时凭证并将它们用于每个请求。在步骤 5a 中选择的 IAM 角色的设置决定了临时凭证的有效时间。最长持续时间为 12 小时。

在临时凭证过期后,重复步骤 4 到 7。