标记 ElastiCache 资源 - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

标记 ElastiCache 资源

为了帮助您管理集群和其他 ElastiCache 资源,您可以标签的形式为每个资源分配您自己的元数据。标签可让您按各种标准(例如用途、所有者或环境)对 Amazon 资源进行分类。这在您具有相同类型的很多资源时会很有用 – 您可以根据分配给特定资源的标签快速识别该资源。本主题介绍标签并说明如何创建标签。

警告

作为最佳实践,我们建议您不要在标签中包含敏感数据。

标签是为Amazon资源分配的标记。每个标签都包含定义的一个键 和一个可选值。标签可让您按各种标准(例如用途或拥有者)对 Amazon 资源进行分类。例如,您可以为账户中的 ElastiCache 集群定义一组标签,以帮助跟踪每个实例的拥有者和用户组。

我们建议您针对每类资源设计一组标签,以满足您的需要。使用一组连续的标签键,管理 资源时会更加轻松。您可以根据添加的标签搜索和筛选资源。有关如何实施有效的资源标记策略的更多信息,请参阅 Amazon 白皮书标记最佳实践

标签对 ElastiCache 没有任何语义意义,应严格按字符串进行解析。同时,标签不会自动分配至您的资源。您可以修改标签的密钥和值,还可以随时删除资源的标签。您可以将标签的值设置为 null。如果您添加的标签的值与该实例上现有标签的值相同,新的值就会覆盖旧值。如果删除资源,资源的所有标签也会被删除。此外,如果添加或删除复制组的标签,则也将向该复制组中的所有节点添加或删除其标签。

您可以使用 Amazon Web Services Management Console、Amazon CLI 和 ElastiCache API 处理标签。

如果您使用的是 IAM,则可以控制 Amazon 账户中的哪些用户拥有创建、编辑或删除标签的权限。有关更多信息,请参阅资源级权限

您可以标记账户中已存在的大多数 ElastiCache 资源。下表列出了支持标记的资源。如果您使用的是 Amazon Web Services Management Console,则可以使用标签编辑器向资源应用标签。在您创建资源时,某些资源屏幕支持为资源指定标签;例如,包含 Name 键和您指定的值的标签。在大多数情况下,控制台会在资源创建后 (而不是在资源创建期间) 立即应用标签。控制台可能根据 Name(名称)标签对资源进行组织,但此标签对 ElastiCache 服务没有任何语义意义。

此外,某些资源创建操作允许您在创建资源时为其指定标签。如果无法在资源创建期间应用标签,系统会回滚资源创建过程。这样可确保要么创建带有标签的资源,要么根本不创建资源,即任何时候都不会创建出未标记的资源。通过在创建时标记资源,您不需要在资源创建后运行自定义标记脚本。

如果您使用的是 Amazon ElastiCache API,Amazon CLI 或 Amazon 开发工具包,则可以使用相关 ElastiCache API 操作上的 Tags 参数来应用标签。它们是:

  • CreateServerlessCache

  • CreateCacheCluster

  • CreateCacheParameterGroup

  • CreateCacheSecurityGroup

  • CreateCacheSubnetGroup

  • PurchaseReservedCacheNodesOffering

下表描述了可以标记的 ElastiCache 资源以及可在创建时使用 ElastiCache API、Amazon CLI 或 Amazon 开发工具包标记的资源。

支持用于 ElastiCache 资源的标签
资源 支持标签 支持在创建时标记
serverlesscache
parametergroup
securitygroup
subnetgroup
cluster
reserved-instance

对于支持在创建时标记的 ElastiCache API 操作,您可以在 IAM 策略中应用基于标签的资源级权限,以对可在创建时标记资源的用户和组实施精细控制。资源从创建开始就会受到适当的保护 – 标签会立即应用于资源。因此,控制资源使用的任何基于标签的资源级权限都会立即生效。可以更准确地对您的资源进行跟踪和报告。您可以强制对新资源使用标记,可以控制对资源设置哪些标签键和值。

有关更多信息,请参阅标记资源示例

有关标记资源以便于计费的更多信息,请参阅 使用成本分配标签监控成本

下面是适用于标签的基本限制:

  • 每个资源的标签数上限 – 50

  • 对于每个资源,每个标签键都必须是唯一的,每个标签键只能有一个值。

  • 最大键长度 – 128 个 Unicode 字符 (采用 UTF-8 格式)。

  • 最大值长度 – 256 个 Unicode 字符 (采用 UTF-8 格式)。

  • 虽然 ElastiCache 允许在其标签中使用任何字符,但其他服务对此具有严格限制。允许在不同的服务中使用的字符包括:可以使用 UTF-8 表示的字母、数字和空格以及以下字符:+ - = . _ : / @

  • 标签键和值区分大小写。

  • aws: 前缀专门预留供 Amazon 使用。如果某个标签具有带有此标签键,则您无法编辑该标签的键或值。具有 aws: 前缀的标签不计入每个资源的标签数限制。

您不能仅依据标签终止或删除资源,而必须指定资源的标识符。例如,要删除您使用名为 DeleteMe 的标签键标记的快照,您必须将 DeleteSnapshot 操作与快照的资源标识符 (如 snap-1234567890abcdef0) 结合使用。

有关可以标记的 ElastiCache 资源的详细信息,请参阅 您可以为之添加标签的资源

  • 使用标签创建无服务器缓存

    aws elasticache create-serverless-cache \ --serverless-cache-name CacheName \ --engine memcached --tags Key="Cost Center", Value="1110001" Key="project",Value="XYZ"
  • 向无服务器缓存添加标签

    aws elasticache add-tags-to-resource \ --resource-name arn:aws:elasticache:us-east-1:111111222233:serverlesscache:my-cache \ --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  • 使用标签创建缓存群集。

    aws elasticache create-cache-cluster \ --cluster-id testing-tags \ --cluster-description cluster-test \ --cache-subnet-group-name test \ --cache-node-type cache.t2.micro \ --engine memcached \ --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  1. 允许仅当集群具有 Project=XYZ 标签时才对该集群应用 AddTagsToResource 操作。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:cluster:*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Project": "XYZ" } } } ] }
  2. 当复制组包含 Project 和 Service 标签且密钥与 Project 和 Service 不同时,允许该复制组执行 RemoveTagsFromResource 操作。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:RemoveTagsFromResource", "Resource": [ "arn:aws:elasticache:*:*:replicationgroup:*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Service": "Elasticache", "aws:ResourceTag/Project": "XYZ" }, "ForAnyValue:StringNotEqualsIgnoreCase": { "aws:TagKeys": [ "Project", "Service" ] } } } ] }
  3. 允许仅当标签与 Project 和 Service 不同时才能对任何资源应用 AddTagsToResource

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:*:*" ], "Condition": { "ForAnyValue:StringNotEqualsIgnoreCase": { "aws:TagKeys": [ "Service", "Project" ] } } } ] }
  4. 如果请求标签 CreateCacheCluster 丢失或不等于 ProjectDevQA,则拒绝 Prod 操作。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticache:CreateCacheCluster" ], "Resource": [ "arn:aws:elasticache:*:*:parametergroup:*", "arn:aws:elasticache:*:*:subnetgroup:*", "arn:aws:elasticache:*:*:securitygroup:*", "arn:aws:elasticache:*:*:replicationgroup:*" ] }, { "Effect": "Deny", "Action": [ "elasticache:CreateCacheCluster" ], "Resource": [ "arn:aws:elasticache:*:*:cluster:*" ], "Condition": { "Null": { "aws:RequestTag/Project": "true" } } }, { "Effect": "Allow", "Action": [ "elasticache:CreateCacheCluster", "elasticache:AddTagsToResource" ], "Resource": "arn:aws:elasticache:*:*:cluster:*", "Condition": { "StringEquals": { "aws:RequestTag/Project": [ "Dev", "Prod", "QA" ] } } } ] }

有关条件键的相关信息,请参阅使用条件键