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

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

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

建立適用於 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. 針對 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 存取) 以建立可以透過程式設計方式從 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. 若要向信任政策新增更多與屬性相關的條件,請選擇 Add condition (optional) (新增條件 (選用)),並選取其他條件,然後指定值。

    注意

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

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

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

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

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

  11. 選擇 Next: Tags (下一步:標籤)。

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

  13. 選擇 Next:Review (下一步:檢閱)

  14. 針對 Role name (角色名稱),輸入角色名稱。角色名稱在您的 AWS 帳戶內必須是獨一無二的。它們無法透過大小寫進行區分。例如,您無法建立名為 PRODROLEprodrole 的角色。因為有其他 AWS 資源可能會參照角色,所以您無法在建立角色之後編輯角色名稱。

  15. (選用) 針對 Role description (角色說明),輸入新角色的說明。

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

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