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

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

给您的 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,您可以通过使用标签编辑器。在您创建资源时,某些资源屏幕能让您为资源指定标签;例如,具有键并且具有您指定的值的标签。在大多数情况下,控制台会在资源创建后 (而不是在资源创建期间) 立即应用标签。控制台可以根据名称标签,但此标签对于ElastiCache服务。

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

如果您使用的是亚马逊ElastiCacheAPI、AmazonCLI 或Amazon软件开发工具包,您可以使用Tags参数上的ElastiCache应用标签的 API 操作。它们是:

  • CreateCacheCluster

  • CreateReplicationGroup

  • CopySnapshot

  • CreateCacheParameterGroup

  • CreateCacheSecurityGroup

  • CreateCacheSubnetGroup

  • CreateSnapshot

  • CreateUserGroup

  • CreateUser

  • PurchaseReservedCacheNodesOffering

下表描述了ElastiCache资源以及可在创建时使用ElastiCacheAPI、AmazonCLI 或Amazon软件开发工具包。

ElastiCache 资源标记支持
资源 支持标签 支持在创建时标记
ParameterGroup
SecurityGroup
SubnetGroup
ReplicationGroup
集群
预留实例
snapshot
user
用户组
注意

无法标记全局数据存储。

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

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

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

以下规则适用于标记作为请求操作的一部分:

  • CreateReplicationGroup

    • 如果--primary-cluster-id--tags参数包含在请求中,则请求标记将添加到复制组中并传播到复制组中的所有缓存集群。如果主缓存集群具有现有标签,则这些标签将被请求标签覆盖,以便在所有节点上具有一致的标签。

      如果没有请求标记,则主缓存集群标记将添加到复制组并传播到所有缓存集群。

  • CreateCacheCluster

    • 如果--replication-group-id提供:

      如果请求中包含标记,则仅使用这些标记对缓存集群进行标记。如果请求中未包含任何标签,则缓存集群将继承复制组标签,而不是主缓存集群的标签。

    • 如果--snapshot-name提供:

      如果请求中包含标记,则仅使用这些标记对缓存集群进行标记。如果请求中未包含任何标签,快照标签将添加到缓存集群中。

    • 如果--global-replication-group-id提供:

      如果请求中包含标记,则请求标记将添加到复制组并传播到所有节点。

  • CreateSnapshot

    • 如果--replication-group-id提供:

      如果请求中包含标签,则只会将请求标签添加到快照中。如果请求中没有包含任何标签,则复制组标签将添加到快照中。

    • 如果--cache-cluster-id提供:

      如果请求中包含标签,则只会将请求标签添加到快照中。如果请求中未包含任何标签,则缓存集群标签将添加到快照中。

    • 对于自动快照:

      标签将从复制组标记传播。

  • CopySnapshot

    如果请求中包含标签,则只会将请求标签添加到快照中。如果请求中未包含任何标签,则源快照标签将添加到复制的快照中。

  • AddTagsToResourceRemoveTagsFromResource

    将从复制组中添加/删除标签,操作将传播到复制组中的所有群集。

    注意

    AddTagsToResourceRemoveTagsFromResource不能用于默认参数和安全组。

  • IncreaseReplicaCountModifyReplicationGroupShardConfiguration:添加到复制组的所有新节点将与复制组应用相同的标记。

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

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

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

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

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

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

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

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

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

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

  • 向复制组添加标签。

    aws elasticache add-tags-to-resource \ --resource-name arn:aws:elasticache:us-east-1:111111222233:replicationgroup:my-rg \ --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 redis \ --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  • 创建具有标签的快照。

    在这种情况下,如果您根据请求添加标签,即使复制组包含标签,快照也将仅接收请求标记。

    aws elasticache create-snapshot \ --replication-group-id testing-tags \ --snapshot-name bkp-testing-tags-rg \ --tags Key="work",Value="foo"
  1. 允许AddTagsToResource操作仅当集群具有标记项目 =XYZ 时才会移动到群集。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:cluster:*" ], "Condition": { "ForAllValues:StringEquals": { "aws:ResourceTag/Project": "XYZ" } } } ] }
  2. 允许RemoveTagsFromResource操作,如果该操作包含标记项目和服务,并且密钥与项目和服务不同。

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:*:*" ], "Condition": { "ForAllValues:StringNotEqualsIgnoreCase": { "aws:TagKeys": [ "Service", "Project" ] } } } ] }
  4. 拒绝CreateReplicationGroup操作(如果请求具有Tag Project=Foo

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "elasticache:CreateReplicationGroup", "Resource": [ "arn:aws:elasticache:*:*:replicationgroup:*" ], "Condition": { "ForAnyValue:StringEquals": { "aws:RequestTag/Project": "Foo" } } } ] }
  5. 拒绝CopySnapshot操作,如果源快照具有标记项目 = XYZ 并且请求标记为服务 = 弹性缓冲。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "elasticache:CopySnapshot", "Resource": [ "arn:aws:elasticache:*:*:snapshot:*" ], "Condition": { "ForAllValues:StringEquals": { "aws:ResourceTag/Project": "XYZ", "aws:RequestTag/Service": "Elasticache" } } } ] }

有关更多信息,请参阅 使用条件键