对 Amazon Cognito 使用服务相关角色 - Amazon Cognito
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

对 Amazon Cognito 使用服务相关角色

Amazon Cognito 使用 AWS Identity and Access Management (IAM) 服务相关角色。服务相关角色是一种与 Amazon Cognito 直接关联的独特类型的 IAM 角色。服务相关角色由 Amazon Cognito 预定义,并包含该服务代表您调用其他 AWS 服务所需的一切权限。

服务相关角色使 Amazon Cognito 的设置更轻松,因为您不必手动添加必要的权限。Amazon Cognito 定义其服务相关角色的权限,除非另行定义,否则仅 Amazon Cognito 可以代入其角色。定义的权限包括信任策略和权限策略,并且权限策略不能附加到任何其他 IAM 实体。

只有在首先删除相关资源后,才能删除服务相关角色。这将保护您的 Amazon Cognito 资源,因为您不会无意中删除对资源的访问权限。

有关支持服务相关角色的其他服务的信息,请参阅与 IAM 配合使用的 AWS 服务并查找 Service-Linked Role 列为 Yes 的服务。选择 Yes 与查看该服务的服务相关角色文档的链接。

适用于 Amazon Cognito 的服务相关角色权限

Amazon Cognito 使用以下服务相关角色:

  • AmazonCognitoIdpEmailService – Allows Amazon Cognito user pools service to use your Amazon SES identities for sending email.

  • AmazonCognitoIdp – Allows Amazon Cognito user pools to publish events and configure endpoints for your Amazon Pinpoint projects.

AmazonCognitoIdpEmailService 服务相关角色信任以下服务代入该角色:

  • email.cognito-idp.amazonaws.com

角色权限策略允许 Amazon Cognito 对指定资源完成以下操作:

允许 AmazonCognitoidpEmailService 的操作

  • 操作:ses:SendEmail and ses:SendRawEmail

  • 资源: *

此策略拒绝 Amazon Cognito 对指定资源完成以下操作的功能:

拒绝的操作

  • 操作:ses:List*

  • 资源:*

借助这些权限, Amazon Cognito 只能在 Amazon SES 中使用经验证的电子邮件地址向用户发送电子邮件。当用户在客户端应用程序中针对用户池执行特定操作(如注册或重置密码)时,Amazon Cognito 将向用户发送电子邮件。

您必须配置权限以允许 IAM 实体(如用户、组或角色)创建、编辑或删除服务相关角色。有关更多信息,请参阅 https://docs.amazonaws.cn/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions 中的IAM 用户指南服务相关角色权限

AmazonCognitoIdp

AmazonCognitoIdp 服务相关角色信任以下服务代入该角色:

  • email.cognito-idp.amazonaws.com

角色权限策略允许 Amazon Cognito 对指定资源完成以下操作:

允许的 AmazonCognitoIdp 操作

  • 操作:cognito-idp:Describe

  • 资源: *

利用此权限,Amazon Cognito 可以为您调用 Describe Amazon Cognito API 操作。

注意

当您使用 Amazon Cognito 和 Amazon Pinpoint 将 createUserPoolClientupdateUserPoolClient 集成时,资源权限将作为内联策略添加到 SLR。内联策略将提供 mobiletargeting:UpdateEndpointmobiletargeting:PutEvents 权限。这些权限允许 Amazon Cognito 为您与 Cognito 集成的 Pinpoint 项目发布事件和配置终端节点。

为 Amazon Cognito 创建服务相关角色

您无需手动创建服务相关角色。在 AWS 管理控制台、AWS CLI 或 Amazon Cognito API 中configure a user pool to use your Amazon SES configuration to handle email delivery时,Amazon Cognito 将为您创建服务相关角色。

如果您删除了此服务相关角色然后需要再次创建它,则可以使用相同的流程在您的账户中重新创建此角色。当您configure a user pool to use your Amazon SES configuration to handle email delivery时,Amazon Cognito 将再次为您创建服务相关角色。

在 Amazon Cognito 可以创建此角色之前,您用来设置用户池的 IAM 权限必须包含 iam:CreateServiceLinkedRole 操作。有关更新 IAM 中的权限的更多信息,请参阅 中的更改 IAM 用户的权限。IAM 用户指南

编辑 Amazon Cognito 的服务相关角色

Amazon Cognito 不允许您编辑 AmazonCognitoIdpEmailService 或 AmazonCognitoIdpEmailService 服务相关角色。在创建服务相关角色后,您将无法更改角色的名称,因为可能有多种实体引用该角色。但是,您可以使用 IAM 编辑角色的说明。有关更多信息,请参阅 https://docs.amazonaws.cn/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role 中的IAM 用户指南编辑服务相关角色

删除 Amazon Cognito 的服务相关角色

如果您不再需要使用某个需要服务相关角色的功能或服务,我们建议您删除该角色。这样您就没有未被主动监控或维护的未使用实体。在删除 AmazonCognitoIdpEmailService 或 AmazonCognitoIdpEmailService 服务相关角色之前,您必须为使用该角色的每个用户池执行以下任一操作:

  • 删除该用户池。

  • 更新用户池中的电子邮件设置以使用默认的电子邮件功能。默认设置不使用服务相关角色。

请记住,应在包含使用此角色的用户池的每个 AWS 区域中执行这些操作。

注意

如果在您试图删除资源时 Amazon Cognito 服务正在使用该角色,则删除操作可能会失败。如果发生这种情况,则请等待几分钟后重试。

删除 Amazon Cognito 用户池

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon Cognito 控制台:https://console.amazonaws.cn/cognito

  2. 选择 Manage User Pools (管理用户池)

  3. Your User Pools (您的用户池) 页面上,选择要删除的用户池。

  4. 选择删除池

  5. Delete user pool (删除用户池) 窗口中,键入 delete,然后选择 Delete pool (删除池)

更新 Amazon Cognito 用户池以使用默认的电子邮件功能

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon Cognito 控制台:https://console.amazonaws.cn/cognito

  2. 选择 Manage User Pools (管理用户池)

  3. Your User Pools (您的用户池) 页面上,选择要更新的用户池。

  4. 在左侧导航菜单中,选择 Message customizations (管理自定义)

  5. Do you want to send emails through your Amazon SES Configuration? (是否要通过 Amazon SES 配置发送电子邮件?) 下,选择 No - Use Cognito (Default) (否 -使用 Cognito (默认))

  6. 当您完成设置您的电子邮件账户选项时,选择 Save changes (保存更改)

使用 手动删除服务相关角色 IAM

使用 IAM 控制台、AWS CLI 或 AWS API 删除 AmazonCognitoIdpEmailService 或 AmazonCognitoIdpEmailService 服务相关角色。有关更多信息,请参阅 https://docs.amazonaws.cn/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role 中的IAM 用户指南删除服务相关角色

Amazon Cognito 服务相关角色支持的区域

Amazon Cognito 支持在服务可用的所有区域中使用服务相关角色。有关更多信息,请参阅AWS Regions and Endpoints