標記您的 ElastiCache 資源 - Amazon ElastiCache

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

標記您的 ElastiCache 資源

為了協助您管理叢集和其他 ElastiCache 資源,您可以以標籤的形式將自己的中繼資料指派給每個資源。標籤可讓您以不同方式分類 AWS 資源,例如依用途、擁有者或環境分類。當您有許多相同類型的資源時,這將會很有用,因為—您可以依據先前指派的標籤,快速識別特定的資源。本主題說明標籤並示範如何建立它們。

警告

根據最佳實務,建議您不要在標籤中包含敏感資料。

標籤是您指派給 AWS 資源的標籤。每個標籤皆包含由您定義的一個金鑰與一個選用值。標籤可讓您以不同方式分類 AWS 資源,例如依用途或擁有者分類。例如,您可以為帳戶的 ElastiCache 叢集定義一組標籤,協助您追蹤每個執行個體的擁有者和使用者群組。

我們建議您為每種資源類型建立符合您需求的標籤金鑰。使用一致的標籤金鑰組可讓您更輕鬆管理您的 資源。您可以根據您新增的標籤搜尋和篩選資源。如需如何實作有效資源標記策略的詳細資訊,請參閱 AWS 白皮書標記最佳實務

標籤對 沒有任何語義意義, ElastiCache 並嚴格解譯為一串字元。此外,標籤不會自動指派給您的資源。您可以編輯標籤金鑰和值,並且可以隨時從資源移除標籤。您可以將標籤的值設為 null。若您將與現有標籤具有相同鍵的標籤新增到該資源,則新值會覆寫舊值。如果您刪除資源,也會刪除任何該資源的標籤。此外,如果您為複寫群組新增或刪除標籤,也會為該複寫群組中的所有節點新增或移除其標籤。

您可以使用 AWS Management Console、 AWS CLI和 來使用標籤 ElastiCache API。

如果您使用的是 IAM,您可以控制 AWS 帳戶中哪些使用者具有建立、編輯或刪除標籤的許可。如需詳細資訊,請參閱資源層級許可

您可以標記帳戶中已存在的大多數 ElastiCache 資源。下表列出支援標籤建立的資源。如果您使用的是 AWS Management Console,您可以使用標籤編輯器 將標籤套用至資源。有些資源畫面可讓您在建立資源時指定資源的標籤;例如,具有 Name 索引鍵和您指定值的標籤。在大多數的案例中,主控台會立即在建立資源後套用標籤 (而非在資源建立過程時)。主控台可能會根據名稱標籤組織資源,但此標籤對 ElastiCache 服務沒有任何語義意義。

此外,有些資源建立動作可讓您在建立資源時指定資源的標籤。若標籤無法在資源建立時套用,我們會轉返資源建立程序。這可確保資源不是具有標籤建立,就是不會建立,因此無論何時都不會有不具有標籤的資源。藉由在建立時為資源建立標籤,您可以消除在資源建立後執行自訂標籤指令碼的必要。

如果您使用的是 Amazon ElastiCache API AWS CLI、 或 AWS SDK,您可以在相關 ElastiCache API動作上使用 Tags 參數來套用標籤。這些類別為:

  • CreateServerlessCache

  • CreateCacheCluster

  • CreateReplicationGroup

  • CopyServerlessCacheSnapshot

  • CopySnapshot

  • CreateCacheParameterGroup

  • CreateCacheSecurityGroup

  • CreateCacheSubnetGroup

  • CreateServerlessCacheSnapshot

  • CreateSnapshot

  • CreateUserGroup

  • CreateUser

  • PurchaseReservedCacheNodesOffering

下表說明可標記 ElastiCache 的資源,以及可使用 AWS CLI、 ElastiCache API或 建立時可標記的資源 AWS SDK。

資源的標記支援 ElastiCache
資源 支援標籤 支援在建立時標記
serverlesscache
parametergroup
securitygroup
subnetgroup
replicationgroup
叢集
reserved-instance
serverlesscachesnapshot
快照
使用者
usergroup
注意

您無法為全域資料存放區加上標籤。

您可以在IAM政策中將 ElastiCache API標籤型資源層級許可套用至支援建立時標記的動作,以對可在建立時標記資源的使用者和群組實作精細控制。您的資源從建立時便已獲得妥善的保護,標籤會立即套用到您的資源。因此,控制資源使用情況的任何標籤式資源層級許可都會立即生效。您可以更準確的追蹤和報告您的資源。您可以強制新資源使用標籤,並控制哪些標籤金鑰和值會在您的資源上設定。

如需詳細資訊,請參閱為資源加上標籤的範例

如需為資源加上標籤以便計費的詳細資訊,請參閱「使用成本配置標籤監控成本」。

以下規則適用於屬於請求作業一部分的標記程序:

  • CreateReplicationGroup:

    • 如果 --primary-cluster-id--tags 參數包含在請求中,就會將請求標籤新增至複寫群組,並傳播至複寫群組中的所有快取叢集。如果主快取叢集有現有的標籤,請求標籤會覆寫這些標籤,以便讓所有節點上的標籤保持一致。

      如果沒有請求標籤,就會將主快取叢集標籤新增至複寫群組,並傳播至所有快取叢集。

    • 如果提供 --snapshot-name--serverless-cache-snapshot-name

      如果請求中包含標籤,複寫群組只會使用這些標籤進行標記。如果請求中不含任何標籤,就會將快照標籤新增至複寫群組。

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

      如果請求中包含標籤,就會將這些請求標籤新增至複寫群組,並傳播至所有快取叢集。

  • CreateCacheCluster :

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

      如果請求中包含標籤,快取叢集只會使用這些標籤進行標記。如果請求中不含任何標籤,快取叢集會繼承複寫群組標籤,而不是主快取叢集的標籤。

    • 如果提供 --snapshot-name

      如果請求中包含標籤,快取叢集只會使用這些標籤進行標記。如果請求中不含任何標籤,就會將快照標籤新增至快取叢集。

  • CreateServerlessCache :

    • 如果請求中包含標籤,就只會將這些請求標籤新增至無伺服器快取。

  • CreateSnapshot :

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

      如果請求中包含標籤,就只會將這些請求標籤新增至快照。如果請求中不含任何標籤,就會將複寫群組標籤新增至快照。

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

      如果請求中包含標籤,就只會將這些請求標籤新增至快照。如果請求中不含任何標籤,就會將快取叢集標籤新增至快照。

    • 針對自動快照:

      標籤會從複寫群組標籤傳播。

  • CreateServerlessCacheSnapshot :

    • 如果請求中包含標籤,就只會將這些請求標籤新增至無伺服器快取快照。

  • CopySnapshot :

    • 如果請求中包含標籤,就只會將這些請求標籤新增至快照。如果請求中不含任何標籤,就會將來源快照標籤新增至複製的快照。

  • CopyServerlessCacheSnapshot :

    • 如果請求中包含標籤,就只會將這些請求標籤新增至無伺服器快取快照。

  • AddTagsToResourceRemoveTagsFromResource

    • 將從複寫群組新增/移除標籤,並將動作傳播到複寫群組中的所有叢集。

    注意

    AddTagsToResourceRemoveTagsFromResource無法用於預設參數和安全群組。

  • IncreaseReplicaCountModifyReplicationGroupShardConfiguration

    • 新增至複寫群組的所有新叢集都會套用與複寫群組相同的標籤。

以下基本限制適用於標籤:

  • 每一資源最多標籤數 – 50

  • 對於每一個資源,每個標籤金鑰必須是唯一的,且每個標籤金鑰只能有一個值。

  • 金鑰長度上限 – UTF-8 中的 128 個 Unicode 字元。

  • 最大值長度 – UTF-8 中的 256 Unicode 字元。

  • 雖然 ElastiCache 允許其標籤中的任何字元,但其他服務可能具有限制性。跨服務允許的字元為:字母、數字和空格,以 UTF-8 表示,以及下列字元:+ - = . _ : / @

  • 標籤金鑰與值皆區分大小寫。

  • aws:首會保留以供 AWS 使用。如果標籤具有此字首的標籤金鑰,則您無法編輯或刪除標籤的金鑰或值。具 aws: 字首的標籤,不算在受資源限制的標籤計數內。

您無法僅根據標籤終止、停止或刪除資源。您必須指定資源識別符。例如,若要刪除您套用稱為 DeleteMe 標籤金鑰的快照,您必須搭配快照的資源識別符 (例如 DeleteSnapshot) 使用 snap-1234567890abcdef0 動作。

如需可標記 ElastiCache 資源的詳細資訊,請參閱 您可以標記的資源

  • 使用標籤建立無伺服器快取。此範例使用 Memcached 作為引擎。

    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 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 valkey \ --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  • 使用標籤建立快取叢集。此範例使用 Redis 作為引擎。

    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 valkey \ --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  • 建立包含標籤的無伺服器快照。此範例使用 Memcached 作為引擎。

    aws elasticache create-serverless-cache-snapshot \ --serverless-cache-name testing-tags \ --serverless-cache-snapshot-name bkp-testing-tags-scs \ --tags Key="work",Value="foo"
  • 使用標籤建立快照。

    快照目前僅適用於 Redis。在此情況下,如果您對請求新增了標籤,即使複寫群組包含標籤,快照也只會接收請求標籤。

    aws elasticache create-snapshot \ --replication-group-id testing-tags \ --snapshot-name bkp-testing-tags-rg \ --tags Key="work",Value="foo"
  1. 僅當叢集具有標籤 Project= 時,才允許對叢集AddTagsToResource執行動作XYZ。

    { "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. 如果請求具有 Tag Project=Foo,則拒絕 CreateReplicationGroup 動作。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "elasticache:CreateReplicationGroup", "Resource": [ "arn:aws:elasticache:*:*:replicationgroup:*" ], "Condition": { "StringEquals": { "aws:RequestTag/Project": "Foo" } } } ] }
  5. 如果來源快照具有 Project=XYZ 標籤,且請求標籤為 Service=Elasticache,則會拒絕CopySnapshot動作。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "elasticache:CopySnapshot", "Resource": [ "arn:aws:elasticache:*:*:snapshot:*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Project": "XYZ", "aws:RequestTag/Service": "Elasticache" } } } ] }
  6. 如果請求標籤 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" ] } } } ] }

如需條件索引鍵的相關資訊,請參閱 使用條件索引鍵