Marcação de recursos do ElastiCache - Amazon ElastiCache para Redis

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Marcação de recursos do ElastiCache

Para ajudar você a gerenciar seus clusters e outros recursos do ElastiCache, é possível atribuir seus próprios metadados a cada recurso na forma de tags. As tags permitem categorizar seus recursos da AWS de diferentes formas (como por finalidade, por proprietário ou por ambiente). Isso é útil quando você tem muitos recursos do mesmo tipo. É possível identificar rapidamente um recurso específico baseado nas tags que você atribuiu a ele. Este tópico descreve tags e mostra a você como criá-los.

Atenção

Como uma prática recomendada, sugerimos que você não inclua dados confidenciais nas suas tags.

Uma tag é um rótulo atribuído a um recurso da AWS. Cada tag consiste em uma chave e um valor opcional, ambos definidos por você. As tags permitem categorizar seus recursos da AWS de diferentes formas, por exemplo, por finalidade ou por proprietário. Por exemplo, você pode definir um conjunto de tags para os clusters do ElastiCache sua conta que ajudem a rastrear o proprietário e o grupo de usuários de cada instância.

Recomendamos que você desenvolva um conjunto de chave de tags que atenda suas necessidades para cada tipo de recurso. Usar um conjunto consistente de chaves de tags facilita para você gerenciar seus recursos da . É possível pesquisar e filtrar os recursos de acordo com as tags que adicionar. Para obter mais informações sobre como implementar uma estratégia eficaz de marcação de recursos, consulte o whitepaper da AWS, Tagging Best Practices (Práticas recomendadas de marcação).

As tags não têm significado semântico no ElastiCache e são interpretadas estritamente como uma string de caracteres. Além disso, as tags não são automaticamente atribuídas aos seus recursos. É possível editar chaves de tags e valores, e é possível remover as tags de um recurso a qualquer momento. É possível definir o valor de uma tag como null. Ao adicionar uma tag que tenha a mesma chave de uma tag existente nesse recurso, o novo valor substituirá o antigo. Se você excluir um recurso, todas as tags do recurso também serão excluídas. Além disso, se você adicionar ou excluir tags em um grupo de replicação, todos os nós nesse grupo de replicação também terão suas tags adicionadas ou removidas.

Você pode trabalhar com tags usando o AWS Management Console, a AWS CLI e a API do ElastiCache.

Se você estiver usando o IAM, pode controlar quais usuários na sua conta da AWS têm permissão para criar, editar ou excluir tags. Para obter mais informações, consulte Permissões em nível de recurso.

Você pode usar tags na maioria dos recursos do ElastiCache que já existem na sua conta. A tabela a seguir lista os recursos compatíveis com o uso de tags. Se você estiver usando o AWS Management Console, é possível aplicar tags aos recursos usando o Tag Editor. Algumas telas de recursos permitem que você especifique tags para um recurso ao criá-lo; por exemplo, uma tag com uma chave de nome e um valor que você especificar. Na maioria dos casos, o console aplicará as tags imediatamente depois de o recurso ser criado (em vez de durante a criação de recursos). O console pode organizar os recursos de acordo com a tag Name (Nome), mas ela não tem nenhum significado semântico ao serviço do ElastiCache.

Além disso, algumas ações de criação de recursos permitem que você especifique tags para um recurso quando ele é criado. Se as tags não puderem ser aplicadas durante a criação dos recursos, nós reverteremos o processo de criação de recursos. Isso garante que os recursos sejam criados com tags ou, então, não criados, e que nenhum recurso seja deixado sem tags. Ao marcar com tags os recursos no momento da criação, você elimina a necessidade de executar scripts personalizados de uso de tags após a criação do recurso.

Se você estiver usando a API do Amazon ElastiCache, a CLI da AWS ou um SKD da AWS, você poderá usar o parâmetro Tags na ação relevante da API do ElastiCache para aplicar tags. Eles são:

  • CreateServerlessCache

  • CreateCacheCluster

  • CreateReplicationGroup

  • CopyServerlessCacheSnapshot

  • CopySnapshot

  • CreateCacheParameterGroup

  • CreateCacheSecurityGroup

  • CreateCacheSubnetGroup

  • CreateServerlessCacheSnapshot

  • CreateSnapshot

  • CreateUserGroup

  • CreateUser

  • PurchaseReservedCacheNodesOffering

A tabela a seguir descreve os recursos do ElastiCache que podem ser marcados e os recursos que podem ser marcados na criação usando a API do ElastiCache, a CLI da AWS ou um SDK da AWS.

Suporte à marcação para recursos do ElastiCache
Recurso Compatível com tags Oferece suporte à marcação na criação
serverlesscache Sim Sim
ParameterGroup Sim Sim
SecurityGroup Sim Sim
SubnetGroup Sim Sim
Replicationgroup Sim Sim
cluster Sim Sim
reserved-instance Sim Sim
serverlesscachesnapshot Sim Sim
snapshot Sim Sim
usuário Sim Sim
usergroup Sim Sim
nota

Não é possível marcar Datastores globais.

Você pode aplicar permissões no nível do recurso com base em tags nas suas políticas do IAM para ações de API do ElastiCache que oferecem suporte à marcação durante a criação para implementar controle granular sobre os usuários e grupos que podem marcar recursos na criação. Seus recursos estão devidamente protegidos a partir da criação. As tags são aplicadas imediatamente aos recursos. Portanto, todas as permissões em nível de recurso baseadas em tags que controlam o uso de recursos entram imediatamente em vigor. Seus recursos podem ser rastreados e relatados com mais precisão. É possível obrigar o uso de marcação com tags nos novos recursos e controlar quais chaves e valores de tag são definidos nos seus recursos.

Para obter mais informações, consulte Exemplo de marcação de recursos.

Para obter mais informações sobre como marcar os seus recursos para o faturamento, consulte Monitoramento de custos com tags de alocação de custos.

As seguintes regras se aplicam à marcação como parte das operações de solicitação:

  • CreateReplicationGroup:

    • Se os parâmetros --primary-cluster-id e --tags forem incluídos na solicitação, as tags de solicitação serão adicionadas ao grupo de replicação e propagadas para todos os clusters de cache no grupo de replicação. Se o cluster de cache primário tiver tags existentes, elas serão substituídas pelas tags de solicitação para ter tags consistentes em todos os nós.

      Se não houver tags de solicitação, as tags de cluster de cache primário serão adicionadas ao grupo de replicação e propagadas para todos os clusters de cache.

    • Se o --snapshot-name ou o --serverless-cache-snapshot-name for fornecido:

      Se as tags forem incluídas na solicitação, o grupo de replicações será marcado somente com essas tags. Se nenhuma tag for incluída na solicitação, as tags de snapshot serão adicionadas ao grupo de replicações.

    • Se o --global-replication-group-id for fornecido:

      Se as tags forem incluídas na solicitação, as tags de solicitação serão adicionadas ao grupo de replicação e propagadas para todos os clusters de cache.

  • CreateCacheCluster:

    • Se o --replication-group-id for fornecido:

      Se as tags forem incluídas na solicitação, o cluster de cache será marcado somente com essas tags. Se nenhuma tag for incluída na solicitação, o cluster de cache herdará as tags de grupo de replicação em vez das tags do cluster de cache primário.

    • Se o --snapshot-name for fornecido:

      Se as tags forem incluídas na solicitação, o cluster de cache será marcado somente com essas tags. Se nenhuma tag for incluída na solicitação, as tags de snapshot serão adicionadas ao cluster de cache.

  • CreateServerlessCache:

    • Se as tags forem incluídas na solicitação, somente as tags de solicitação serão adicionadas ao cache sem servidor.

  • CreateSnapshot:

    • Se o --replication-group-id for fornecido:

      Se as tags forem incluídas na solicitação, somente as tags de solicitação serão adicionadas ao snapshot. Se nenhuma tag for incluída na solicitação, as tags de grupo de replicação~serão adicionadas ao cluster de cache.

    • Se o --cache-cluster-id for fornecido:

      Se as tags forem incluídas na solicitação, somente as tags de solicitação serão adicionadas ao snapshot. Se nenhuma tag for incluída na solicitação, as tags de cluster de cache serão adicionadas ao snapshot.

    • Para snapshots automáticos:

      As tags serão propagadas a partir das tags do grupo de replicação.

  • CreateServerlessCacheSnapshot:

    • Se as tags forem incluídas na solicitação, somente as tags de solicitação serão adicionadas ao snapshot de cache sem servidor.

  • CopySnapshot:

    • Se as tags forem incluídas na solicitação, somente as tags de solicitação serão adicionadas ao snapshot. Se nenhuma tag for incluída na solicitação, as tags de snapshot da origem serão adicionadas ao snapshot copiado.

  • CopyServerlessCacheSnapshot:

    • Se as tags forem incluídas na solicitação, somente as tags de solicitação serão adicionadas ao snapshot de cache sem servidor.

  • AddTagsToResource e RemoveTagsFromResource:

    • As tags serão adicionadas/removidas do grupo de replicação e a ação será propagada para todos os clusters no grupo de replicação.

    nota

    AddTagsToResource e RemoveTagsFromResource não podem ser usados para parâmetros padrão e grupos de segurança.

  • IncreaseReplicaCount e ModifyReplicationGroupShardConfiguration:

    • Todos os novos clusters adicionados ao grupo de replicação terão as mesmas tags aplicadas como o grupo de replicação.

As restrições básicas a seguir se aplicam a tags:

  • Número máximo de tags por recurso –- 50

  • Em todos os recursos, cada chave de tag deve ser exclusiva e pode ter apenas um valor.

  • Comprimento máximo da chave – 128 caracteres Unicode em UTF-8.

  • Comprimento máximo do valor – 256 caracteres Unicode em UTF-8.

  • Embora o ElastiCache permita qualquer caractere em suas tags, outros serviços podem ser restritivos. Os caracteres permitidos nos serviços são: letras, números e espaços representáveis em UTF-8 e os seguintes caracteres: + - = . _ : / @

  • As chaves e os valores de tags diferenciam maiúsculas de minúsculas.

  • O prefixo aws: é reservado para uso da AWS. Não é possível editar nem excluir a chave ou o valor de uma tag quando ela tem uma chave de tag com esse prefixo. As tags com o prefixo aws: não contam para as tags por limite de recurso.

Você não pode encerrar, parar ou excluir um recurso baseado unicamente em suas tags; será preciso especificar o identificador de recursos. Por exemplo, para excluir snapshots marcados com uma chave de tag chamada DeleteMe, use a ação DeleteSnapshot com os identificadores de recursos dos snapshots, como snap-1234567890abcdef0.

Para obter mais informações sobre os recursos do ElastiCache em que você pode usar tags, consulte Recursos que podem ser marcados.

  • Criar um cache sem servidor usando tags

    aws elasticache create-serverless-cache \ --serverless-cache-name CacheName \ --engine redis --tags Key="Cost Center", Value="1110001" Key="project",Value="XYZ"
  • Adicionar tags a um cache sem servidor

    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"
  • Adição de tags a um grupo de replicação.

    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"
  • Criação de um cluster de cache usando tags.

    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"
  • Criação de um snapshot sem servidor com tags.

    aws elasticache create-serverless-cache-snapshot \ --serverless-cache-name testing-tags \ --serverless-cache-snapshot-name bkp-testing-tags-scs \ --tags Key="work",Value="foo"
  • Criação de um snapshot com tags.

    Para esse caso, se você adicionar tags sob solicitação, mesmo que o grupo de replicação contenha tags, o snapshot receberá somente as tags da solicitação.

    aws elasticache create-snapshot \ --replication-group-id testing-tags \ --snapshot-name bkp-testing-tags-rg \ --tags Key="work",Value="foo"
  1. Permissão de ação AddTagsToResource para um cluster somente se o cluster tiver a tag Project=XYZ.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:cluster:*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Project": "XYZ" } } } ] }
  2. Permissão de ação RemoveTagsFromResource de um grupo de replicação se ele contém as tags Project (Projeto) e Service (Serviço) e as chaves são diferentes de Project (Projeto) e Service (Serviço).

    { "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. Permissão de AddTagsToResource para qualquer recurso somente se as tags forem diferentes de Project (Projeto) e Service (Serviço).

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:*:*" ], "Condition": { "ForAnyValue:StringNotEqualsIgnoreCase": { "aws:TagKeys": [ "Service", "Project" ] } } } ] }
  4. Negação da ação CreateReplicationGroup se a solicitação tiver 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. Negação da ação CopySnapshot se o snapshot de origem tiver a tag Project=XYZ e a tag de solicitação for 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. Negar ação CreateCacheCluster se a tag de solicitação Project estiver faltando ou não for igual a 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" ] } } } ] }

Para obter informações relacionadas sobre chaves de condição, consulte Uso de chaves de condição.