本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
標記您的 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。
資源 | 支援標籤 | 支援在建立時標記 |
---|---|---|
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 :
-
如果請求中包含標籤,就只會將這些請求標籤新增至無伺服器快取快照。
-
-
AddTagsToResource 和 RemoveTagsFromResource :
-
將從複寫群組新增/移除標籤,並將動作傳播到複寫群組中的所有叢集。
注意
AddTagsToResource 和 RemoveTagsFromResource無法用於預設參數和安全群組。
-
-
IncreaseReplicaCount 和 ModifyReplicationGroupShardConfiguration:
-
新增至複寫群組的所有新叢集都會套用與複寫群組相同的標籤。
-
以下基本限制適用於標籤:
每一資源最多標籤數 – 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"
-
僅當叢集具有標籤 Project= 時,才允許對叢集
AddTagsToResource
執行動作XYZ。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:cluster:*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Project": "XYZ" } } } ] }
-
如果複寫群組包含 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" ] } } } ] }
-
只有在標籤不是 Project 和 Service 時,才允許對任何資源執行
AddTagsToResource
。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:*:*" ], "Condition": { "ForAnyValue:StringNotEqualsIgnoreCase": { "aws:TagKeys": [ "Service", "Project" ] } } } ] }
-
如果請求具有
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" } } } ] }
-
如果來源快照具有 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" } } } ] }
-
如果請求標籤
CreateCacheCluster
遺失或不等於Project
、Dev
或QA
,則拒絕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" ] } } } ] }
如需條件索引鍵的相關資訊,請參閱 使用條件索引鍵。