

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

# 身分集區主控台概觀
<a name="identity-pools"></a>

Amazon Cognito 身分集區為訪客 （未經驗證） 和已驗證並收到字符的使用者提供臨時 AWS 登入資料。身分集區是連結至外部身分提供者的使用者識別符存放區。

了解身分集區的功能和選項的一種方法是在 Amazon Cognito 主控台中建立一個。您可以探索不同設定對身分驗證流程、角色型和屬性型存取控制和訪客存取的影響。您可以在該處繼續進行本指南的後續章節，並將適當的元件新增至您的應用程式，以便實作身分集區身分驗證。

**Topics**
+ [建立 身分集區](#identity-pools-create)
+ [使用者 IAM 角色](#user-iam-roles)
+ [已進行身分驗證和未進行身分驗證的身分](#authenticated-and-unauthenticated-identities)
+ [啟用或停用訪客存取](#enable-or-disable-unauthenticated-identities)
+ [變更與身分類型相關聯的角色](#change-the-role-associated-with-an-identity-type)
+ [編輯身分提供者](#enable-or-edit-authentication-providers)
+ [刪除身分集區](#delete-an-identity-pool)
+ [從身分集區刪除身分](#delete-an-identity-from-an-identity-pool)
+ [使用 Amazon Cognito Sync 與身分集區](#identity-pools-sync)

## 建立 身分集區
<a name="identity-pools-create"></a>

**在主控台中建立新的身分集區**

1. 登入 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)，然後選取 **身分池**。

1. 選擇 **建立身分池**。

1. 在 **設定身分池信任** 中，為您的身分池選擇 **已驗證存取**、**訪客存取** 設定，或同時選擇。

   1. 如果您選擇 **已驗證存取**，請選取一或多個要設定為身分池中已驗證身分來源的 **身分類型**。如果您設定 **自訂開發人員提供者**，則建立身分池後無法修改或刪除。

1. 在 **設定許可** 中，為身分池中的身分驗證使用者或訪客使用者選擇預設 IAM 角色。

   1. 如果您希望 Amazon Cognito 為您建立具有基本許可和與身分池具有信任關係的新角色，請選擇 **建立新 IAM 角色**。輸入 **IAM 角色名稱** 以識別您的新角色，例如 `myidentitypool_authenticatedrole`。選取 **檢視政策文件** 以檢閱 Amazon Cognito 指派給您新 IAM 角色的許可。

   1. 如果您在 中已有要使用的角色 AWS 帳戶 ，您可以選擇使用**現有的 IAM** 角色。您必須設定 IAM 角色信任政策以包含 `cognito-identity.amazonaws.com`。將您的角色信任政策設定為僅在 Amazon Cognito 提供證據，表明請求來源為特定身分池中已驗證的使用者時，才允許 Amazon Cognito 擔任該角色。如需詳細資訊，請參閱[角色信任和許可](iam-roles.md#role-trust-and-permissions)。

1. 在 **連接身分提供者** 中，輸入您在 **設定身分池信任** 中選擇的身分提供者 (IdP) 詳細資料。系統可能會要求您提供 OAuth 應用程式用戶端資訊、選擇 Amazon Cognito 使用者集區、選擇 IAM IdP，或輸入開發人員供應商的自訂識別符。

   1. 為每個 IdP 選擇 **角色設定**。您可以為該 IdP 使用者指派設定 **已驗證角色** 時的 **預設角色**，或您可以 **選擇具有規則的角色**。使用 Amazon Cognito 使用者集區 IdP，您還可以 **選擇權杖中具有 preferred\$1role 的角色**。如需 `cognito:preferred_role` 宣告的詳細資訊，請參閱 [指定優先順序值給群組](cognito-user-pools-user-groups.md#assigning-precedence-values-to-groups)。

      1. 如果您選擇 **使用規則選擇角色**，請輸入使用者身分驗證的 **宣告** 來源、比較宣告的 **操作員**、導致符合角色選擇的 **值**，以及當符合 **角色指派** 時您要指派的 **角色**。選取 **新增另一項** 以根據不同的條件建立其他規則。

      1. 選擇 **角色解析**。當您的使用者宣告與您的規則不符時，您可以拒絕憑證或向 **已驗證角色** 發出憑證。

   1. 為每個 IdP 分別設定 **存取控制屬性**。存取控制屬性會將使用者宣告映射至 Amazon Cognito 套用至其臨時工作階段的[委託人標籤](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)。您可以建立 IAM 政策，根據您套用至其工作階段的索引標籤篩選使用者存取權限。

      1. 若不套用主要索引標籤，請選擇 **非作用中**。

      1. 若要根據 `sub` 和 `aud` 宣告套用主要索引標籤，請選擇 **使用預設對應**。

      1. 若要建立您自己的自訂屬性結構描述至主要索引標籤，請選擇 **使用自訂對應**。然後，輸入您要從每個 **宣告** 中獲取的 **標籤金鑰**，顯示於索引標籤當中。

1. 在 **設定屬性** 中，在 **身分池名稱** 下輸入一個 **名稱**。

1. 在 **基本 (傳統) 身分驗證** 下，選擇是否要 **啟用基本流程**。當基本流程使用中時，您可以略過為 IdP 所做的角色選取，並直接呼叫 [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)。如需詳細資訊，請參閱[身分集區身分驗證流程](authentication-flow.md)。

1. 如果您要將 [標籤](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) 套用至身分池，請在索引 **標籤** 底下選擇 **新增標籤**。

1. 在 **檢閱和建立** 中，確認您為新身分池所做的選擇。選取 **編輯** 以返回精靈並變更任何設定。當您完成時，請選取 **建立身分池**。

## 使用者 IAM 角色
<a name="user-iam-roles"></a>

IAM 角色會定義使用者存取 AWS 資源的許可，例如 [Amazon Cognito Sync](cognito-sync.md)。您的應用程式的使用者將會獲得您建立的角色。您可以為已驗證和未驗證的使用者指定不同的角色。若要進一步了解 IAM 角色，請參閱 [IAM 角色](iam-roles.md)。

## 已進行身分驗證和未進行身分驗證的身分
<a name="authenticated-and-unauthenticated-identities"></a>

Amazon Cognito 身分集區可支援已驗證和未驗證的身分。已驗證的身分屬於已由任何支援的身分提供者驗證的使用者。未驗證的身分則通常屬於訪客使用者。
+ 若要以公有登入供應商來設定已驗證的身分，請參閱[身分集區第三方身分提供者](external-identity-providers.md)。
+ 若要設定您自己的後端身分驗證程序，請參閱[開發人員驗證的身分](developer-authenticated-identities.md)。

## 啟用或停用訪客存取
<a name="enable-or-disable-unauthenticated-identities"></a>

 Amazon Cognito 身分集區訪客存取 （未驗證的身分） 為未向身分提供者進行身分驗證的使用者提供唯一的識別符和 AWS 登入資料。如果您的應用程式允許未登入的使用者，就可以針對未驗證的身分啟用存取權。如需詳細資訊，請參閱 [Amazon Cognito 身分集區入門](getting-started-with-identity-pools.md)。

**若要更新身分池中的訪客存取**

1. 從 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)選擇 **身分池**。選取身分池。

1. 選擇 **使用者存取權** 索引標籤。

1. 找到 **訪客存取**。在目前不支援訪客存取的身分池中，**狀態** 為 **非作用中**。

   1. 如果 **訪客存取** 已 **啟用**，而您想要停用，請選取 **停用**。

   1. 如果 **訪客存取** **非作用中**，而您想要使用，請選取 **編輯**。

      1. 為身分池中的訪客使用者選擇預設 IAM 角色。

        1. 如果您希望 Amazon Cognito 為您建立具有基本許可和與身分池具有信任關係的新角色，請選擇 **建立新 IAM 角色**。輸入 **IAM 角色名稱** 以識別您的新角色，例如 `myidentitypool_authenticatedrole`。選取 **檢視政策文件** 以檢閱 Amazon Cognito 指派給您新 IAM 角色的許可。

        1. 如果您在 中已有要使用的角色 AWS 帳戶 ，您可以選擇使用**現有的 IAM** 角色。您必須設定 IAM 角色信任政策以包含 `cognito-identity.amazonaws.com`。將您的角色信任政策設定為僅在 Amazon Cognito 提供證據，表明請求來源為特定身分池中已驗證的使用者時，才允許 Amazon Cognito 擔任該角色。如需詳細資訊，請參閱[角色信任和許可](iam-roles.md#role-trust-and-permissions)。

        1. 選取**儲存變更**。

        1. 若要啟用訪客存取權，請在 **使用者存取權** 索引標籤中選取 **啟動**。

## 變更與身分類型相關聯的角色
<a name="change-the-role-associated-with-an-identity-type"></a>

身分集區中的每個身分為已驗證或未驗證。已驗證的身分隸屬於由公有登入供應商 (Amazon Cognito 使用者集區、Login with Amazon、Sign in with Apple、Facebook、Google、SAML 或任何 OpenID Connect 供應商) 或開發人員供應商 (您自己的後端身分驗證程序) 驗證的使用者。未驗證的身分則通常屬於訪客使用者。

針對每種身分類型，都有指派的角色。此角色有附加的政策，可指定 AWS 服務 該角色可存取哪些 。當 Amazon Cognito 收到請求時，該服務會判斷身分類型、判斷指派給該身分類型的角色，並使用附屬於該角色的政策來回應。透過修改政策或將不同的角色指派給身分類型，您可以控制可以存取 AWS 服務 的身分類型。若要檢視或修改與身分集區中的角色相關聯的政策，請參閱 [AWS IAM 主控台](https://console.aws.amazon.com/iam/home)。

**若要變更身分池預設的已驗證的角色或未驗證的角色**

1. 從 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)選擇 **身分池**。選取身分池。

1. 選擇 **使用者存取權** 索引標籤。

1. 找到 **訪客存取** 或 **已驗證存取**。在目前不支援設定訪客類型的身分池中，**狀態** 為 **非作用中**。選擇 **Edit** (編輯)。

1. 為身分池中的訪客或已驗證的使用者選擇預設 IAM 角色。

   1. 如果您希望 Amazon Cognito 為您建立具有基本許可和與身分池具有信任關係的新角色，請選擇 **建立新 IAM 角色**。輸入 **IAM 角色名稱** 以識別您的新角色，例如 `myidentitypool_authenticatedrole`。選取 **檢視政策文件** 以檢閱 Amazon Cognito 指派給您新 IAM 角色的許可。

   1. 如果您在 中已有要使用的角色 AWS 帳戶 ，您可以選擇使用**現有的 IAM** 角色。您必須設定 IAM 角色信任政策以包含 `cognito-identity.amazonaws.com`。將您的角色信任政策設定為僅在 Amazon Cognito 提供證據，表明請求來源為特定身分池中已驗證的使用者時，才允許 Amazon Cognito 擔任該角色。如需詳細資訊，請參閱[角色信任和許可](iam-roles.md#role-trust-and-permissions)。

1. 選取**儲存變更**。

## 編輯身分提供者
<a name="enable-or-edit-authentication-providers"></a>

如果您允許使用者以消費者身分提供者 (例如 Amazon Cognito 使用者集區、Login with Amazon、Sign in with Apple、Facebook 或 Google) 來進行身分驗證，您可以在 Amazon Cognito 身分池 (聯合身分) 主控台中指定您的應用程式識別符。這會將應用程式 ID (由公有登入供應商提供) 與您的身分集區建立關聯。

您也可以從這個頁面為每個供應商設定身分驗證規則。每個供應商最多可以有 25 個規則。這些規則會依照您為各個供應商儲存的順序套用。如需詳細資訊，請參閱[使用以角色為基礎的存取控制](role-based-access-control.md)。

**警告**  
變更身分池所連結的 IdP 應用程式 ID，將會使現有使用者無法向身分池進行身分驗證。如需詳細資訊，請參閱[身分集區第三方身分提供者](external-identity-providers.md)。

**若要更新身分池身分提供者 (IdP)**

1. 從 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)選擇 **身分池**。選取身分池。

1. 選擇 **使用者存取權** 索引標籤。

1. 找到 **身分提供者**。選擇您要編輯的身分提供者。如果您要新增一個新的 IdP，選取 **新增身分供應商**。

   1. 如果您選擇 **新增身分供應商**，請選擇一種您要新增的 **身分類型**。

1. 若要變更應用程式 ID，請選擇 **身分提供者資訊** 中的 **編輯**。

1. 若要變更 Amazon Cognito 向已透過此提供者驗證的使用者發布憑證時要求的角色，請選擇 **角色設定**中的 **編輯**。

   1. 您可以為該 IdP 使用者指派設定 **已驗證角色** 時的 **預設角色**，或您可以 **選擇具有規則的角色**。使用 Amazon Cognito 使用者集區 IdP，您還可以 **選擇權杖中具有 preferred\$1role 的角色**。如需 `cognito:preferred_role` 宣告的詳細資訊，請參閱 [指定優先順序值給群組](cognito-user-pools-user-groups.md#assigning-precedence-values-to-groups)。

     1. 如果您選擇 **使用規則選擇角色**，請輸入使用者身分驗證的 **宣告** 來源、比較宣告的 **操作員**、導致符合角色選擇的 **值**，以及當符合 **角色指派** 時您要指派的 **角色**。選取 **新增另一項** 以根據不同的條件建立其他規則。

     1. 選擇 **角色解析**。當您的使用者宣告與您的規則不符時，您可以拒絕憑證或向 **已驗證角色** 發出憑證。

1. 若要變更 Amazon Cognito 向使用者驗證此提供者，發布憑證時指派的委託人標籤，請在 **存取控制屬性** 中選擇 **編輯**。

   1. 若不套用主要索引標籤，請選擇 **非作用中**。

   1. 若要根據 `sub` 和 `aud` 宣告套用主要索引標籤，請選擇 **使用預設對應**。

   1. 若要建立您自己的自訂屬性結構描述至主要索引標籤，請選擇 **使用自訂對應**。然後，輸入您要從每個 **宣告** 中獲取的 **標籤金鑰**，顯示於索引標籤當中。

1. 選取**儲存變更**。

## 刪除身分集區
<a name="delete-an-identity-pool"></a>

您無法復原刪除的身分池。刪除身分池後，所有依賴該身分池的應用程式和使用者都會停止運作。

**刪除身分集區**

1. 從 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)選擇 **身分池**。在您要刪除的身分池旁邊，選取選項按鈕。

1. 選取**刪除**。

1. 輸入或貼上身分池的名稱，然後選取 **刪除**。

**警告**  
當您選取 Delete (刪除) 按鈕，將會永久刪除您的身分集區及其包含的所有使用者資料。刪除身分池會導致應用程式和使用該身分池的其他服務停止運作。

## 從身分集區刪除身分
<a name="delete-an-identity-from-an-identity-pool"></a>

從身分池刪除身分時，您會移除 Amazon Cognito 為該聯合身分使用者儲存的身分資訊。當您的使用者再次要求認證時，如果您的身分池仍信任其身分提供者，他們會收到新的身分 ID。您無法復原此操作。

**若要刪除身分**

1. 從 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)選擇 **身分池**。選取身分池。

1. 選擇 **身分瀏覽器** 索引標籤。

1. 在您要刪除的身分旁邊，選取核取方塊並選擇 **刪除**。確認您要刪除身分，然後選擇 **刪除**。

## 使用 Amazon Cognito Sync 與身分集區
<a name="identity-pools-sync"></a>

 Amazon Cognito Sync 是 AWS 服務 和 用戶端程式庫，可讓您跨裝置同步應用程式相關的使用者資料。Amazon Cognito Sync 可跨行動裝置和 Web 同步使用者描述檔資料，無需使用自己的後端系統。用戶端程式庫會在本機快取資料，因此無論裝置的連線狀態為何，您的應用程式可以讀取和寫入資料。當裝置上線時，您可以同步資料。如果您設定推播同步，可立即通知其他裝置有更新可用。

### 管理資料集
<a name="managing-datasets-in-the-amazon-cognito-console"></a>

如果您已經在應用程式中實作 Amazon Cognito Sync 功能，Amazon Cognito 身分集區主控台可以讓您針對個別的身分手動建立及刪除資料集和記錄。如果您在 Amazon Cognito 身分集區中對身分的資料集或記錄進行任何變更，則必須在主控台中選取 **Synchronize** (同步) 才會儲存變更。在身分呼叫 **Synchronize** (同步)之後，最終使用者才看得到這些變更。您只要重新整理特定身分的列出資料集頁面之後，就會針對個別身分顯示從其他裝置同步的資料。

#### 為身分建立資料集
<a name="create-a-dataset-for-an-identity"></a>

Amazon Cognito Sync 將資料集與一個身分建立關聯。您可以在資料集中填入身分所代表之使用者的相關資訊，然後將該資訊同步至您使用者的所有裝置。

**若要將資料集和資料集記錄新增至身分**

1. 從 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)選擇 **身分池**。選取身分池。

1. 選擇 **身分瀏覽器** 索引標籤。

1. 選取您要編輯的身分。

1. 在 **資料集** 中，選擇 **建立資料集**。

1. 輸入 **資料集名稱**，然後選取 **建立資料集**。

1. 如果要將記錄新增至資料集，請從身分詳細資料中選擇資料集。在 **記錄** 中，選取 **建立記錄**。

1. 輸入記錄的 **金鑰** 和 **值**。選擇**確認**。重複此步驟以新增更多記錄。

#### 刪除與身分相關聯的資料集
<a name="delete-a-dataset-associated-with-an-identity"></a>

**若要從身分中刪除資料集及其記錄**

1. 從 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)選擇 **身分池**。選取身分池。

1. 選擇 **身分瀏覽器** 索引標籤。

1. 選取包含您要刪除之資料集的身分。

1. 在 **資料集** 中，選擇要刪除之資料集旁的選項按鈕。

1. 選取**刪除**。檢視您的選擇並再次選取 **刪除**。

### 大量發佈資料
<a name="bulk-publish-data"></a>

 大量發佈可將已存放在 Amazon Cognito Sync 存放區中的資料匯出至 Amazon Kinesis 串流。如需有關如何大量發佈您的所有串流的詳細資訊，請參閱 [實作 Amazon Cognito Sync 串流](cognito-streams.md)。

### 啟用推播同步
<a name="enable-push-synchronization"></a>

 Amazon Cognito 會自動追蹤身分與裝置之間的關聯。使用推播同步功能可讓您確保在身分資料變更時，指定身分的每個執行個體都會收到通知。推播同步可確保，每當身分的資料集變更時，與該身分相關聯的所有裝置都會收到靜音推播通知，通知他們有所變更。

 您可以在 Amazon Cognito 主控台內啟用推播同步。

**若要啟用推播同步**

1. 從 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)選擇 **身分池**。選取身分池。

1. 選擇 **身分池屬性** 標籤。

1. 在 **推播同步** 中，選取 **編輯**

1. 選取 **使用身分池啟用推播同步**。

1. 選擇您目前在 AWS 區域中建立的其中一個 Amazon Simple Notiﬁcation Service (Amazon SNS) **平台應用程式**。Amazon Cognito 會將推播通知發布到您的平台應用程式。選取 **建立平台應用程式** 以前往 Amazon SNS 主控台並建立新的應用程式。

1. 若要將其發布至您的平台應用程式，Amazon Cognito 會在您的 AWS 帳戶中指派 IAM 角色。如果您希望 Amazon Cognito 為您建立具有基本許可和與身分池具有信任關係的新角色，請選擇 **建立新 IAM 角色**。輸入 **IAM 角色名稱** 以識別您的新角色，例如 `myidentitypool_authenticatedrole`。選取 **檢視政策文件** 以檢閱 Amazon Cognito 指派給您新 IAM 角色的許可。

1. 如果您在 中已有要使用的角色 AWS 帳戶 ，您可以選擇使用**現有的 IAM** 角色。您必須設定 IAM 角色信任政策以包含 `cognito-identity.amazonaws.com`。將您的角色信任政策設定為僅在 Amazon Cognito 提供證據，表明請求來源為特定身分池中已驗證的使用者時，才允許 Amazon Cognito 擔任該角色。如需詳細資訊，請參閱[角色信任和許可](iam-roles.md#role-trust-and-permissions)。

1. 選取**儲存變更**。

### 設定 Amazon Cognito 串流
<a name="set-up-cognito-streams"></a>

 Amazon Cognito 串流可讓開發人員控制並深入了解其存放在 Amazon Cognito Sync 中的資料。開發人員現在可以設定 Kinesis 串流，以資料的形式來接收事件。Amazon Cognito 可以即時將每項資料集變更推送至您擁有的 Kinesis 串流。如需有關如何在 Amazon Cognito 主控台中設定 Amazon Cognito 串流的指示，請參閱 [實作 Amazon Cognito Sync 串流](cognito-streams.md)。

### 設定 Amazon Cognito 事件
<a name="set-up-cognito-events"></a>

 Amazon Cognito Events 可讓您執行 AWS Lambda 函數，以回應 Amazon Cognito Sync 中的重要事件。當有資料集同步時，Amazon Cognito Sync 會引發同步觸發器事件。當使用者更新資料時，您可以使用同步觸發器事件來採取動作。如需有關如何從主控台設定 Amazon Cognito 事件的指示，請參閱 [使用 Amazon Cognito Events 自訂工作流程](cognito-events.md)。

 若要進一步了解 AWS Lambda，請參閱 [AWS Lambda](https://aws.amazon.com/lambda/)。