為 SAML 2.0 聯合身分建立角色 (主控台)
您可以使用 SAML 2.0 聯合身分,而不是在 AWS 帳戶 中建立 IAM 使用者。您可以使用身分提供者 (IdP),管理 AWS 外部的使用者身分,並提供這些外部使用者身分許可,以存取您帳戶中的 AWS 資源。如需有關聯合身分與身分提供者的詳細資訊,請參閱 身分提供者與聯合。
注意
若要改善聯合彈性,建議您將 IdP 和 AWS 聯合設定為支援多個 SAML 登入端點。如需詳細資訊,請參閱 AWS 安全部落格文章如何使用區域 SAML 端點進行容錯移轉
建立適用於 SAML 的角色的先決條件
您必須先完成以下先決條件步驟,然後才能建立用於 SAML 2.0 聯合身分的角色。
準備建立用於 SAML 2.0 聯合身分的角色
-
在為以 SAML 為基礎的聯合身分建立角色之前,必須在 IAM 中建立 SAML 提供者。如需詳細資訊,請參閱 在 IAM 中建立 SAML 身分提供者。
-
為已進行 SAML 2.0–身分驗證的使用者要擔任的角色準備政策。正如任何角色一樣,SAML 聯合身分的角色含有兩項政策。其中一項是角色信任政策,指定擔任該角色的對象。另一項政策是 IAM 許可政策,其指定聯合身分使用者被允許或拒絕存取的 AWS 動作和資源。
當您為您的角色建立信任政策時,必須使用三個值,以確保只有您的應用程式可擔任該角色:
-
對於
Action
元素,可使用sts:AssumeRoleWithSAML
動作。 -
如需
Principal
元素,請使用字串{"Federated":
。將ARNofIdentityProvider
}
取代為您在 步驟 1 中建立的 SAML 身分提供者 ARN。ARNofIdentityProvider
-
對於
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 為基礎的聯合身分建立角色
簽署 AWS Management Console,並開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 -
在 IAM 主控台的導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
選擇 SAML 2.0 federation (SAML 2.0 聯合身分) 角色類型。
-
針對 Select a SAML provider (選擇 SAML 提供者),選擇您角色的提供者。
-
選擇 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)。 -
-
如果要為程式設計存取建立角色,請從 Attribute (屬性) 清單選取屬性。然後,在 Value (值) 方塊中,輸入包含在角色中的值。這會限制從身分提供者存取使用者的角色,其身分提供者的 SAML 身分驗證回應 (聲明) 包括您指定的屬性。您必須至少指定一個屬性,以確保您的角色僅限於組織中的一部分使用者。
如果要為程式設計和主控台存取建立角色,則會自動新增
SAML:aud
屬性並將其設定為 AWS SAML 端點的 URL (https://signin.aws.amazon.com/saml)。 -
若要向信任政策新增更多與屬性相關的條件,請選擇 Condition (optional) (條件 (選用)),並選取其他條件,然後指定值。
注意
該清單包含最常用的 SAML 屬性。IAM 支援可用於建立條件的其他屬性。如需所支援屬性的清單,請參閱 SAML 聯合身分的可用索引鍵。如果您需要不在清單中的受支援 SAML 屬性的條件,您可以手動新增該條件。若要這麼做,請在建立角色後編輯信任政策。
-
檢閱您的 SAML 2.0 信任資訊,然後選擇 Next (下一步)。
-
IAM 包含您帳戶中的 AWS 受管和客戶管理政策清單。選取用於許可政策的政策,或者選擇 Create policy (建立政策) 以開啟新的瀏覽器標籤,並從頭建立新的政策。如需詳細資訊,請參閱建立 IAM 政策。在您建立政策後,關閉該標籤並返回您的原始標籤。選取您希望 OIDC 聯合身分使用者具有的許可政策旁的核取方塊。如果您希望,您目前可以不選取政策,稍後再將政策連接到角色。角色預設沒有任何許可。
-
(選用) 設定許可界限。這是進階功能。
開啟 Permissions boundary (許可界限) 區段,並選擇 Use a permissions boundary to control the maximum role permissions (使用許可界限來控制角色許可上限)。選取用於許可界限的政策。
-
選擇 Next (下一步)。
-
選擇下一步:檢閱。
-
在 Role name (角色名稱) 中,輸入角色名稱。角色名稱在您的 AWS 帳戶 內必須是獨一無二的。它們無法透過大小寫進行區分。例如,您無法建立名為
PRODROLE
和prodrole
的角色。因為有其他 AWS 資源可能會參照角色,所以您無法在建立角色之後編輯角色名稱。 -
(選用) 在 Description (說明) 中,輸入新角色的說明。
-
在 Step 1: Select trusted entities (步驟 1:選取受信任的實體) 或者 Step 2: Add permissions (步驟 2:新增許可) 區段中選擇 Edit (編輯),可編輯使用案例和角色許可。
-
(選用) 藉由連接標籤作為鍵值對,將中繼資料新增至角色。如需有關在 IAM 中使用標籤的詳細資訊,請參閱 AWS Identity and Access Management 資源的標籤。
-
檢閱角色,然後選擇 Create role (建立角色)。
在您建立角色之後,您透過 AWS 的相關資訊設定您的身分提供者軟體來完成 SAML 信任。此資訊包您要聯合身分使用者使用的角色。這是指在您的 IdP 和 AWS 之間設定依賴方信任。如需詳細資訊,請參閱使用依賴方信任設定您的 SAML 2.0 IdP 並新增宣告。