Amazon Cognito
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

标记 Amazon Cognito 资源

标签是您或 AWS 为 AWS 资源分配的元数据标记。每个标签均包含一个 和一个。对于您分配的标签,需要定义键和值。例如,您可以将键定义为 stage,将一个资源的值定义为 test

标签可帮助您:

  • 标识和整理您的 AWS 资源。许多 AWS 服务支持标记,因此,您可以将同一标签分配给来不同服务的资源,以指示这些资源是相关的。例如,您可以将相同的标签分配给您分配给 Amazon DynamoDB 表的 Amazon Cognito 用户池。

  • 跟踪您的 AWS 成本。您在 AWS Billing and Cost Management 控制面板上激活这些标签。AWS 使用标签对您的成本进行分类,并向您提供每月成本分配报告。有关更多信息,请参阅 AWS Billing and Cost Management 用户指南中的使用成本分配标签

  • 根据分配给资源的标签控制对资源的访问。您可以通过在 AWS Identity and Access Management (IAM) 策略的条件中指定标签键和值来控制访问权限。例如,您可以允许 IAM 用户更新用户池,但前提是该用户池具有值为该用户的名称的 owner 标签。有关更多信息,请参阅 IAM 用户指南中的使用标签控制访问

您可以使用 AWS CLI 或 Amazon Cognito API 来添加、编辑或删除用户池和身份池的标签。尤其对于用户池,您还可以使用 Amazon Cognito 控制台来管理标签。

有关使用标签的提示,请参阅 AWS 回答博客上的 AWS 标记策略文章。

以下各节提供有关 Amazon Cognito 的标签的更多信息。

Amazon Cognito 中支持的资源

Amazon Cognito 中的以下资源支持标记:

  • 用户池

  • 身份池

标签限制

下面的基本限制适用于 Amazon Cognito 资源上的标签:

  • 您可以分配给资源的最大标签数量 – 50

  • 最大键长度 – 128 个 Unicode 字符

  • 最大值长度 – 256 个 Unicode 字符

  • 键和值的有效字符 – a-z、A-Z、0-9、空格和以下字符: _ . : / = + - 和 @

  • 键和值区分大小写

  • 请不要使用 aws: 作为键的前缀;它保留为供 AWS 使用

使用 Amazon Cognito 控制台管理标签

您可以使用 Amazon Cognito 控制台来管理分配给用户池的标签。

对于身份池,控制台不包含标记功能,因此,您必须以编程方式管理标签。例如,您可以使用 AWS CLI。

将标签添加到用户池

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

  2. 选择管理用户池

  3. Your User Pools (您的用户池) 页面上,选择要添加标签的用户池。

  4. 在左侧导航菜单中,选择 Tags (标签)

  5. 除非您的用户池已具有标签,否则请选择 Add tag (添加标签) 以添加第一个标签。

  6. Tag key (标签键)Tag value (标签值) 指定值。

  7. 对于每个要添加的其他标签,请选择 Add another tag (添加其他标签)

  8. 添加完标签后,选择 Save changes (保存更改)

Tags (标签) 页面上,您还可以编辑任何现有标签的键和值。要删除标签,请选择标签右上角的 x 标记。

AWS CLI 示例

AWS CLI 提供了可用来管理您分配给 Amazon Cognito 用户池和身份池的标签。

分配标签

使用以下命令可将标签分配给现有的用户池和身份池。

例 适用于用户池的 tag-resource 命令

使用 cognito-idp 命令集中的 tag-resource 将标签分配给用户池:

$ aws cognito-idp tag-resource \ > --resource-arn user-pool-arn \ > --tags Stage=Test

此命令包含以下参数:

  • resource-arn – 您向其应用标签的用户池的 Amazon 资源名称 (ARN)。要查找 ARN,请在 Amazon Cognito 控制台中选择用户池,并在 General settings (常规) 选项卡中查看 Pool ARN (池 ARN) 值。

  • tags – 标签的键值对。

要一次分配多个标签,请以逗号分隔的列表形式指定它们:

$ aws cognito-idp tag-resource \ > --resource-arn user-pool-arn \ > --tags Stage=Test,CostCenter=80432,Owner=SysEng

例 适用于身份池的 tag-resource 命令

使用 cognito-identity 命令集中的 tag-resource 将标签分配给身份池:

$ aws cognito-identity tag-resource \ > --resource-arn identity-pool-arn \ > --tags Stage=Test

此命令包含以下参数:

  • resource-arn – 您向其应用标签的身份池的 Amazon 资源名称 (ARN)。要查找 ARN,请在 Amazon Cognito 控制台中选择身份池,并选择 Edit identity pool (编辑身份池)。然后,在 Identity pool ID (身份池 ID) 中,选择 Show ARN (显示 ARN)

  • tags – 标签的键值对。

要一次分配多个标签,请以逗号分隔的列表形式指定它们:

$ aws cognito-identity tag-resource \ > --resource-arn identity-pool-arn \ > --tags Stage=Test,CostCenter=80432,Owner=SysEng

查看标签

使用以下命令可查看您已分配给用户池和身份池的标签。

例 适用于用户池的 list-tags-for-resource 命令

使用 cognito-idp 命令集中的 list-tags-for-resource 查看分配给用户池的标签:

$ aws cognito-idp list-tags-for-resource --resource-arn user-pool-arn

例 适用于身份池的 list-tags-for-resource 命令

使用 cognito-identity 命令集中的 list-tags-for-resource 查看分配给身份池的标签:

$ aws cognito-identity list-tags-for-resource --resource-arn identity-pool-arn

删除标签

使用以下命令从用户池和身份池中删除标签。

例 适用于用户池的 untag-resource 命令

使用 cognito-idp 命令集中的 untag-resource 从用户池删除标签:

$ aws cognito-idp untag-resource \ > --resource-arn user-pool-arn \ > --tag-keys Stage CostCenter Owner

对于 --tag-keys 参数,指定一个或多个标签键,但不包含标签值。

例 适用于身份池的 untag-resource 命令

使用 cognito-identity 命令集中的 untag-resource 从身份池删除标签:

$ aws cognito-identity untag-resource \ > --resource-arn identity-pool-arn \ > --tag-keys Stage CostCenter Owner

对于 --tag-keys 参数,指定一个或多个标签键,但不包含标签值。

在创建资源时应用标签

使用以下命令可在创建用户池或身份池时分配标签。

create-user-pool 命令以及标签

当您使用 create-user-pool 命令创建用户时,您可以使用 --user-pool-tags 参数指定标签:

$ aws cognito-idp create-user-pool \ > --pool-name user-pool-name \ > --user-pool-tags Stage=Test,CostCenter=80432,Owner=SysEng

create-identity-pool 命令以及标签

当您使用 create-identity-pool 命令创建用户池时,您可以使用 --identity-pool-tags 参数指定标签:

$ aws cognito-identity create-identity-pool \ > --identity-pool-name identity-pool-name \ > --allow-unauthenticated-identities \ > --identity-pool-tags Stage=Test,CostCenter=80432,Owner=SysEng

使用 Amazon Cognito API 管理标签

您可以在 Amazon Cognito API 中使用以下操作来管理用户池和身份池的标签。

适用于用户池标签的 API 操作

使用以下 API 操作来分配、查看和删除用户池的标签。

适用于身份池标签的 API 操作

使用以下 API 操作来分配、查看和删除身份池的标签。