本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Amazon Cognito 资源贴标签
标签是您或 Amazon 分配给 Amazon
资源的元数据标签。每个标签均包含一个键 和一个值。对于您分配的标签,需要定义键和值。例如,您可以将键定义为 stage,将一个资源的值定义为 test。
标签可帮助您:
-
识别和整理您的 Amazon 资源。许多 Amazon 服务都支持标记,因此您可以为来自不同服务的资源分配相同的标签。这有助于您指示哪些资源是相关的。例如,您可以将相同的标签分配给您分配至 Amazon DynamoDB 表的 Amazon Cognito 用户池。
-
追踪您的 Amazon 成本。您可以在 Amazon 账单与成本管理 控制面板上激活这些标签。 Amazon 使用成本分配标签对您的成本进行分类,并向您提供每月成本分配报告。有关更多信息,请参阅《Amazon Billing 用户指南》中的使用成本分配标签。
-
根据分配给资源的标签控制对资源的访问。您可以通过在 Amazon Identity and Access Management (IAM)策略的条件中指定标签键和值来控制访问权限。例如,您可以允许用户更新用户池,但前提是该用户池具有
owner标签且值为该用户的名称。有关更多信息,请参阅《IAM 用户指南》中的使用标签控制访问。
您可以使用 Amazon Command Line Interface 或 Amazon Cognito API 为用户和身份池添加、编辑或删除标签。您还可以使用 Amazon Cognito 控制台来管理用户池的标签。
有关使用标签的提示,请参阅 Amazon Answers 博客上的 Amazon
tagging strategies
以下各部分提供有关 Amazon Cognito 标签的更多信息。
Amazon Cognito 中支持的资源
Amazon Cognito 中的以下资源支持贴标签:
-
用户池
-
身份池
标签限制
以下限制适用于 Amazon Cognito 资源上的标签:
-
您可以分配给资源的最大标签数量 - 50
-
最大密钥长度 – 128 个 Unicode 字符
-
最大值长度 – 256 个 Unicode 字符
-
键和值的有效字符 — a-z A-Z、0-9、空格和以下字符:_.:/= +-@
-
键和值区分大小写
-
请不要使用
aws:作为键的前缀;它保留为供 Amazon 使用
使用 Amazon Cognito 控制台管理标签
您可以使用 Amazon Cognito 控制台来管理分配给您的用户池的标签。
将标签添加到用户池
-
导航到 Amazon Cognito 控制台
。如果出现提示,请输入您的 Amazon 凭据。 -
选择用户池。
-
从列表中选择一个现有用户池,或创建一个用户池。
-
选择设置菜单并找到标签选项卡。
-
选择 Add tags(添加标签)即可添加您的第一个标签。如果您之前已将标签分配给此用户池,请在 Manage tags(管理标签)中选择 Add another(添加其它)。
-
为 Tag key(标签键)和 Tag value(标签值)指定值。
-
对于每个要添加的其它标签,请选择 Add another(添加其它)。
-
添加完标签后,选择 Save changes(保存更改)。
要为身份池贴标签,请导航到身份池菜单,然后选择或创建身份池。在身份池属性选项卡中,找到标签。选择 Add tag(添加标签)。
Amazon CLI 示例
Amazon CLI 提供的命令可帮助您管理分配给 Amazon Cognito 用户池和身份池的标签。
分配标签
使用以下命令可将标签分配给现有的用户池和身份池。
例 tag-resou rce 用户池命令
使用 cognito-idp 命令集中的 tag-resource将标签分配给用户池:
$aws cognito-idp tag-resource \>--resource-arnuser-pool-arn\>--tagsStage=Test
此命令包含以下参数:
-
resource-arn- 您向其应用标签的用户池的 Amazon Resource Name(ARN)。要查找 ARN,请在 Amazon Cognito 控制台中选择该用户池,并查看 General settings(常规设置)选项卡上的 Pool ARN(池 ARN)值。 -
tags– 以格式表示的标签的键值对。key=value
要一次分配多个标签,请以逗号分隔的列表形式指定它们:
$aws cognito-idp tag-resource \>--resource-arnuser-pool-arn\>--tagsStage=Test,CostCenter=80432,Owner=SysEng
例 tag-resou rce 身份池命令
使用 cognito-identity 命令集中的 tag-resource 将标签分配给身份池:
$aws cognito-identity tag-resource \>--resource-arnidentity-pool-arn\>--tagsStage=Test
此命令包含以下参数:
-
resource-arn- 您向其应用标签的身份池的 Amazon Resource Name(ARN)。要查找 ARN,请在 Amazon Cognito 控制台中选择身份池,并选择 Edit identity pool (编辑身份池)。然后,在 Identity pool ID(身份池 ID)中,选择 Show ARN(显示 ARN)。 -
tags– 以格式表示的标签的键值对。key=value
要一次分配多个标签,请以逗号分隔的列表形式指定它们:
$aws cognito-identity tag-resource \>--resource-arnidentity-pool-arn\>--tagsStage=Test,CostCenter=80432,Owner=SysEng
查看标签
使用以下命令可查看您已分配给用户池和身份池的标签。
例 list-tags-for resource 用户池命令
使用 cognito-idp 命令集中的 list-tags-for-resource 查看分配给用户池的标签:
$aws cognito-idp list-tags-for-resource --resource-arnuser-pool-arn
例 list-tags-for resource 身份池命令
使用 cognito-identity 命令集中的 list-tags-for-resource 查看分配给身份池的标签:
$aws cognito-identity list-tags-for-resource --resource-arnidentity-pool-arn
移除标签
使用以下命令从用户池和身份池中删除标签。
例 untag-resource 用户池命令
使用 cognito-idp 命令集中的 untag-resource 删除用户池中的标签:
$aws cognito-idp untag-resource \>--resource-arnuser-pool-arn\>--tag-keysStage CostCenter Owner
对于 --tag-keys 参数,请指定一个或多个标签键。请勿包含标签值。用空格分隔键。
例 untag-resource 身份池命令
使用 cognito-identity 命令集中的 untag-resource 删除身份池中的标签:
$aws cognito-identity untag-resource \>--resource-arnidentity-pool-arn\>--tag-keysStage CostCenter Owner
对于 --tag-keys 参数,请指定一个或多个标签键。请勿包含标签值。
重要
删除用户或身份池后,与已删除池相关的标签在删除后的 30天内仍然可以在控制台或 API 调用中显示。
在创建资源时应用标签
使用以下命令可在创建用户池或身份池时分配标签。
例带标签的 create-user-pool 命令
当您使用 create-user-pool 命令创建用户时,您可以使用 --user-pool-tags 参数指定标签:
$aws cognito-idp create-user-pool \>--pool-nameuser-pool-name\>--user-pool-tagsStage=Test,CostCenter=80432,Owner=SysEng
Key-value 标签对必须采用以下格式。如果要添加多个标签,请以逗号分隔的列表形式指定它们。key=value
例带标签的创建身份池命令
当您使用 create-identity-pool 命令创建用户池时,您可以使用 --identity-pool-tags 参数指定标签:
$aws cognito-identity create-identity-pool \>--identity-pool-nameidentity-pool-name\>--allow-unauthenticated-identities \>--identity-pool-tagsStage=Test,CostCenter=80432,Owner=SysEng
Key-value 标签对必须采用以下格式。如果要添加多个标签,请以逗号分隔的列表形式指定它们。key=value
使用 Amazon Cognito API 管理标签
您可以在 Amazon Cognito API 中使用以下操作来管理用户池和身份池的标签。
适用于用户池标签的 API 操作
使用以下 API 操作来分配、查看和删除用户池的标签。
适用于身份池标签的 API 操作
使用以下 API 操作来分配、查看和删除身份池的标签。
Amazon CloudFormation 标记权限
当您使用创建或更新 Amazon Cognito 用户池或身份池资源时 Amazon CloudFormation, Amazon CloudFormation 可以将堆栈级别的标签和系统级标签传播到您的资源。要允许此标签传播,部署堆栈的 IAM 委托人除了资源创建权限外,还必须具有标记权限。
例如,要使用创建用户池cognito-idp:CreateUserPool,来电者还必须具有以下权限:
-
cognito-idp:TagResource -
cognito-idp:UntagResource -
cognito-idp:ListTagsForResource
同样,要使用创建身份池cognito-identity:CreateIdentityPool,呼叫者还必须具有以下权限:
-
cognito-identity:TagResource -
cognito-identity:UntagResource -
cognito-identity:ListTagsForResource
如果没有这些权限, Amazon CloudFormation 尝试对资源应用标签时,堆栈创建或更新可能会失败。如果您在堆栈操作期间看到与标记相关的访问被拒绝的错误,请验证您的 IAM 策略是否包含这些权限。