View a markdown version of this page

对 Amazon Cognito 使用服务相关角色 - Amazon Cognito

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

对 Amazon Cognito 使用服务相关角色

Amazon Cognito 使用 AWS Identity and Access Management (IAM) 服务相关角色。服务相关角色是一种独特的 IAM 角色,其信任策略 AWS 服务 允许担任该角色。 Service-linked 角色由 Amazon Cognito 预定义,包括该服务代表您调用其他 AWS 服务所需的所有权限。

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

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

有关支持服务相关角色的其它服务的信息,请参阅使用 IAM 的AWS 服务并查找Service-Linked 角色列中显示为的服务。请选择与查看该服务的服务关联角色文档的链接。

Service-linked 亚马逊 Cognito 的角色权限

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

  • AWSServiceRoleForAmazonCognitoIdpEmailService— 允许 Amazon Cognito 用户池服务使用你的 Amazon SES 身份发送电子邮件。

  • AWSServiceRoleForAmazonCognitoIdp— 允许 Amazon Cognito 用户池为你的 Amazon Pinpoint 项目发布事件和配置终端节点。

AWSServiceRoleForAmazonCognitoIdpEmailService

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

  • email.cognito-idp.amazonaws.com

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

允许的操作 AWSServiceRoleForAmazonCognitoIdpEmailService:
  • 操作:ses:SendEmailses:SendRawEmail

  • 资源:*

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

拒绝的操作
  • 操作:ses:List*

  • 资源:*

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

您必须配置权限,允许 IAM 实体(如用户、组或角色)创建、编辑或删除服务关联角色。有关更多信息,请参阅 IAM 用户指南中的Service-linked 角色权限

AWSServiceRoleForAmazonCognitoIdp

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

  • email.cognito-idp.amazonaws.com

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

允许的操作 AWSServiceRoleForAmazonCognitoIdp
  • 操作:cognito-idp:Describe

  • 资源:*

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

注意

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

创建适用于 Amazon Cognito 的服务相关角色

您无需手动创建服务关联角色。当您将用户池配置为使用您的 Amazon SES 配置来处理在 AWS 管理控制台 AWS CLI、或 Amazon Cognito API 中发送电子邮件时,Amazon Cognito 会为您创建服务相关角色。

如果您删除该服务关联角色,然后需要再次创建,您可以使用相同流程在账户中重新创建此角色。当您将用户池配置为使用 Amazon SES 配置去处理邮件送达时,Amazon Cognito 会为您创建与服务相关的角色。

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

编辑适用于 Amazon Cognito 的服务相关角色

您无法在中编辑 AmazonCognitoIdp 或 AmazonCognitoIdpEmailService 与服务相关的角色。 AWS Identity and Access Management在创建服务相关角色后,您将无法更改角色的名称,因为可能有多种实体引用该角色。不过,您可以使用 IAM 编辑角色的说明。有关更多信息,请参阅 IAM 用户指南中的编辑服务相关角色

删除适用于 Amazon Cognito 的服务相关角色

如果不再需要使用某个需要服务关联角色的功能或服务,我们建议您删除该角色。如果您删除角色,则只应保留 Amazon Cognito 主动监控或维护的实体。在删除角色 AmazonCognitoIdp 或 AmazonCognitoIdpEmailService 服务相关角色之前,必须对使用该角色的每个用户池执行以下操作之一:

  • 删除该用户池。

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

请记住使用该角色 AWS 区域 的用户池在每个用户池中执行操作。

注意

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

删除 Amazon Cognito 用户池
  1. 登录 AWS 管理控制台 并打开 Amazon Cognito 控制台,网址为。https://console.aws.amazon.com/cognito

  2. 选择管理用户池

  3. 您的用户池页面上,选择要删除的用户池。

  4. 选择删除池

  5. 删除用户池窗口中,键入 delete,然后选择删除池

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

  1. 登录 AWS 管理控制台 并打开 Amazon Cognito 控制台,网址为。https://console.aws.amazon.com/cognito

  2. 选择管理用户池

  3. 您的用户池页面上,选择要更新的用户池。

  4. 在左侧导航菜单中,选择消息自定义

  5. 是否要通过 Amazon SES 配置发送电子邮件?下,选择否 -使用 Cognito(默认)

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

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

使用 IAM 控制台 AWS CLI、或 AWS API 删除 AmazonCognitoIdp 或 AmazonCognitoIdpEmailService 与服务相关的角色。有关更多信息,请参阅 IAM 用户指南中的删除服务相关角色

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

Amazon Cognito 在所有提供服务 AWS 区域 的地方都支持与服务相关的角色。有关更多信息,请参阅AWS 区域 和端点