教程:创建身份池 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

教程:创建身份池

借助身份池,您的用户可以获取临时Amazon凭证来访问Amazon服务,如 Amazon S3 和 DynamoDB。

New console
在控制台中创建新的身份池
  1. 登录 Amazon Cognito 控制台并选择身份池

  2. 选择创建身份池

  3. 配置身份池信任中,选择将您的身份池设置为经过身份验证的访问权限和/或访客访问权限

    1. 如果您选择了经过身份验证的访问权限,请在身份池中选择一个或多个您要设置为经过身份验证的身份来源的身份类型。如果您配置了自定义开发人员提供者,则在创建身份池后无法对其进行修改或删除。

  4. 配置权限中,为身份池中经过身份验证的用户或访客用户选择原定设置 IAM 角色。

    1. 如果您希望 Amazon Cognito 为您创建一个具有基本权限并与您的身份池建立信任关系的新角色,请选择创建新的 IAM 角色。例如,输入 IAM 角色名称以标识您的新角色,例如 myidentitypool_authenticatedrole。选择查看策略文档以查看 Amazon Cognito 将分配给新 IAM 角色的权限。

    2. 如果您的 Amazon Web Services 账户中已经有想要使用的角色,则可以选择使用现有的 IAM 角色。您必须将您的 IAM 角色信任策略配置为包括 cognito-identity.amazonaws.com。配置您的角色信任策略,以仅允许 Amazon Cognito 在提供证据证明请求来自您的特定身份池中经过身份验证的用户时,才代入该角色。有关更多信息,请参阅角色信任和权限

  5. 连接身份提供者中,输入您在配置身份池信任中选择的身份提供者(IdP)的详细信息。可能会要求您提供 OAuth 应用程序客户端信息、选择 Amazon Cognito 用户群体、选择 IAM IdP 或输入开发人员提供者的自定义标识符。

    1. 为每个 IdP 选择角色设置。您可以为该 IdP 中的用户分配您在配置经过身份验证的角色时设置的原定设置角色,也可以使用规则选择角色。使用 Amazon Cognito 用户群体 IdP,还可以选择令牌中包含 preferred_role 声明的角色。有关 cognito:preferred_role 声明的更多信息,请参阅将优先级值分配到组

      1. 如果您选择使用规则选择角色,请输入用户身份验证中的来源声明、您要用来比较声明的运算符、导致与该角色选择匹配的,以及当角色分配匹配时要分配的角色。选择添加其他,以根据不同的条件创建其他规则。

      2. 选择角色解析。当用户的声明与您的规则不匹配时,您可以拒绝凭证或为经过身份验证的角色颁发凭证。

    2. 您可以为每个 IdP 配置访问控制属性。访问控制属性将用户声明映射到 Amazon Cognito 应用于其临时会话的主体标签。您可以构建 IAM policy,以根据应用于用户会话的标签来筛选用户访问权限。

      1. 如果不应用主体标签,请选择非活动

      2. 要基于 subaud 声明应用主体标签,请选择使用原定设置映射

      3. 要为主体标签创建自己的自定义属性模式,请选择使用自定义映射。然后,对于您要在标签中表示的每个声明,输入要从该声明中获取的标签键

  6. 配置属性中,在身份池名称下输入名称

  7. 基本(经典)身份验证下,选择是否要激活基本流程。在基本流程处于活动状态的情况下,您可以绕过为 IdP 所做的角色选择,直接调用 AssumeRoleWithWebIdentity。有关更多信息,请参阅身份池(联合身份)身份验证流程

  8. 如果要将标签应用到身份池,请在标签下选择添加标签

  9. 查看并创建中,确认您为新身份池所做的选择。选择编辑以返回向导并更改任何设置。完成后,选择创建身份池

Original console
创建身份池
  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入 Amazon 凭证。

  2. 选择 Manage Identity Pools(管理身份池)。

  3. 选择 Create new identity pool(创建新身份池)。

  4. 为身份池输入一个名称。

  5. 要启用未经身份验证的身份,请从 Unauthenticated identities(未经身份验证的身份)的可折叠部分中选择 Enable access to unauthenticated identities(启用访问未经身份验证的身份)。

  6. 选择 Create Pool(创建池)。

  7. 系统将提示您访问您的 Amazon 资源。

    选择 Allow(允许)以创建两个与您的身份池关联的原定设置角色,一个用于未经身份验证的用户,另一个用于经过身份验证的用户。这些默认角色会向 Amazon Cognito Sync 提供身份池访问权限。您可以在 IAM 控制台中修改与身份池关联的角色。

  8. 记下您的身份池 ID 号。您将使用它来设置允许您的应用程序用户访问其它 Amazon 服务(如 Amazon Simple Storage Service 或 DynamoDB)的策略

有关身份池的更多信息,请参阅Amazon Cognito 身份池(联合身份)

有关使用具有身份池的 Amazon S3 示例,请参阅通过浏览器将照片上载到 Amazon S3