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

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

您可以使用 SAML 2.0 聯合身分,而不是在 AWS 帳戶 中建立 IAM 使用者。您可以使用身分提供者 (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/ 的 IAM 主控台。

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

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

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

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

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

    • 選擇 Allow programmatic and AWS Management Console access (允許程式設計和 存取) 以建立可以透過程式設計方式從 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. 選擇 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 並新增宣告