在 AWS STS 中管理 AWS 區域 - AWS Identity and Access Management

在 AWS STS 中管理 AWS 區域

區域端點是 AWS Web 服務特定區域內進入點的 URL。AWS 建議使用區域 AWS Security Token Service (AWS STS) 端點 (而不是全域端點),以降低延遲、內建冗餘並提高工作階段權杖有效性。雖然全域 (舊式) AWS STS 端點 https://sts.amazonaws.com 具有高度可用性,但它託管在單一 AWS 區域美國東部 (維吉尼亞北部),並且與其他端點一樣,它不會自動容錯移轉至其他區域中的端點。

  • 減少延遲 – 透過讓您的 AWS STS 呼叫與您服務和應用程式地理位置較近的端點,您可以以較低的延遲存取 AWS STS 服務,獲得更佳的回應時間。

  • 內建備援 – 您可以將工作負載內失敗的影響限制為有限數量的元件,且具有可預測的影響限制範圍。使用區域 AWS STS 端點可讓您將組件的範圍與工作階段字符的範圍維持一致。如需有關此可靠性支柱的詳細資訊,請參閱 AWS Well-Architected Framework 中的使用故障隔離來保護工作負載

  • 提高工作階段權杖有效性 – 區域性 AWS STS 端點的工作階段權杖在所有 AWS 區域 都有效。來自全域 STS 端點的工作階段權杖僅在預設啟用的 AWS 區域 中有效。如果您想要為帳戶啟用新的區域,您可以從區域 AWS STS 端點使用工作階段權杖。如果您選擇使用全域端點,您必須變更全域端點的 AWS STS 工作階段權杖區域相容性。這樣做可確保權杖在所有 AWS 區域 都有效。

如需 AWS STS 區域和端點的清單,請參閱 AWS STS 區域與端點

在 AWS 區域 中啟用及停用 AWS STS

啟用區域的 STS 端點時,則 AWS STS 可以在提出 AWS STS 請求的帳戶中對使用者和角色發出臨時性憑證。然後,您就可以在預設啟用或手動啟用的任何區域中使用這些憑證。針對預設情況下便啟用的區域,您必須在產生臨時憑證的帳戶中啟用區域性 STS 端點。提出請求時使用者登入的是相同帳戶或不同帳戶並不重要。針對需手動啟用的區域,您必須在提出請求的帳戶以及產生臨時憑證的帳戶中啟用區域。

例如,假設帳戶 A 中的使用者想要傳送 sts:AssumeRole API 請求到 AWS STS 區域端點 https://sts.us-west-2.amazonaws.com。該請求用於帳戶 B 中名為 Developer 的角色的暫時憑證。由於請求是為帳戶 B 中的實體建立憑證,因此帳戶 B 必須啟用 us-west-2 區域。來自帳戶 A (或任何其他帳戶) 的使用者可以呼叫 us-west-2 AWS STS 端點以請求帳戶 B 的憑證,無論該帳戶中是否已啟用該區域。

注意

在該帳戶中使用臨時性憑證的每個人都可使用作用中的區域。若要控制哪些 IAM 使用者或角色可以存取區域,請在許可政策中使用 aws:RequestedRegion 條件金鑰。

在預設為啟用的區域中啟用或停用 AWS STS (主控台)
  1. 以具有 IAM 管理任務執行許可的根使用者或使用者身分來登入。

  2. 開啟 IAM 主控台,然後在導覽窗格中選擇 Account settings (帳戶設定)。

  3. Security Token Service (STS)Endpoints (端點) 區段中,找到您想要設定的區域,然後在 STS status (STS 狀態) 欄中選擇 Active (作用中) 或 Inactive (非作用中)。

  4. 在開啟的對話方塊中,選擇 Activate (啟用) 或 Deactivate (停用)。

對於必須啟用的區域,我們會在您啟用區域時自動啟用 AWS STS。啟用「區域」後,該區域的 AWS STS 永遠處於作用中狀態,而且您無法將其停用。若要了解如何啟用預設停用的區域,請參閱 AWS Account Management Reference Guide 中的 Specifying which AWS 區域 your account can use

撰寫程式碼以使用 AWS STS 區域

啟用區域後,您就可以將 AWS STS API 呼叫導向該區域。以下 Java 程式碼片段示範如何設定 AWSSecurityTokenService 物件,以對歐洲 (米蘭) (eu-south-1) 區域提出請求。

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

AWS STS 建議您對區域端點發出呼叫。若要了解如何手動啟用區域,請參閱 AWS Account Management Reference Guide 中的Specify which AWS 區域 your account can use

在這個範例中,第一行會執行個體化稱為 regionEndpointConfigEndpointConfiguration 物件,並將端點和 AWS 區域 的 URL 做為參數傳遞。

若要了解如何使用 AWS 開發套件的環境變數設定 AWS STS 的區域端點,請參閱 AWS 開發套件和工具參考指南中的 AWS STS 區域端點

對於所有其他語言和程式設計環境組合,請參閱相關軟體開發套件的文件

管理全域端點的工作階段權杖

在預設情況下,會在所有 AWS 區域 中啟用大多數 AWS 服務 的操作。會自動啟用這些區域來 AWS STS 與搭配使用。亞太區域 (香港) 之類的某些區域必須手動啟用。若要了解如何啟用和停用 AWS 區域,請參閱 AWS Account Management Reference Guide 中的 Specify which AWS 區域 your account can use。啟用這些 AWS 區域時,就會自動啟用這些區域與 AWS STS 搭配使用的功能。您不能為已停用的區域啟用 AWS STS 端點。在所有 AWS 區域都有效的工作階段權杖包含的字元多於在預設啟用區域中有效的權杖。變更此設定可能會影響暫時存放權杖的現有系統。

您可以使用 AWS Management Console、AWS CLI 或 AWS API 來變更此設定。

變更全域端點工作階段權杖的區域相容性 (主控台)
  1. 以具有 IAM 管理任務執行許可的根使用者或使用者身分來登入。若要變更工作階段權杖的相容性,您必須擁有允許 iam:SetSecurityTokenServicePreferences 動作的政策。

  2. 開啟 IAM 主控台。在導覽窗格中,選擇 Account settings (帳戶設定)

  3. Security Token Service (STS) (安全權杖服務 (STS)) 區段的 Session Tokens from the STS endpoints (來自 STS 端點的工作階段權杖) 下方。Global endpoint (全域端點) 表示 Valid only in AWS 區域 enabled by default。選擇 Change (變更)

  4. Change region compatibility (變更區域相容性) 對話方塊中,選擇 All AWS 區域 (全部 )。接著選擇 Save changes (儲存變更)

    注意

    在所有 AWS 區域都有效的工作階段權杖包含的字元多於在預設啟用區域中有效的權杖。變更此設定可能會影響暫時存放權杖的現有系統。

變更全域端點工作階段權杖的區域相容性 (AWS CLI)

設定工作階段字符版本。版本 1 權杖僅在預設可用的 AWS 區域 中有效。這些權杖不適用於手動啟用的區域,例如亞太區域 (香港)。版本 2 權杖在所有區域都有效。不過,版本 2 權杖包含較多字元且可能會影響暫時存放權杖的系統。

變更全域端點工作階段權杖的區域相容性 (AWS API)

設定工作階段字符版本。版本 1 權杖僅在預設可用的 AWS 區域 中有效。這些權杖不適用於手動啟用的區域,例如亞太區域 (香港)。版本 2 權杖在所有區域都有效。不過,版本 2 權杖包含較多字元且可能會影響暫時存放權杖的系統。