本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS STS 区域终端节点
AWS Security Token Service (AWS STS) 既可作为全球服务,也可作为区域服务提供。其中一些 AWS
SDKs和默认CLIs使用全球服务终端节点 (https://sts.amazonaws.com
),而有些则使用区域服务终端节点 (https://sts.
)。全球请求映射到美国东部(弗吉尼亚北部)区域。有关 AWS STS 终端节点的更多信息,请参阅AWS Security Token Service API参考中的终端节点。或者,AWS STS 在《AWS Identity and Access Management 用户指南》 AWS 区域中学习管理。{region_identifier}
.{partition_domain}
AWS 最佳做法是尽可能使用区域终端节点并配置您的终端节点AWS 区域。非商业分区的客户必须使用区域终端节点。并非所有SDKs工具都支持此设置,但所有工具都围绕全球和区域端点定义了行为。有关更多信息,请参阅下文的小节。
对于支持此设置的SDKs和工具,客户可以使用以下方式配置功能:
sts_regional_endpoints
-共享 AWSconfig
文件设置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 | 否 | 不适用 | 区域端点 | 请求失败 |
如果未配置任何区域,则 |
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 |
全球终端节点 | 全球终端节点 |