获得 的临时凭证AWS STS - AWS SDK for Java

这些区域有:AWS SDK for Java团队在招聘中软件开发工程师他们对开源软件感到兴奋AWS开发人员体验!

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

获得 的临时凭证AWS STS

您可以使用AWS Security Token Service(AWS STS) 获得具有有限权限的临时凭证,用于访问AWS服务。

使用 AWS STS 包括三个步骤:

  1. 激活区域 (可选)。

  2. 从 AWS STS 请求临时安全凭证。

  3. 使用凭证访问AWS资源的费用。

注意

激活区域是可选的;默认情况下,临时安全凭证在全局终端节点 sts.amazonaws.com 获取。但为了减少延迟,并在对第一个终端节点的 AWS STS 请求失败的情况下,通过使用其他终端节点来实现请求冗余,可以激活与使用凭证的各服务或应用程序距离更接近的区域。

(可选) 激活并使用 STS 区域

激活用于使用的区域AWS STS,使用AWS Management Console以选择并激活区域。

  1. 以具有执行 IAM 管理任务权限的 IAM 用户身份登录"iam:*"对于要激活的账户AWS STS在新区域中。

  2. 打开 IAM 控制台,然后在导航窗格中单击 Account Settings

  3. 展开 STS Regions (STS 区域) 列表,找到要使用的区域,然后单击 Activate (激活)

在此后,可直接调用与该区域关联的 STS 终端节点。

注意

有关激活 STS 区域的更多信息和可用AWS STS请参阅终端节点激活和停用AWS STS在AWS 区域中的IAM用户指南。

从 STS 请求临时安全凭证

  1. 创建 AWSSecurityTokenServiceClient 对象:

    AWSSecurityTokenService sts_client = new AWSSecurityTokenServiceClientBuilder().standard().withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("sts-endpoint.amazonaws.com", "signing-region")).build()

    在创建不带参数的客户端 (AWSSecurityTokenService sts_client = new AWSSecurityTokenServiceClientBuilder().standard().build();) 时,会使用默认的凭证提供程序链检索凭证。如果您需要,可以提供特定的凭证提供程序:有关更多信息,请参阅 。提供AWS中的凭证AWS SDK for Java.

  2. 创建 GetSessionTokenRequest 对象,还可以设置临时凭证的有效期 (秒):

+

GetSessionTokenRequest session_token_request = new GetSessionTokenRequest(); session_token_request.setDurationSeconds(7200); // optional.

+

对于 IAM 用户,临时凭证的有效期范围是 900 秒 (15 分钟) 到 129600 秒 (36 小时)。如果不指定有效期,则默认使用 43200 秒(12 小时)。

+

对于根AWS 账户,临时凭证的有效期范围是 900 到 3600 秒 (1 小时),如果不指定有效期,则使用默认值 3600 秒。

+ 重要提示:是的强烈推荐从安全角度看,使用 IAM 用户而不是根账户AWS访问。有关更多信息,请参阅中的 IAM 最佳实践IAM用户指南。在 STS 客户端上调用 getSessionToken 以获取会话令牌 (使用 GetSessionTokenRequest 对象):

+

GetSessionTokenResult session_token_result = sts_client.getSessionToken(session_token_request);
  1. 使用调用 getSessionToken 的结果获取会话凭证:

    Credentials session_creds = session_token_result.getCredentials();

使用会话凭证只能在 GetSessionTokenRequest 对象指定的有效期内进行访问。在凭证过期后,需调用getSessionToken再次获得新的会话令牌,用于继续访问AWS.

== 使用临时凭证访问亚马逊资源

具有临时安全凭证后,可使用这些凭证初始化AWS 服务客户端使用中所述的技术来使用其资源明确指定凭证.

例如,使用临时服务凭证创建 S3 客户端:

BasicSessionCredentials sessionCredentials = new BasicSessionCredentials( session_creds.getAccessKeyId(), session_creds.getSecretAccessKey(), session_creds.getSessionToken()); AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(sessionCredentials)) .build();

现在,您可以使用AmazonS3要做的对象Amazon S3请求。

== 有关

有关如何使用临时安全凭证访问的更多信息AWS请访问中的以下几节中的以下几节。IAM用户指南: