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

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS STS 在一個管理 AWS 區域

預設情況下, AWS Security Token Service (AWS STS) 可作為全域服務使用,且所有 AWS STS 要求都會傳送至位於的單一端點https://sts.amazonaws.com。 AWS 建議使用區域 AWS STS 端點而非全域端點,以減少延遲、建置備援,並提高工作階段 Token 有效性。

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

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

  • 增加會話令牌有效性 — 來自區域 AWS STS 端點的會話令牌在所有有效 AWS 區域。來自全域 STS 端點的工作階段權杖僅在預設啟 AWS 區域 用的情況下才有效。如果您打算為您的帳戶啟用新的區域,則可以使用區域 AWS STS 端點中的會話令牌。如果您選擇使用全域端點,則必須變更全域端點 AWS STS 工作階段權杖的區域相容性。這樣做可以確保令牌在所有有效 AWS 區域。

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

默認 AWS 區域 情況下,大多數都啟用了 AWS 服務 所有操作。這些區域會自動啟用,以便搭配使用 AWS STS。亞太區域 (香港) 之類的某些區域必須手動啟用。若要深入瞭解啟用和停用 AWS 區域,請參閱《AWS Account Management 參考指南》中的「指定 AWS 區域 您的帳戶可以使用的項目」。當您啟用這些 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. 在 [變更區域相容性] 對話方塊中,選取 [全部] AWS 區域。接著選擇 Save changes (儲存變更)

    注意

    在所有中都有效的會話令牌 AWS 區域 包含的字符比在默認情況下啟用的區域中有效的令牌更多。變更此設定可能會影響暫時存放權杖的現有系統。

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

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

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

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

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

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

例如,假設帳戶 A 中的使用者想要將 sts:AssumeRole API 要求傳送至 AWS STS 區域端點https://sts.ap-east-1.amazonaws.com。該請求用於帳戶 B 中名為 Developer 的角色的暫時憑證。由於請求是為帳戶 B 中的實體建立憑證,因此帳戶 B 必須啟用 ap-east-1 區域。來自帳戶A (或任何其他帳戶) 的使用者可以呼叫 ap-east-1 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 參考指南》中 AWS 區域 的指定帳戶可以使用的區域。

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

啟用區域後,您可以將 AWS STS API 呼叫導向至該區域。下列 Java 程式碼片段示範如何設定AWSSecurityTokenService物件以向歐洲 (Milan) (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 參考指南》中的「指定 AWS 區域 您的帳戶可以使用的項目」。

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

要了解如何使用 SDK 的環境變量設置 AWS STS 區域端點,請參閱 AWS SDK 工具參考指AWS STS 南中的AWS 區域化端點

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

區域與端點

下表列出區域及其端點。它會指出哪些是預設啟用,以及哪些可以啟用或停用。

區域名稱 端點 預設為作用中 手動啟動/停用
--全球服務-- sts.amazonaws.com
美國東部 (俄亥俄) sts.us-east-2.amazonaws.com
美國東部 (維吉尼亞北部) sts.us-east-1.amazonaws.com
美國西部 (加利佛尼亞北部) sts.us-west-1.amazonaws.com
美國西部 (奧勒岡) sts.us-west-2.amazonaws.com
Africa (Cape Town) 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
亞太區域 (東京) sts.ap-northeast-1.amazonaws.com
加拿大 (中部) 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 否¹
Europe (Paris) 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 否¹
Middle East (Bahrain) sts.me-south-1.amazonaws.com 否¹
中東 (阿拉伯聯合大公國) sts.me-central-1.amazonaws.com 否¹
南美洲 (聖保羅) sts.sa-east-1.amazonaws.com

¹ 您必須啟用區域才能使用它。這會自動啟動 AWS STS。您無法手動啟動或停用這些區域中的 AWS STS 。

² 要 AWS 在中國使用,您需要一個特定 AWS 於中國的帳戶和憑據。

AWS CloudTrail 和區域端點

對區域和全域端點的呼叫會記錄在  AWS CloudTrail 的 tlsDetails 欄位中。對區域端點的呼叫 (例如us-east-2.amazonaws.com) 會登 CloudTrail 入其適當的區域。對此全球端點 sts.amazonaws.com 的呼叫都會記錄為對全球服務的呼叫。全域 AWS STS 端點的事件會記錄到 us-east-1。

注意

只有支援此欄位的服務可檢視 tlsDetails。請參閱AWS CloudTrail 使用者指南中 CloudTrail的支援 TLS 詳細資料的服

如需更多詳細資訊,請參閱 記錄IAM和 AWS STS API通話 AWS CloudTrail