AWS STS 区域性端点 - AWS SDK 和工具

AWS STS 区域性端点

注意

如需获得相关帮助,以了解设置页面的布局或解释后面的 AWS SDK 和工具支持表,请参阅了解本指南的设置页面

AWS Security Token Service(AWS STS)既可作为全局服务提供,也可作为区域性服务提供。某些 AWS SDK 和 CLI 默认使用全局服务端点(https://sts.amazonaws.com),而其他则使用区域性服务端点(https://sts.{region_identifier}.{partition_domain})。在默认启用的区域中,发往 AWS STS 全局端点的请求会自动在请求发起的同一区域中处理。在选择加入区域中,发往 AWS STS 全局端点的请求由单个 AWS 区域美国东部(弗吉尼亚州北部)处理。有关 AWS STS 端点的更多信息,请参阅《AWS Security Token Service API 参考》中的 Endpoints 或《AWS Identity and Access Management 用户指南》中的管理 AWS 区域中的 AWS STS

根据 AWS 最佳实践要求,建议尽可能使用区域性端点并配置您的 AWS 区域。非商业分区中的客户必须使用区域性端点。并非所有 SDK 和工具都支持此设置,但对于全局端点和区域性端点,所有 SDK 和工具都有既定的行为。有关更多信息,请参阅以下部分。

注意

AWS 已对默认启用的区域中的 AWS Security Token Service (AWS STS) 全局端点 (https://sts.amazonaws.com) 进行了更改,以增强其恢复能力和性能。发往全局端点的 AWS STS 请求将自动在与您的工作负载相同的 AWS 区域中处理。这些更改不会部署到选择加入的区域。我们建议您使用适当的 AWS STS 区域端点。有关更多信息,请参阅《AWS Identity and Access Management 用户指南》中的 AWS STS 全局端点更改

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

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

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

默认值:regional,相关例外详见下表。

注意

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 SDK 和工具支持

注意

根据 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 全局端点 全局端点
适用于 C++ 的 SDK 不适用 区域端点 us-east-1(区域性)
适用于 Go V2 (1.x) 的 SDK 不适用 区域端点 请求失败
适用于 Go 1.x(V1)的 SDK legacy 全局端点 全局端点 要使用共享 config 文件设置,必须开启从配置文件加载的功能;请参阅会话
适用于 Java 2.x 的 SDK 不适用 区域端点 请求失败

如果未配置区域,则 AssumeRoleAssumeRoleWithWebIdentity 将使用全局 STS 端点。

适用于 Java 1.x 的 SDK legacy 全局端点 全局端点
适用于 JavaScript 3.x 的 SDK 不适用 区域端点 请求失败
适用于 JavaScript 2.x 的 SDK legacy 全局端点 全局端点
适用于 Kotlin 的 SDK 不适用 区域端点 全局端点
适用于 .NET 4.x 的 SDK 不适用 区域端点 us-east-1(区域性)
适用于 .NET 3.x 的 SDK regional 全局端点 全局端点
适用于 PHP 3.x 的 SDK regional 全局端点 请求失败
适用于 Python (Boto3) 的 SDK regional 全局端点 全局端点
适用于 Ruby 3.x 的 SDK regional 区域端点 请求失败
适用于 Rust 的 SDK 不适用 区域端点 请求失败
适用于 Swift 的 SDK 不适用 区域端点 请求失败
Tools for PowerShell V5 regional 全局端点 全局端点
Tools for PowerShell V4 regional 全局端点 全局端点