

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

# 使用 Amazon Cognito 的服務連結角色
使用服務連結角色

Amazon Cognito 使用 AWS Identity and Access Management (IAM)[ 服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服務連結角色是一種獨特的 IAM 角色類型，具有允許 AWS 服務 擔任該角色的信任政策。服務連結角色是由 Amazon Cognito 預先定義，並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓設定 Amazon Cognito 更為簡單，因為您不必手動新增必要的許可。Amazon Cognito 定義其服務連結角色的許可，除非另有定義，否則僅有 Amazon Cognito 可以擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。如此可保護您的 Amazon Cognito 資源，避免您不小心移除資源的存取許可。

如需有關支援服務連結角色的其他服務的資訊，請參閱[可搭配 IAM 運作的AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，並尋找 **Service-Linked Role** (服務連結角色) 資料欄顯示為 **Yes** (是) 的服務。選擇具有連結的 **Yes (是)**，以檢視該服務的服務連結角色文件。

## Amazon Cognito 的服務連結角色許可


Amazon Cognito 使用下列服務連結角色：
+ **AWSServiceRoleForAmazonCognitoIdpEmailService** – 允許 Amazon Cognito 使用者集區服務使用您的 Amazon SES 身分來傳送電子郵件。
+ **AWSServiceRoleForAmazonCognitoIdp** – 允許 Amazon Cognito 使用者集區為您的 Amazon Pinpoint 專案發佈事件和設定端點。

**AWSServiceRoleForAmazonCognitoIdpEmailService**

`AWSServiceRoleForAmazonCognitoIdpEmailService` 服務連結角色信任下列服務以擔任角色：
+ `email.cognito-idp.amazonaws.com`

此角色許可政策允許 Amazon Cognito 對指定資源完成下列動作：

**允許的 AWSServiceRoleForAmazonCognitoIdpEmailService 動作：**
+ 動作：`ses:SendEmail` 和 `ses:SendRawEmail`
+ 資源：`*`

此政策拒絕 Amazon Cognito 可在指定資源上完成下列動作：

**拒絕的動作**
+ 動作：`ses:List*`
+ 資源：`*`

使用這些權限，Amazon Cognito 只能使用 Amazon SES 中經驗證的電子郵件地址傳送電子郵件給使用者。您的使用者在使用者集區的用戶端應用程式中執行特定動作，例如註冊或重設密碼時，Amazon Cognito 會傳送電子郵件給您的使用者。

您必須設定許可，IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱 *IAM 使用者指南*中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

**AWSServiceRoleForAmazonCognitoIdp**

AWSServiceRoleForAmazonCognitoIdp 服務連結角色信任下列服務可擔任該角色：
+ `email.cognito-idp.amazonaws.com`

此角色許可政策允許 Amazon Cognito 對指定資源完成下列動作：

**允許的 AWSServiceRoleForAmazonCognitoIdp 動作**
+ 動作：`cognito-idp:Describe`
+ 資源：`*`

使用此許可，Amazon Cognito 可以為您呼叫 `Describe` Amazon Cognito API 操作。

**注意**  
使用 `createUserPoolClient` 和 `updateUserPoolClient` 整合 Amazon Cognito 與 Amazon Pinpoint 時，資源許可會新增至 SLR 當作內嵌政策。內嵌政策會提供 `mobiletargeting:UpdateEndpoint` 和 `mobiletargeting:PutEvents` 許可。這些許可讓 Amazon Cognito 能為您與 Cognito 整合的 Pinpoint 專案發佈事件並設定端點。

## 建立 Amazon Cognito 的服務連結角色


您不需要手動建立服務連結角色，當您將使用者集區設定為使用 Amazon SES 組態來處理 AWS 管理主控台、 AWS CLI或 Amazon Cognito API 中的電子郵件傳遞時，Amazon Cognito 會為您建立服務連結角色。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。設定使用者集區以使用 Amazon SES 組態處理電子郵件交付時，Amazon Cognito 會再次為您建立服務連結角色。

您用來設定您的使用者集區的 IAM 許可必須先包含 `iam:CreateServiceLinkedRole` 動作，Amazon Cognito 才能建立此角色。如需更新 IAM 中許可的詳細資訊，請參閱*《IAM 使用者指南》*中的[變更 IAM 使用者的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html)。

## 編輯 Amazon Cognito 的服務連結角色


 您無法在其中編輯 AmazonCognitoIdp 或 AmazonCognitoIdpEmailService 服務連結角色 AWS Identity and Access Management。因為可能有各種實體會參考服務連結角色，所以您無法在建立角色之後變更其名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 Amazon Cognito 的服務連結角色


若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如果您刪除角色，則僅保留 Amazon Cognito 主動監視或維護的實體。在可刪除 AmazonCognitoIdp 或 AmazonCognitoIdpEmailService 服務連結角色之前，您必須對每個使用此角色的使用者集區執行下列任一動作：
+ 刪除使用者集區。
+ 在使用者集區中，將電子郵件設定更新成使用預設的電子郵件功能。預設設定不會使用服務連結角色。

請記得在 AWS 區域 具有使用 角色之使用者集區的每個 中執行 動作。

**注意**  
若 Amazon Cognito 服務在您試圖刪除資源時正在使用該角色，刪除可能會失敗。若此情況發生，請等待數分鐘後並再次嘗試操作。

**刪除 Amazon Cognito 使用者集區**

1. 登入 AWS 管理主控台 並開啟位於 的 Amazon Cognito 主控台[https://console.aws.amazon.com/cognito](https://console.aws.amazon.com/cognito)。

1. 選擇 **Manage User Pools (管理使用者集區)**。

1. 在 **Your User Pools (您的使用者集區)** 頁面上，選擇您要刪除的使用者集區。

1. 選擇**刪除集區**。

1. 在 **Delete user pool (刪除使用者集區)** 視窗中，鍵入 **delete**，然後選擇 **Delete pool (刪除集區)**。

**更新 Amazon Cognito 使用者集區以使用預設的電子郵件功能**

1. 登入 AWS 管理主控台 並開啟位於 的 Amazon Cognito 主控台[https://console.aws.amazon.com/cognito](https://console.aws.amazon.com/cognito)。

1. 選擇 **Manage User Pools (管理使用者集區)**。

1. 在 **Your User Pools (您的使用者集區)** 頁面上，選擇您要更新的使用者集區。

1. 在左側的導覽選單中，選擇 **Message customizations (訊息自訂)**。

1. 在 **Do you want to send emails through your Amazon SES Configuration? (您是否要透過 Amazon SES 組態傳送電子郵件嗎？)**，選擇 **No - Use Cognito (Default) (否 - 使用 Cognito (預設))**。

1. 當您完成設定電子郵件帳戶選項後，請選擇 **Save changes (儲存變更)**。

**使用 IAM 手動刪除服務連結角色**

使用 IAM 主控台 AWS CLI、 或 AWS API 來刪除 AmazonCognitoIdp 或 AmazonCognitoIdpEmailService 服務連結角色。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## Amazon Cognito 服務連結角色的支援區域


Amazon Cognito 在提供服務的所有 AWS 區域 中支援服務連結角色。如需詳細資訊，請參閱 [AWS 區域 和端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#cognito_identity_region)。