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

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

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

您可以使用 SAML 2.0 聯盟,而不是在您 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 屬性是否與 AWS的 SAML 聯合身分端點相符。

    以下範例信任政策是專為 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://signin.aws.amazon.com/saml"}} } }

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

建立 SAML 的角色

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

若要為以 SAML 為基礎的聯合身分建立角色
  1. 登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/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 屬性) 設定為 SAML 的 AWS 登入端點 (https://signin.aws.amazon.com/saml)。

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

    如果要為程式設計和主控台存取建立角色,則會自動新增 SAML:aud 屬性並將其設定為 AWS SAML 端點的 URL (https://signin.aws.amazon.com/saml)。

  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. 選擇下一步

  12. 選擇下一步:檢閱

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

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

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

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

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

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