在 Amazon Web Services 区域 中管理 Amazon STS - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 Amazon Web Services 区域 中管理 Amazon STS

默认情况下,Amazon Security Token Service (Amazon STS) 作为全球服务提供,并且所有 Amazon STS 请求发送到单个终端节点 (https://sts.amazonaws.com)。Amazon 建议使用区域 Amazon STS 终端节点而不是全球终端节点以减少延迟,建立冗余以及提高会话令牌有效性。

  • 减少延迟 - 通过向在地理位置离您较近的服务和应用程序的终端节点发出 Amazon STS 调用,可以缩短访问 Amazon STS 服务时的响应时间并减少延迟。

  • 建立冗余 – 您可以将工作负载内故障的影响,限制在影响控制范围可预测的少数组件范围内。使用区域 Amazon STS 端点可以确保组件的范围与会话令牌的范围保持一致。有关此可靠性支柱的更多信息,请参阅在《Amazon Well-Architected Framework》中的 使用故障隔离来保护工作负载

  • 提高会话令牌有效性 – 来自区域 Amazon STS 端点的会话令牌在所有 Amazon Web Services 区域 中都有效。来自全球 STS 端点的会话令牌仅在默认启用的 Amazon Web Services 区域 中有效。如果打算为您的账户启用新的区域,您可以使用来自区域 Amazon STS 端点的会话令牌。如果选择使用全球端点,您必须更改全球端点的 Amazon STS 会话令牌的区域兼容性。这样做可以确保令牌在所有 Amazon Web Services 区域 中都有效。

管理全球终端节点会话令牌

默认情况下,为所有 Amazon Web Services 中的操作启用了大多数 Amazon Web Services 区域。将自动激活这些区域以用于 Amazon STS。必须手动启用某些区域,例如,亚太区域(香港)。要了解启用和禁用 Amazon Web Services 区域 的更多信息,请参阅《Amazon Account Management Reference Guide》中的 Specify which Amazon Web Services 区域 your account can use。在启用这些 Amazon 区域时,将自动激活这些区域以用于 Amazon STS。您无法为禁用的区域激活 Amazon STS 端点。在所有 Amazon Web Services 区域 都有效的令牌包含的字符数比在默认启用的区域中有效的令牌多。更改该设置可能会影响临时存储令牌的现有系统。

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 Amazon API 更改该设置。

更改全球终端节点的会话令牌的区域兼容性(控制台)
  1. 以根用户或有权执行 IAM 管理任务的用户身份登录。要更改会话令牌的兼容性,您必须具有允许 iam:SetSecurityTokenServicePreferences 操作的策略。

  2. 打开 IAM 控制台。在导航窗格中,选择账户设置

  3. Security Token Service (STS) 部分的 Session Tokens from the STS endpoints(来自 STS 端点的会话令牌)。全球端点 表示 Valid only in Amazon Web Services 区域 enabled by default。选择 Change (更改)

  4. 更改区域兼容性对话框中,选择全部 Amazon Web Services 区域。然后选择保存更改

    注意

    在所有 Amazon Web Services 区域 都有效的令牌包含的字符数比在默认启用的区域中有效的令牌多。更改该设置可能会影响临时存储令牌的现有系统。

更改全球终端节点的会话令牌的区域兼容性 (Amazon CLI)

设置会话令牌版本。版本 1 令牌仅在默认启用的 Amazon Web Services 区域 中有效。这些令牌不适用于手动启用的区域,例如,亚太地区(香港)。版本 2 令牌在所有区域中都有效。不过,版本 2 令牌包含更多字符,可能会影响临时存储令牌的系统。

更改全球终端节点的会话令牌的区域兼容性 (Amazon API)

设置会话令牌版本。版本 1 令牌仅在默认启用的 Amazon Web Services 区域 中有效。这些令牌不适用于手动启用的区域,例如,亚太地区(香港)。版本 2 令牌在所有区域中都有效。不过,版本 2 令牌包含更多字符,可能会影响临时存储令牌的系统。

在 Amazon Web Services 区域 中激活和停用 Amazon STS

在为区域激活 STS 终端节点时,Amazon STS 可能会向您的账户中发出 Amazon STS 请求的用户和角色颁发临时凭证。然后,可以在默认启用或手动启用的任何区域中使用这些凭证。对于默认启用的区域,您必须在生成临时凭证的账户中激活该区域 STS 端点。在发出请求时,用户是登录到同一账户还是不同账户并不重要。对于手动启用的区域,您必须在发出请求的账户和生成临时凭证的账户中激活该区域。

例如,假设账户 A 中的用户要向 Amazon STS 区域端点 https://sts.us-east-2.amazonaws.com 发送 sts:AssumeRole API 请求。该请求旨在为账户 B 中名为 Developer 的角色获取临时凭证。由于该请求旨在为账户 B 中的实体创建凭证,因此,账户 B 必须激活 us-east-2 区域。账户 A(或任何其他账户)中的用户可以调用 us-east-2 终端节点,以便为账户 B 请求凭证,而无论是否在其账户中激活了该区域。

注意

活动区域适用于该账户中使用临时凭证的每个用户。要控制哪些 IAM 用户或角色可以访问区域,请在权限策略中使用 aws:RequestedRegion 条件键。

在默认启用的区域中激活或停用 Amazon STS(控制台)
  1. 以根用户或有权执行 IAM 管理任务的用户身份登录。

  2. 打开 IAM 控制台,然后在导航窗格中选择 Account settings(账户设置)。

  3. Security Token Service (STS) 部分的 Endpoints(端点)中,找到要配置的区域,然后在 STS status(STS 状态)列中选择 Active(活动)或 Inactive(非活动)。

  4. 在打开的对话框中,选择 Activate(激活)或 Deactivate(停用)。

对于必须启用的区域,当您启用相关区域时,我们会自动激活 Amazon STS。启用区域后,Amazon STS 对于该区域将始终处于活动状态,您无法将其停用。要了解如何启用默认禁用的区域,请参阅《Amazon Account Management 参考指南》中的指定您的账户可以使用的 Amazon Web Services 区域

编写代码以使用 Amazon STS 区域

在激活区域后,您可以将 Amazon STS API 调用定向到该区域。以下 Java 代码段说明了如何配置 AWSSecurityTokenService 对象,以向欧洲(爱尔兰)(eu-west-1) 区域发出请求。

EndpointConfiguration regionEndpointConfig = new EndpointConfiguration("https://sts.eu-west-1.amazonaws.com", "eu-west-1"); AWSSecurityTokenService stsRegionalClient = AWSSecurityTokenServiceClientBuilder.standard() .withCredentials(credentials) .withEndpointConfiguration(regionEndpointConfig) .build();

Amazon STS 建议您调用区域终端节点。要了解如何手动启用的区域,请参阅《Amazon Account Management Reference Guide》中的 Specify which Amazon Web Services 区域 your account can use

在该示例中,第一行将名为 regionEndpointConfigEndpointConfiguration 对象实例化,并将端点的 URL 和 Amazon Web Services 区域 作为参数传递。

要了解如何使用 Amazon SDK 的环境变量设置 Amazon STS 区域端点,请参阅 Amazon SDK 和工具参考指南中的 Amazon STS 区域化端点

有关所有其他的语言和编程环境组合,请参阅相关开发工具包的文档

区域和端点

下表列出了区域及其终端节点。其中指示哪些是默认激活的,哪些是可激活或停用的。

区域名称 终端节点 默认情况下激活 手动激活/停用
--全球-- sts.amazonaws.com 不支持
美国东部(俄亥俄州) sts.us-east-2.amazonaws.com
美国东部(弗吉尼亚州北部) sts.us-east-1.amazonaws.com 不支持
美国西部(北加利福尼亚) sts.us-west-1.amazonaws.com
US West(Oregon) sts.us-west-2.amazonaws.com
非洲(开普敦) sts.af-south-1.amazonaws.com 否¹ 不支持
亚太地区(香港) sts.ap-east-1.amazonaws.com 否¹ 不支持
亚太地区(海得拉巴) sts.ap-south-2.amazonaws.com 否¹ 不支持
亚太地区(雅加达) sts.ap-southeast-3.amazonaws.com 否¹ 不支持
亚太地区(墨尔本) sts.ap-southeast-4.amazonaws.com 否¹ 不支持
亚太地区(孟买) sts.ap-south-1.amazonaws.com
亚太地区(大阪) sts.ap-northeast-3.amazonaws.com
亚太地区(首尔) sts.ap-northeast-2.amazonaws.com
亚太地区(新加坡) sts.ap-southeast-1.amazonaws.com
亚太地区(悉尼) sts.ap-southeast-2.amazonaws.com
Asia Pacific(Tokyo) sts.ap-northeast-1.amazonaws.com
Canada(Central) sts.ca-central-1.amazonaws.com
加拿大西部(卡尔加里) sts.ca-west-1.amazonaws.com
中国(北京) sts.cn-north-1.amazonaws.com.cn 是²
中国(宁夏) sts.cn-northwest-1.amazonaws.com.cn 是²
欧洲地区(法兰克福) sts.eu-central-1.amazonaws.com
欧洲地区(爱尔兰) sts.eu-west-1.amazonaws.com
欧洲地区(伦敦) sts.eu-west-2.amazonaws.com
欧洲地区(米兰) sts.eu-south-1.amazonaws.com 否¹ 不支持
欧洲地区(巴黎) sts.eu-west-3.amazonaws.com
欧洲(西班牙) sts.eu-south-2.amazonaws.com 否¹ 不支持
欧洲地区(斯德哥尔摩) sts.eu-north-1.amazonaws.com
欧洲(苏黎世) sts.eu-central-2.amazonaws.com 否¹ 不支持
以色列(特拉维夫) sts.il-central-1.amazonaws.com 否¹ 不支持
中东(巴林) sts.me-south-1.amazonaws.com 否¹ 不支持
中东(阿联酋) sts.me-central-1.amazonaws.com 否¹ 不支持
South America(São Paulo) sts.sa-east-1.amazonaws.com

您必须启用区域才能使用它。这会自动激活 Amazon STS。您无法在这些区域中手动激活或停用 Amazon STS。

²要在中国使用 Amazon,您需要中国 Amazon 的特定账户和凭证。

Amazon CloudTrail 和区域终端节点

对区域性和全球性端点的调用将在 Amazon CloudTrail 的 tlsDetails 字段中记录。对区域性端点(例如 us-east-2.amazonaws.com)的调用将在 CloudTrail 中记录到相应的区域。对全球终端节点 (如 sts.amazonaws.com) 的调用会记录为对全球服务的调用。全球性 Amazon STS 端点的事件将记录到 us-east-1 区域。

注意

只能对支持此字段的服务查看 tlsDetails。请参阅《Amazon CloudTrail 用户指南》中的在 CloudTrail 中支持 TLS 详细信息的服务

有关更多信息,请参阅 使用 Amazon CloudTrail 记录 IAM 和 Amazon STS API 调用