View a markdown version of this page

AWS STS 区域 端点 - AWS 软件开发工具包和工具

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

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 参考中的终端节点或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 否 N/A 区域端点 全局端点
AWS CLI v1 是 legacy 全局端点 全局端点
适用于 C++ 的 SDK 否 N/A 区域端点 us-east-1(区域性)
适用于 Go V2 (1.x) 的 SDK 否 N/A 区域端点 请求失败
适用于 Go 1.x(V1)的 SDK 是 legacy 全局端点 全局端点 要使用共享 config 文件设置,必须开启从配置文件加载的功能;请参阅会话。
适用于 Java 2.x 的 SDK 否 N/A 区域端点 请求失败

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

适用于 Java 1.x 的 SDK 是 legacy 全局端点 全局端点
适用于 JavaScript 3.x 的 SDK 否 N/A 区域端点 us-east-1(区域性)
适用于 JavaScript 2.x 的 SDK 是 legacy 全局端点 全局端点
适用于 Kotlin 的 SDK 否 N/A 区域端点 全局端点
.NET 4.x 软件开发工具包 否 N/A 区域端点 us-east-1(区域性)
适用于 .NET 3.x 的 SDK 是 regional 全局端点 全局端点
适用于 PHP 3.x 的 SDK 是 regional 全局端点 请求失败
适用于 Python (Boto3) 的 SDK 是 regional 全局端点 全局端点
适用于 Ruby 3.x 的 SDK 是 regional 区域端点 请求失败
适用于 Rust 的 SDK 否 N/A 区域端点 请求失败
适用于 Swift 的 SDK 否 N/A 区域端点 请求失败
PowerShell V5 工具 是 regional 全局端点 全局端点
PowerShell V4 工具 是 regional 全局端点 全局端点