AWS STS 区域终端节点 - AWS SDKs和工具

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

AWS STS 区域终端节点

AWS Security Token Service (AWS STS) 既可作为全球服务,也可作为区域服务提供。其中一些 AWS SDKs和默认CLIs使用全球服务终端节点 (https://sts.amazonaws.com),而有些则使用区域服务终端节点 (https://sts.{region_identifier}.{partition_domain})。全球请求映射到美国东部(弗吉尼亚北部)区域。有关 AWS STS 终端节点的更多信息,请参阅AWS Security Token Service API参考中的终端节点。或者,AWS STS 在《AWS Identity and Access Management 用户指南》 AWS 区域中学习管理

AWS 最佳做法是尽可能使用区域终端节点并配置您的终端节点AWS 区域。非商业区的客户必须使用区域终端节点。并非所有SDKs工具都支持此设置,但所有工具都围绕全球和区域端点定义了行为。有关更多信息,请参阅下文的小节。

对于支持此设置的SDKs和工具,客户可以使用以下方式配置功能:

sts_regional_endpoints-共享 AWS config文件设置
AWS_STS_REGIONAL_ENDPOINTS - 环境变量

此设置指定SDK或工具如何确定用于与 AWS Security Token Service (AWS STS) 通信的 AWS 服务 端点。

默认值legacy

注意

2022 年 7 月之后发布的所有新的SDK主要版本都将默认为regional。新的SDK主要版本可能会删除此设置并使用regional行为。为了减少此变更对未来的影响,我们建议您尽可能在应用程序中开始使用regional

有效值:(建议的值:regional

  • legacy— 使用全局 AWS STS 终端节点sts.amazonaws.com

  • regional— SDK 或工具始终使用当前配置区域的 AWS STS 终端节点。例如,如果将客户端配置为使用us-west-2,则对的所有调用都将 AWS STS 发送到区域终端节点sts.us-west-2.amazonaws.com,而不是全球sts.amazonaws.com终端节点。要在启用此设置时向全局终端节点发送请求,您可以将区域设置为 aws-global

config 文件中设置这些值的示例:

[default] sts_regional_endpoints = regional

Linux/macOS 通过命令行设置环境变量的示例:

export AWS_STS_REGIONAL_ENDPOINTS=regional

Windows 通过命令行设置环境变量的示例:

setx AWS_STS_REGIONAL_ENDPOINTS regional

与之兼容 AWS SDKs

注意

AWS 最佳做法是尽可能使用区域终端节点并配置您的终端节点AWS 区域

下表汇总了您的SDK或工具:

  • 支持设置:是否支持STS区域端点的共享config文件变量和环境变量。

  • 默认设置值:该设置的默认值(如果支持)。

  • 默认服务客户端目标STS端点:即使更改默认端点的设置不可用,客户端也会使用哪个默认端点。

  • 服务客户端回退行为:当SDK它应该使用区域终端节点但尚未配置区域时,会怎么做。无论它使用区域终端节点是因为默认还是因为设置选择regional了区域端点,都会出现这种行为。

该表还使用了以下值:

  • 全局终端节点:https://sts.amazonaws.com.

  • 区域终端节点:基于您的应用程序AWS 区域使用的配置。

  • us-east-1(区域):使用us-east-1区域终端节点,但会话令牌比典型的全局请求长。

SDK

支持设置

默认设置值

默认服务客户端目标STS端点

服务客户端回退行为

备注或更多信息
AWS CLI v2 不适用 区域端点 全球终端节点
AWS CLI v1 legacy 全球终端节点 全球终端节点
SDK对于 C++ 不适用 区域端点 us-east-1(区域)
SDK适用于 Go V2 (1.x) 不适用 区域端点 请求失败
SDK适用于 Go 1.x (V1) legacy 全球终端节点 全球终端节点 要使用共享 config 文件设置,必须开启从配置文件加载的功能;请参阅会话
SDK适用于 Java 2.x 不适用 区域端点 请求失败

如果未配置任何区域,则AssumeRoleAssumeRoleWithWebIdentity将使用全局STS终端节点

SDK适用于 Java 1.x legacy 全球终端节点 全球终端节点
SDK适用于 JavaScript 3.x 不适用 区域端点 请求失败
SDK适用于 JavaScript 2.x legacy 全球终端节点 全球终端节点
SDK对于 Kotlin 来说 不适用 区域端点 全球终端节点
SDK对于。 NET3.x legacy 全球终端节点 全球终端节点
SDK适用于 PHP 3.x legacy 全球终端节点 请求失败
SDK适用于 Python (Boto3) legacy 全球终端节点 全球终端节点
SDK适用于 Ruby 3.x regional 区域端点 请求失败
SDK对于 Rust 不适用 区域端点 请求失败
SDK为斯威夫特 不适用 区域端点 请求失败
用于 PowerShell legacy 全球终端节点 全球终端节点