AWS Identity and Access Management
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在 AWS 区域中管理 AWS STS

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

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

  • 建立冗余 – 可以在您的应用程序中添加代码,以将 AWS STS API 调用切换到不同的区域。这会确保在第一个区域停止响应时,您的应用程序继续运行。此冗余不是自动的;您必须在您的代码中构建此功能。

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

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

默认情况下,为所有 AWS 服务中的操作启用了大多数 AWS 区域。将自动激活这些区域以用于 AWS STS。必须手动启用某些区域,例如,亚太区域(香港)。要了解启用和禁用 AWS 区域的更多信息,请参阅 AWS General Reference 中的管理 AWS 区域。在启用这些 AWS 区域时,将自动激活这些区域以用于 AWS STS。您无法为禁用的区域激活 STS 终端节点。在所有 AWS 区域中都有效的令牌包含的字符数比在默认启用的区域中有效的令牌多。更改该设置可能会影响临时存储令牌的现有系统。

您可以使用 AWS 管理控制台、AWS CLI 或 AWS API 更改该设置。

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

  1. 以有权执行 IAM 管理任务的 根用户 或 IAM 用户身份登录。要更改会话令牌的兼容性,您必须具有允许 iam:SetSecurityTokenServicePreferences 操作的策略。

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

  3. 3.如有必要,请展开 Security Token Service (STS) 部分。在 Global endpoint (全球终端节点) 旁边的第一个表中,Region compatibility of session tokens (会话令牌的区域兼容性) 列指示 Valid only in AWS Regions enabled by default。选择 Change

  4. 4.在 Change region compatibility of session tokens for global endpoint (更改全球终端节点的会话令牌的区域兼容性) 对话框中,选择 Valid in all AWS Regions (在所有 AWS 区域中都有效)。然后选择 Save changes (保存更改)

    注意

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

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

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

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

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

在 AWS 区域中激活和停用 AWS STS

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

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

注意

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

在默认启用的区域中激活或停用 AWS STS(控制台)

  1. 以有权执行 IAM 管理任务的 根用户 或 IAM 用户身份登录。

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

  3. 如有必要,请展开 Security Token Service (STS) 列表,找到要激活的区域,然后选择激活停用。默认情况下,不会启用某些区域,例如亚太地区(香港)区域。在这种情况下,在手动启用区域时,将自动激活 STS。从那时起,始终为这些区域激活 AWS STS,而无法将其停用。要了解如何手动启用区域,请参阅 AWS General Reference 中的管理 AWS 区域

写入用于使用 AWS STS 区域的代码

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

AWSSecurityTokenServiceClient stsClient = new AWSSecurityTokenServiceClient(); stsClient.setRegion("eu-west-1"); stsClient.setEndpoint("sts.eu-west-1.amazonaws.com.cn");

AWS STS 建议您同时使用 setRegionsetEndpoint 方法以对区域终端节点进行调用。您可以仅将 setRegion 方法用于手动启用的区域,例如,亚太区域(香港)。在这种情况下,调用将定向到 STS 区域终端节点。要了解如何手动启用区域,请参阅 AWS General Reference 中的管理 AWS 区域。如果仅将 setRegion 方法用于默认启用的区域,调用将定向到全球终端节点 https://sts.amazonaws.com

在该示例中,第一行实例化一个 AWSSecurityTokenServiceClient 对象 (名为 stsClient)。第二行通过调用 stsClient 方法并将终端节点的 URL 作为唯一参数传递来配置 setEndpoint 对象。使用此 stsClient 对象的所有 API 调用现在都定向到指定终端节点。

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

区域终端节点

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

区域名称 终端节点 默认激活 可以激活/停用
--全球-- sts.amazonaws.com.cn
美国东部(俄亥俄州) sts.us-east-2.amazonaws.com
美国东部(弗吉尼亚北部) sts.us-east-1.amazonaws.com
美国西部(加利福尼亚北部) sts.us-west-1.amazonaws.com
美国西部(俄勒冈) sts.us-west-2.amazonaws.com
加拿大 (中部) sts.ca-central-1.amazonaws.com
亚太区域(东京) sts.ap-northeast-1.amazonaws.com
亚太区域(首尔) sts.ap-northeast-2.amazonaws.com
亚太地区(孟买) sts.ap-south-1.amazonaws.com
亚太区域(新加坡) sts.ap-southeast-1.amazonaws.com
亚太区域(悉尼) sts.ap-southeast-2.amazonaws.com
亚太地区(香港) sts.ap-east-1.amazonaws.com 否,直到启用了区域
Middle East (Bahrain) sts.me-south-1.amazonaws.com 否,直到启用了区域
欧洲(法兰克福) sts.eu-central-1.amazonaws.com
欧洲(爱尔兰) sts.eu-west-1.amazonaws.com
欧洲 (伦敦) sts.eu-west-2.amazonaws.com
欧洲 (巴黎) sts.eu-west-3.amazonaws.com
欧洲(斯德哥尔摩) sts.eu-north-1.amazonaws.com
南美洲(圣保罗) sts.sa-east-1.amazonaws.com

注意

与对区域服务的任何调用一样,将在 AWS CloudTrail 中记录对区域终端节点(如 us-west-2.amazonaws.com.cn)的调用。对全球终端节点 (如 sts.amazonaws.com.cn) 的调用会记录为对全球服务的调用。有关更多信息,请参阅 使用 AWS CloudTrail 记录 IAM 和 AWS STS API 调用