Étiquetage de vos ressources ElastiCache - Amazon ElastiCache pour Redis

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Étiquetage de vos ressources ElastiCache

Pour vous aider à gérer vos ressources ElastiCache, vous pouvez attribuer vos propres métadonnées à chaque ressource sous la forme de balises. Les balises vous permettent de classer vos ressources AWS de différentes manières, par exemple, par objectif, par propriétaire ou par environnement. Cette approche est utile lorsque vous avez de nombreuses ressources de même type. Elle vous permet d’identifier rapidement une ressource spécifique en fonction des balises que vous lui avez attribuées. Cette rubrique décrit les balises et vous montre comment les créer.

Avertissement

Nous vous recommandons de ne pas inclure de données sensibles dans vos balises.

Une balise est une étiquette que vous affectez à une ressource AWS. Chaque balise est constituée d’une clé et d’une valeur facultative que vous définissez. Les balises vous permettent de classer vos ressources AWS de différentes manières, par exemple, par objectif ou par propriétaire. Par exemple, vous pouvez définir un ensemble de balises pour les clusters ElastiCache de votre compte, ce qui vous permet de suivre le propriétaire et le groupe d'utilisateurs de chaque instance.

Nous vous recommandons de concevoir un ensemble de clés d'étiquette répondant à vos besoins pour chaque type de ressource. L’utilisation d’un ensemble de clés de balise cohérent facilite la gestion de vos ressources. Vous pouvez rechercher et filtrer les ressources en fonction des balises que vous ajoutez. Pour plus d'informations sur la mise en œuvre d'une stratégie efficace de balisage des ressources, consultez Le livre blanc AWS sur les bonnes pratiques en matière d'identification.

Les balises n'ont aucune signification sémantique pour ElastiCache et sont interprétées strictement comme une chaîne de caractères. De plus, les étiquettes ne sont pas automatiquement affectées à vos ressources. Vous pouvez modifier les clés et valeurs de balise, et vous pouvez retirer des balises d’une ressource à tout moment. Vous pouvez définir la valeur d'une balise à null. Si vous ajoutez une balise ayant la même clé qu’une balise existante sur cette ressource, la nouvelle valeur remplace l’ancienne valeur. Si vous supprimez une ressource, ses balises sont également supprimées. En outre, si vous ajoutez ou supprimez des balises sur un groupe de réplication, tous les nœuds de ce groupe de réplication verront également leurs balises ajoutées ou supprimées.

Vous pouvez gérer les balises à l'aide de la AWS Management Console, de la AWS CLI et de l'API ElastiCache.

Si vous utilisez IAM, vous pouvez contrôler quels utilisateurs de votre compte AWS sont autorisés à créer, modifier ou supprimer des étiquettes. Pour de plus amples informations, veuillez consulter Autorisations de niveau ressource.

Vous pouvez étiqueter à la plupart des ressources ElastiCache qui existent déjà dans votre compte. Le tableau ci-dessous répertorie les ressources qui prennent en charge le balisage. Si vous utilisez l'outil AWS Management Console, vous pouvez appliquer des balises aux ressources à l'aide de l'outil Tag Editor (Éditeur de balises). Certains écrans de ressources vous permettent de spécifier des balises pour une ressource lorsque vous la créez ; par exemple, une balise avec une clé de Nom et une valeur que vous spécifiez. Dans la plupart des cas, la console applique les balises immédiatement après la création de la ressource (plutôt qu’au cours de la création de ressources). La console peut organiser des ressources en fonction de la balise Name (Nom), mais celle-ci n'a pas de signification sémantique pour le service ElastiCache.

En outre, certaines actions de création de ressources vous permettent de spécifier des balises pour une ressource lors de la création de cette dernière. Si les balises ne peuvent pas être appliquées au cours de la création de ressources, nous restaurons le processus de création de ressources. Cela permet de s’assurer que les ressources sont créées avec des balises ou qu’elles ne sont pas créées du tout, et qu’aucune ressource ne demeurent sans balise à tout moment. En attribuant des balises aux ressources au moment de la création, vous pouvez supprimer la nécessité d’exécuter des scriptes de balisage personnalisés après la création de ressources.

Si vous utilisez l'API Amazon ElastiCache, la CLI AWS ou un kit SDK AWS, vous pouvez appliquer les balises aux nouvelles ressources sur l'action d'API ElastiCache correspondante à l'aide du paramètre Tags. Il s'agit des options suivantes :

  • CreateServerlessCache

  • CreateCacheCluster

  • CreateReplicationGroup

  • CopyServerlessCacheSnapshot

  • CopySnapshot

  • CreateCacheParameterGroup

  • CreateCacheSecurityGroup

  • CreateCacheSubnetGroup

  • CreateServerlessCacheSnapshot

  • CreateSnapshot

  • CreateUserGroup

  • CreateUser

  • PurchaseReservedCacheNodesOffering

Le tableau suivant décrit les ressources ElastiCache qui peuvent être étiquetées, et les ressources qui peuvent être étiquetées lors de la création à l'aide de l'API ElastiCache, de la CLI AWS ou d'un kit SDK AWS.

Prise en charge de l'étiquetage pour les ressources ElastiCache
Ressource Prend en charge les balises Prend en charge le balisage au moment de la création
serverlesscache Oui Oui
parametergroup Oui Oui
securitygroup Oui Oui
subnetgroup Oui Oui
replicationgroup Oui Oui
cluster Oui Oui
reserved-instance Oui Oui
serverlesscachesnapshot Oui Oui
instantané Oui Oui
utilisateur Oui Oui
usergroup Oui Oui
Note

Vous ne pouvez pas étiqueter les entrepôts de données globaux.

Vous pouvez appliquer des autorisations au niveau des ressources basées sur des balises dans vos politiques IAM aux actions d'API ElastiCache qui prennent en charge l'étiquetage à la création, afin de mettre en œuvre un contrôle détaillé des utilisateurs et des groupes qui peuvent étiqueter des ressources à leur création. Vos ressources sont correctement sécurisées depuis la création. Les balises sont appliquées immédiatement à vos ressources. Les autorisations de niveau ressource basées sur des balises sont donc effectives immédiatement. Vos ressources peuvent être suivies et signalées avec plus de précision. Vous pouvez appliquer l’utilisation du balisage sur les nouvelles ressources et contrôler que les clés et valeurs de balise sont définies sur vos ressources.

Pour de plus amples informations, veuillez consulter Exemple : étiquetage de vos ressources.

Pour plus d'informations sur l'étiquetage de vos ressources pour la facturation, veuillez consulter Surveillance des coûts avec des balises de répartition des coûts.

Les règles suivantes s'appliquent à l'étiquetage dans le cadre d'opérations de requête :

  • CreateReplicationGroup :

    • Si les paramètres --primary-cluster-id et --tags sont inclus dans la requête, les balises de requête sont ajoutées au groupe de réplication et propagées à tous les clusters de cache du groupe de réplication. Si le cluster de cache principal possède des balises existantes, celles-ci seront remplacées par les balises de requête pour avoir des balises cohérentes sur tous les nœuds.

      S'il n'y a pas de balises de requête, les balises de cluster de cache primaires sont ajoutées au groupe de réplication et propagées à tous les clusters de cache.

    • Si --snapshot-name ou --serverless-cache-snapshot-name est fourni :

      Si des balises sont incluses dans la demande, le groupe de réplication sera étiqueté uniquement avec ces balises. Si aucune balise n’est incluse dans la demande, les balises de l’instantané seront ajoutées au groupe de réplication.

    • Si --global-replication-group-id est fourni :

      Si des balises sont incluses dans la demande, les balises de la demande seront ajoutées au groupe de réplication et propagées à tous les clusters de cache.

  • CreateCacheCluster :

    • Si --replication-group-id est fourni :

      Si des balises sont incluses dans la requête, le cluster de cache sera étiqueté uniquement avec ces balises. Si aucune balise n'est incluse dans la demande, le cluster de cache héritera des balises de groupe de réplication au lieu des balises du cluster de cache principal.

    • Si --snapshot-name est fourni :

      Si des balises sont incluses dans la requête, le cluster de cache sera étiqueté uniquement avec ces balises. Si aucune balise n'est incluse dans la requête, les balises d'instantané seront ajoutées au cluster de cache.

  • CreateServerlessCache :

    • Si des balises sont incluses dans la demande, seules les balises de la demande seront ajoutées au cache sans serveur.

  • CreateSnapshot :

    • Si --replication-group-id est fourni :

      Si des balises sont incluses dans la requête, seules les balises de requête seront ajoutées à l'instantané. Si aucune balise n'est incluse dans la requête, les balises du groupe de réplication sont ajoutées à l'instantané.

    • Si --cache-cluster-id est fourni :

      Si des balises sont incluses dans la requête, seules les balises de requête seront ajoutées à l'instantané. Si aucune balise n'est incluse dans la requête, les balises de cluster de cache sont ajoutées à l'instantané.

    • Pour les instantanés automatiques :

      Les balises se propagent à partir des balises du groupe de réplication.

  • CreateServerlessCacheSnapshot :

    • Si des balises sont incluses dans la demande, seules les balises de la demande seront ajoutées à l’instantané du cache sans serveur.

  • CopySnapshot :

    • Si des balises sont incluses dans la requête, seules les balises de requête seront ajoutées à l'instantané. Si aucune balise n'est incluse dans la requête, les balises d'instantané source sont ajoutées à l'instantané copié.

  • CopyServerlessCacheSnapshot :

    • Si des balises sont incluses dans la demande, seules les balises de la demande seront ajoutées à l’instantané du cache sans serveur.

  • AddTagsToResource et RemoveTagsFromResource :

    • Les balises seront ajoutées/supprimées du groupe de réplication et l'action sera propagée à tous les clusters du groupe de réplication.

    Note

    AddTagsToResource et RemoveTagsFromResource ne peuvent pas être utilisés pour les paramètres par défaut et les groupes de sécurité.

  • IncreaseReplicaCount et ModifyReplicationGroupShardConfiguration :

    • Tous les nouveaux clusters ajoutés au groupe de réplication auront les mêmes balises que le groupe de réplication.

Les restrictions de base suivantes s’appliquent aux balises :

  • Nombre maximal de balises par ressource : 50

  • Pour chaque ressource, chaque clé de balise doit être unique, et chaque clé de balise peut avoir une seule valeur.

  • Longueur de clé maximale : 128 caractères Unicode en UTF-8.

  • Longueur de valeur maximale : 256 caractères Unicode en UTF-8.

  • Bien qu'ElastiCache autorise tous les caractères dans ses balises, d'autres services peuvent être restrictifs. Les caractères autorisés pour les services sont les lettres, les chiffres et les espaces représentables en UTF-8, ainsi que les caractères suivants : + - = . _ : / @

  • Les clés et valeurs de balise sont sensibles à la casse.

  • Le préfixe aws: est réservé à l’utilisation d’AWS. Lorsque la balise possède une clé de balise avec ce préfixe, vous ne pouvez pas modifier ou supprimer sa clé ou sa valeur. Les balises avec le préfixe aws: ne sont pas comptabilisées comme vos balises pour la limite de ressources.

Vous ne pouvez pas mettre fin à une ressource, ou l’arrêter ou la supprimer uniquement en fonction de ses balises ; vous devez spécifier l’identificateur de ressource. Par exemple, pour supprimer des instantanés (snapshot) que vous avez labelisés avec une clé de balise appelée DeleteMe, vous devez utiliser l'action DeleteSnapshot avec les identificateurs de ressource des instantanés, tels que snap-1234567890abcdef0.

Pour plus d'informations sur les ressources ElastiCache que vous pouvez étiqueter, veuillez consulter Ressources que vous pouvez étiqueter.

  • Création d’un cache sans serveur à l’aide de balises

    aws elasticache create-serverless-cache \ --serverless-cache-name CacheName \ --engine redis --tags Key="Cost Center", Value="1110001" Key="project",Value="XYZ"
  • Ajout de balises à un cache sans serveur

    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"
  • Ajout de balises à un groupe de réplication.

    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"
  • Création d'un cluster de cache en utilisant des balises.

    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"
  • Création d’un instantané sans serveur avec des balises.

    aws elasticache create-serverless-cache-snapshot \ --serverless-cache-name testing-tags \ --serverless-cache-snapshot-name bkp-testing-tags-scs \ --tags Key="work",Value="foo"
  • Création d'un instantané avec des balises.

    Dans ce cas, si vous ajoutez des balises sur demande, même si le groupe de réplication contient des balises, l'instantané recevra uniquement les balises demandées.

    aws elasticache create-snapshot \ --replication-group-id testing-tags \ --snapshot-name bkp-testing-tags-rg \ --tags Key="work",Value="foo"
  1. Autoriser une action AddTagsToResource sur un cluster uniquement si le cluster contient la balise Project=XYZ.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:cluster:*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Project": "XYZ" } } } ] }
  2. Autoriser une action RemoveTagsFromResource à partir d'un groupe de réplication s'il contient les balises Projet et Service et que les clés sont différentes de Project et Service.

    { "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. Autoriser AddTagsToResource à n'importe quelle ressource uniquement si les balises sont différentes de Project et Service.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:*:*" ], "Condition": { "ForAnyValue:StringNotEqualsIgnoreCase": { "aws:TagKeys": [ "Service", "Project" ] } } } ] }
  4. Refuser une action CreateReplicationGroup si la requête comporte Tag Project=Foo.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "elasticache:CreateReplicationGroup", "Resource": [ "arn:aws:elasticache:*:*:replicationgroup:*" ], "Condition": { "StringEquals": { "aws:RequestTag/Project": "Foo" } } } ] }
  5. Refuser une action CopySnapshot si l'instantané source contient la balise Project=XYZ et que la balise demandée est Service=ElastiCache.

    { "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. Refus de l'action CreateCacheCluster si l'identification de la demande Project est manquante ou n'est pas égale à Dev, QA ou 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" ] } } } ] }

Pour obtenir des informations connexes sur les clés de condition, consultez Utilisation de clés de condition.