

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

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

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

**注意**  
若要改善聯合彈性，建議您將 IdP 和 AWS 聯合設定為支援多個 SAML 登入端點。如需詳細資訊，請參閱 AWS 安全部落格文章[如何使用區域 SAML 端點進行容錯移轉](https://aws.amazon.com/blogs//security/how-to-use-regional-saml-endpoints-for-failover)。

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


您必須先完成以下先決條件步驟，然後才能建立用於 SAML 2.0 聯合身分的角色。<a name="saml-prereqs"></a>

**準備建立用於 SAML 2.0 聯合身分的角色**

1. <a name="idpsamlstep1"></a>在為以 SAML 為基礎的聯合身分建立角色之前，必須在 IAM 中建立 SAML 提供者。如需詳細資訊，請參閱 [在 IAM 中建立 SAML 身分提供者](id_roles_providers_create_saml.md)。

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

   當您為您的角色建立信任政策時，必須使用三個值，以確保只有您的應用程式可擔任該角色：
   + 對於 `Action` 元素，可使用 `sts:AssumeRoleWithSAML` 動作。
   + 如需 `Principal` 元素，請使用字串 `{"Federated":ARNofIdentityProvider}`。將 `ARNofIdentityProvider` 取代為您在 [Step 1](#idpsamlstep1) 中建立的 [SAML 身分提供者](id_roles_providers_saml.md) ARN。
   + 對於 `Condition` 元素，請使用 `StringEquals` 條件來測試 SAML 回應中的 `saml:aud` 屬性是否與登入主控台時瀏覽器顯示的 URL 相符。此登入端點 URL 是身分提供者的 SAML 收件人屬性。您可以在特定區域中包含登入 URLs。 AWS 建議使用區域端點而非全域端點來改善聯合彈性。對於可能的 *region-code* 值清單，請參閱 [AWS 登入端點](https://docs.aws.amazon.com/general/latest/gr/signin-service.html)中的 **Region** (區域) 欄位。

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

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

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

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRoleWithSAML",
           "Principal": {
               "Federated": "arn:aws:iam::111122223333: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 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

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

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

1. 針對 **Select a SAML provider** (選擇 SAML 提供者)，選擇您角色的提供者。

1. 選擇 SAML 2.0 存取層級的方法。
   + 選擇**僅允許程式設計存取**，以建立可從 AWS API 或 以程式設計方式擔任的角色 AWS CLI。
   + 選擇**允許程式設計和 AWS 管理主控台 存取**，以建立可以程式設計方式從 擔任的角色 AWS 管理主控台。

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

1. 定義屬性的程序因存取類型而異。
   + 如果要為程式設計存取建立角色，請從 **Attribute (屬性)** 清單選取屬性。然後，在 **Value** (值) 方塊中，輸入包含在角色中的值。這會限制從身分提供者存取使用者的角色，其身分提供者的 SAML 身分驗證回應 (聲明) 包括您指定的屬性。您必須至少指定一個屬性，以確保您的角色僅限於組織中的一部分使用者。
   + 如果您要為程式設計和 AWS 管理主控台 存取建立角色，**登入端點**區段會定義您的瀏覽器在登入主控台時顯示的 URL。此端點是身分提供者的 SAML 收件人屬性，會映射至 [`saml:aud`](reference_policies_iam-condition-keys.md#condition-keys-saml) 內容索引鍵。如需詳細資訊，請參閱[為身分驗證回應設定 SAML 聲明](id_roles_providers_create_saml_assertions.md)。

     1. 選擇**區域端點**或**非區域端點**。建議使用多個區域 SAML 登入端點，以便改善聯合身分彈性。

     1. 針對**區域**，選擇 SAML 供應商支援 AWS 登入的區域。

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

1. 若要向信任政策新增更多與屬性相關的條件，請選擇 **Condition (optional)** (條件 (選用))，並選取其他條件，然後指定值。
**注意**  
該清單包含最常用的 SAML 屬性。IAM 支援可用於建立條件的其他屬性。如需所支援屬性的清單，請參閱 [SAML 聯合身分的可用金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#condition-keys-saml)。如果您需要不在清單中的受支援 SAML 屬性的條件，您可以手動新增該條件。若要這麼做，請在建立角色後編輯信任政策。

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

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

1. (選用) 設定[許可界限](access_policies_boundaries.md)。這是進階功能。

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

1. 選擇**下一步**。

1. 選擇下**一步：檢閱**。

1. 在 **Role name** (角色名稱) 中，輸入角色名稱。角色名稱在您的 中必須是唯一的 AWS 帳戶。它們不區分大小寫。例如，您無法建立名為 **PRODROLE** 和 **prodrole** 的角色。由於其他 AWS 資源可能會參考角色，因此您無法在建立角色之後編輯角色的名稱。

1. (選用) 在 **Description** (說明) 中，輸入新角色的說明。

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

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

1. 檢閱角色，然後選擇 **Create role** (建立角色)。

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