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

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

对 Amazon Cognito 使用服务相关角色

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

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

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

有关支持服务相关角色的其他服务的信息,请参阅与之配合使用的Amazon 服务,IAM并在 “服务相关角色” 列中查找标有 “” 的服务。选择和链接,查看该服务的服务相关角色文档。

Amazon Cognito 的服务相关角色权限

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

  • AWSServiceRoleForAmazonCognitoIdpEmailService— 允许 Amazon Cognito 用户池服务使用您的亚马逊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 SES 只能使用您在亚马逊中经过验证的电子邮件地址向您的用户发送电子邮件。当您的用户在客户端应用程序中针对用户池执行特定操作(如注册或重置密码)时,Amazon Cognito 将向用户发送电子邮件。

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

AWSServiceRoleForAmazonCognitoIdp

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

  • email.cognito-idp.amazonaws.com

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

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

  • 资源:*

有了这个权限,亚马逊 Cognito 就可以为你调用亚马逊 Co API gn Describe ito 操作了。

注意

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

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

您无需手动创建服务相关角色。当您将用户池配置为使用您的亚马逊SES配置来处理在 Amazon Web Services Management Console、或 Amazon Cognito 中发送电子邮件时 Amazon CLI,Amazon Cogn API ito 会为您创建服务相关角色。

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

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

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

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

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

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

  • 删除该用户池。

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

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

注意

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

删除 Amazon Cognito 用户池
  1. 登录 Amazon Web Services Management Console 并打开 Amazon Cognito 控制台,网址为。https://console.amazonaws.cn/cognito

  2. 选择管理用户池

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

  4. 选择删除池

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

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

  1. 登录 Amazon Web Services Management Console 并打开 Amazon Cognito 控制台,网址为。https://console.amazonaws.cn/cognito

  2. 选择管理用户池

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

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

  5. 在 “您想通过您的 Amazon SES 配置发送电子邮件吗?” 下 ,选择 “否”-使用 Cognito(默认)

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

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

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

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

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