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

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

使用 Amazon Cognito 的服務連結角色

Amazon Cognito 使用 AWS Identity and Access Management (IAM) 服務連結角色。服務連結角色是具有信任原則的唯一IAM角色類型,允許擔任該角色。 AWS 服務 服務連結角色由 Amazon Cognito 預先定義,並包含服務代表您呼叫其他 AWS 服務所需的所有許可。

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

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

如需支援服務連結角色之其他服務的相關資訊,請參閱使用的AWS 服務,IAM並在服務連結角色欄中尋找具有的服務。選擇具有連結的 Yes (是),以檢視該服務的服務連結角色文件。

Amazon Cognito 的服務連結角色許可

Amazon Cognito 使用下列服務連結角色:

  • AWSServiceRoleForAmazonCognitoIdpEmailService— 允許 Amazon Cognito 使用者集區服務使用您的 Amazon SES 身分來傳送電子郵件。

  • AWSServiceRoleForAmazonCognitoIdp— 允許 Amazon Cognito 使用者集區為您的 Amazon 精準點專案發佈事件和設定端點。

AWSServiceRoleForAmazonCognitoIdpEmailService

AWSServiceRoleForAmazonCognitoIdpEmailService 服務連結角色信任下列服務以擔任角色:

  • email.cognito-idp.amazonaws.com

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

允許的動作 AWSServiceRoleForAmazonCognitoIdpEmailService:
  • 動作:ses:SendEmailses:SendRawEmail

  • 資源:*

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

拒絕的動作
  • 動作:ses:List*

  • 資源:*

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

您必須設定權限,才能允許IAM實體 (例如使用者、群組或角色) 建立、編輯或刪除服務連結角色。如需詳細資訊,請參閱IAM使用指南中的服務連結角色權限

AWSServiceRoleForAmazonCognitoIdp

服 AWSServiceRoleForAmazonCognitoIdp 務連結角色會信任下列服務擔任該角色:

  • email.cognito-idp.amazonaws.com

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

允許的動作 AWSServiceRoleForAmazonCognitoIdp
  • 動作:cognito-idp:Describe

  • 資源:*

有了這個權限,Amazon Cognito 可以為您打電話給 Describe Amazon Cognito API 操作。

注意

當您使用createUserPoolClient和整合 Amazon Cognito 與亞馬遜 Pinpoint 時updateUserPoolClient,資源許可將SLR作為內嵌政策新增到。內嵌政策會提供 mobiletargeting:UpdateEndpointmobiletargeting:PutEvents 許可。這些許可讓 Amazon Cognito 能為您與 Cognito 整合的 Pinpoint 專案發佈事件並設定端點。

建立 Amazon Cognito 的服務連結角色

您不需要手動建立一個服務連結角色。當您將使用者集區設定為使用 Amazon SES 組態來處理 AWS Management Console、或 Amazon Cognito 中的 AWS CLI電子郵件交付時API,Amazon Cognito 會為您建立服務連結角色。

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

Amazon Cognito 才能建立此角色,您用來設定使用者集區的IAM許可必須包含iam:CreateServiceLinkedRole動作。如需有關更新中權限的詳細資訊IAM,請參閱《IAM使用指南》中的〈變更使IAM用者的權限

編輯 Amazon Cognito 的服務連結角色

您無法在 AWS Identity and Access Management中編輯 AmazonCognitoIdp 或 AmazonCognitoIdpEmailService 服務連結角色。因為可能有各種實體會參考服務連結角色,所以您無法在建立角色之後變更其名稱。但是,您可以使用編輯角色的描述IAM。如需詳細資訊,請參閱IAM使用指南中的編輯服務連結角色

刪除 Amazon Cognito 的服務連結角色

若您不再使用需要服務連結角色的功能或服務,我們建議您刪除該角色。如果您刪除角色,則僅保留 Amazon Cognito 主動監視或維護的實體。在刪除 AmazonCognitoIdp 或 AmazonCognitoIdpEmailService 服務連結角色之前,您必須對使用該角色的每個使用者集區執行下列其中一項動作:

  • 刪除使用者集區。

  • 在使用者集區中,將電子郵件設定更新成使用預設的電子郵件功能。預設設定不會使用服務連結角色。

請記住,在每個使 AWS 區域 用該角色的用戶池中執行操作。

注意

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

刪除 Amazon Cognito 使用者集區
  1. 登入 AWS Management Console 並開啟 Amazon Cognito 主控台,位於https://console.aws.amazon.com/cognito

  2. 選擇 Manage User Pools (管理使用者集區)

  3. Your User Pools (您的使用者集區) 頁面上,選擇您要刪除的使用者集區。

  4. 選擇刪除集區

  5. Delete user pool (刪除使用者集區) 視窗中,鍵入 delete,然後選擇 Delete pool (刪除集區)

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

  1. 登入 AWS Management Console 並開啟 Amazon Cognito 主控台,位於https://console.aws.amazon.com/cognito

  2. 選擇 Manage User Pools (管理使用者集區)

  3. Your User Pools (您的使用者集區) 頁面上,選擇您要更新的使用者集區。

  4. 在左側的導覽選單中,選擇 Message customizations (訊息自訂)

  5. 您要透過 Amazon SES 組態傳送電子郵件嗎? ,選擇 [否]-[使用 Cognito (預設)]。

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

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

使用IAM控制台、或刪除 AmazonCognitoIdp 或 AmazonCognitoIdpEmailService 服務連結的角色。 AWS CLI AWS API如需詳細資訊,請參閱IAM使用指南中的刪除服務連結角色

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

Amazon Cognito 在所有可用服務的 AWS 區域 地方都支援服務連結角色。如需詳細資訊,請參閱 AWS 區域 和端點