為 SAML 2.0 聯合身分建立角色 (主控台) - AWS Identity and Access Management

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

為 SAML 2.0 聯合身分建立角色 (主控台)

您可以使用 SAML 2.0 聯合,而不是在 中建立 IAM 使用者。 AWS 帳戶使用身分提供者 (IdP),您可以在 外部管理您的使用者身分, AWS 並授予這些外部使用者身分存取您帳戶中 AWS 資源的許可。如需有關聯合身分與身分提供者的詳細資訊,請參閱 身分提供者與聯合

注意

若要改善聯合彈性,建議您將 IdP 和 AWS 聯合設定為支援多個 SAML 登入端點。如需詳細資訊,請參閱 AWS 安全部落格文章如何使用區域 SAML 端點進行容錯移轉

建立適用於 SAML 的角色的先決條件

您必須先完成以下先決條件步驟,然後才能建立用於 SAML 2.0 聯合身分的角色。

準備建立用於 SAML 2.0 聯合身分的角色
  1. 在為以 SAML 為基礎的聯合身分建立角色之前,必須在 IAM 中建立 SAML 提供者。如需詳細資訊,請參閱 在 IAM 中建立 SAML 身分提供者

  2. 為已進行 SAML 2.0–身分驗證的使用者要擔任的角色準備政策。正如任何角色一樣,SAML 聯合身分的角色含有兩項政策。其中一項是角色信任政策,指定擔任該角色的對象。另一個是 IAM 許可政策,指定聯合身分使用者被允許或拒絕存取 AWS 的動作和資源。

    當您為您的角色建立信任政策時,必須使用三個值,以確保只有您的應用程式可擔任該角色:

    • 對於 Action 元素,可使用 sts:AssumeRoleWithSAML 動作。

    • 如需 Principal 元素,請使用字串 {"Federated":ARNofIdentityProvider}。將 ARNofIdentityProvider 取代為您在 步驟 1 中建立的 SAML 身分提供者 ARN。

    • 對於 Condition元素,請使用 StringEquals條件來測試來自 SAML 回應的saml:aud屬性是否符合您的瀏覽器在登入主控台時顯示的 URL。此登入端點 URL 是您身分提供者的 SAML 收件人屬性。您可以在特定區域中包含登入 URLs。 AWS 建議使用區域端點而非全域端點來改善聯合彈性。對於可能的 region-code 值清單,請參閱 AWS 登入端點中的 Region (區域) 欄位。

      如果需要 SAML 加密,登入 URL 必須包含 AWS 指派給 SAML 供應商的唯一識別符。您可以在 IAM 主控台中選取身分提供者來顯示詳細資訊頁面,以檢視唯一識別符。

      https://region-code.signin.aws.amazon.com/saml/acs/IdP-ID

    以下範例信任政策是專為 SAML 聯合身分使用者設計的政策:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRoleWithSAML", "Principal": {"Federated": "arn:aws:iam::account-id:saml-provider/PROVIDER-NAME"}, "Condition": {"StringEquals": {"SAML:aud": "https://region-code.signin.aws.amazon.com/saml"}} } }

    將主體 ARN 取代為您在 IAM 中所建立的 SAML 提供者的實際 ARN。它會有自己的帳戶 ID 和提供者名稱。

建立 SAML 的角色

完成必要步驟後,您可以建立以 SAML 為基礎的聯合身分角色。

若要為以 SAML 為基礎的聯合身分建立角色
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在 IAM 主控台的導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。

  3. 選擇 SAML 2.0 federation (SAML 2.0 聯合身分) 角色類型。

  4. 針對 Select a SAML provider (選擇 SAML 提供者),選擇您角色的提供者。

  5. 選擇 SAML 2.0 存取層級的方法。

    • 選擇僅允許程式設計存取,以建立可從 AWS API 或 以程式設計方式擔任的角色 AWS CLI。

    • 選擇允許程式設計和 AWS Management Console 存取,以建立可以程式設計方式從 擔任的角色 AWS Management Console。

    同時建立類似的角色,但也可以從主控台所擔任的角色包括具有特定條件的信任政策。該條件明確確保 SAML 受眾 (SAML:aud 屬性) 設定為 AWS SAML 供應商的登入端點。

  6. 定義屬性的程序會根據存取類型而有所不同。

    • 如果要為程式設計存取建立角色,請從 Attribute (屬性) 清單選取屬性。然後,在 Value (值) 方塊中,輸入包含在角色中的值。這會限制從身分提供者存取使用者的角色,其身分提供者的 SAML 身分驗證回應 (聲明) 包括您指定的屬性。您必須至少指定一個屬性,以確保您的角色僅限於組織中的一部分使用者。

    • 如果您要為程式設計和 AWS Management Console 存取建立角色,登入端點區段會定義您的瀏覽器在登入主控台時顯示的 URL。此端點是您身分提供者的 SAML 收件人屬性,會映射到saml:aud內容索引鍵。如需詳細資訊,請參閱為身分驗證回應設定 SAML 聲明

      1. 選擇區域端點或非區域端點。我們建議您使用多個區域 SAML 登入端點來改善聯合彈性。

      2. 針對區域,選擇 SAML 供應商支援 AWS 登入的區域。

      3. 若要讓登入 URLs 包含唯一識別符,請選取登入端點是否包含 AWS 指派給 SAML 身分提供者的唯一識別符。加密的 SAML 聲明需要此選項。如需詳細資訊,請參閱SAML 2.0 聯合身分

  7. 若要向信任政策新增更多與屬性相關的條件,請選擇 Condition (optional) (條件 (選用)),並選取其他條件,然後指定值。

    注意

    該清單包含最常用的 SAML 屬性。IAM 支援可用於建立條件的其他屬性。如需所支援屬性的清單,請參閱 SAML 聯合身分的可用金鑰。如果您需要不在清單中的受支援 SAML 屬性的條件,您可以手動新增該條件。若要這麼做,請在建立角色後編輯信任政策。

  8. 檢閱您的 SAML 2.0 信任資訊,然後選擇 Next (下一步)。

  9. IAM 包含您帳戶中的 AWS 受管和客戶受管政策清單。選取用於許可政策的政策,或者選擇 Create policy (建立政策) 以開啟新的瀏覽器標籤,並從頭建立新的政策。如需詳細資訊,請參閱建立 IAM 政策。在您建立政策後,關閉該標籤並返回您的原始標籤。選取您希望 OIDC 聯合身分使用者具有的許可政策旁的核取方塊。如果您希望,您目前可以不選取政策,稍後再將政策連接到角色。角色預設沒有任何許可。

  10. (選用) 設定許可界限。這是進階功能。

    開啟 Permissions boundary (許可界限) 區段,並選擇 Use a permissions boundary to control the maximum role permissions (使用許可界限來控制角色許可上限)。選取用於許可界限的政策。

  11. 選擇 Next (下一步)

  12. 選擇下一步:檢閱

  13. Role name (角色名稱) 中,輸入角色名稱。角色名稱在您的 中必須是唯一的 AWS 帳戶。它們無法透過大小寫進行區分。例如,您無法建立名為 PRODROLEprodrole 的角色。由於其他 AWS 資源可能會參考角色,因此您無法在建立角色之後編輯角色的名稱。

  14. (選用) 在 Description (說明) 中,輸入新角色的說明。

  15. Step 1: Select trusted entities (步驟 1:選取受信任的實體) 或者 Step 2: Add permissions (步驟 2:新增許可) 區段中選擇 Edit (編輯),可編輯使用案例和角色許可。

  16. (選用) 藉由連接標籤作為鍵值對,將中繼資料新增至角色。如需有關在 IAM 中使用標籤的詳細資訊,請參閱 AWS Identity and Access Management 資源的標籤

  17. 檢閱角色,然後選擇 Create role (建立角色)。

在您建立角色之後,您透過 AWS的相關資訊設定您的身分提供者軟體來完成 SAML 信任。此資訊包您要聯合身分使用者使用的角色。這是指在您的 IdP 和 AWS之間設定依賴方信任。如需詳細資訊,請參閱使用依賴方信任設定您的 SAML 2.0 IdP 並新增宣告