Visão geral sobre tags

Tags são pares de chave-valor que podem ser anexados aos recursos doGoogle Cloud para anotá-los e aplicar políticas condicionalmente. Essa aplicação condicional oferece controle detalhado sobre os recursos em toda a hierarquia de recursos do Google Cloud .

A hierarquia de recursos do Google Cloud organiza os recursos em uma estrutura em árvore para ajudar você a gerenciá-los em grande escala. No entanto, essa hierarquia modela apenas algumas dimensões de negócios, incluindo estrutura organizacional, regiões, tipos de carga de trabalho e centros de custo. As tags oferecem a flexibilidade de agrupar em camadas várias dimensões de negócios em toda a hierarquia.

Tags e rótulos

Os rótulos são uma maneira separada de criar anotações para recursos. A tabela a seguir lista algumas das diferenças entre tags e rótulos:

Tags Rótulos
Estrutura de recursos Chaves de tag, valores de tag e vinculações de tag são todos recursos discretos. Não são um recurso em si, mas metadados de recursos.
Definição Eles são definidos no nível da organização ou do projeto. São definidos para cada recurso.
Controle de acesso O gerenciamento e a anexação de tags exigem papéis do Identity and Access Management (IAM). A anexação de rótulos requer papéis do IAM, que variam de acordo com o recurso de serviço.
Pré-requisito para anexar A chave e o valor da tag precisam ser definidos antes que uma tag possa ser anexada a um recurso. Não há pré-requisitos para anexar
Herança As vinculações de tags são herdadas pelos filhos do recurso na hierarquia do Google Cloud . Não são herdados por recursos filhos.
Requisitos de exclusão As tags só podem ser excluídas se não houver vinculações para elas. Pode ser removido de um recurso a qualquer momento
Requisitos de nomenclatura Requisitos para valores e chaves de tag Requisitos para rótulos
Comprimento do nome da chave-valor Podem ter no máximo 256 caracteres. Podem ter 63 caracteres no máximo.
Suporte a políticas de permissão e negação As tags podem ser referenciadas por condições de política de permissão e condições de política de negação. Sem suporte para políticas de permissão e negação
Suporte à política da organização As tags em alguns recursos podem ser referenciadas por restrições condicionais da política da organização. Sem suporte para políticas da organização
Integração do Cloud Billing Realizar estornos, auditorias e outras análises de alocação de custos, exportar dados de custo do Cloud Billing para o BigQuery Filtrar recursos por rótulo no Cloud Billing, exportar dados do Cloud Billing para o BigQuery

Para mais informações sobre rótulos, consulte Como criar e gerenciar rótulos.

Tags semânticas

Uma tag semântica é um par de chave-valor que fornece metadados significativos para seus recursos com semântica forte e padronizada, apoiada pelas convenções do OpenTelemetry (OTel).

É possível usar tags semânticas com recursos do App Hub. Quando você define atributos em serviços e cargas de trabalho no App Hub, ele os replica automaticamente como tags semânticas de sistema somente leitura nos recursos subjacentes diretos.

As tags semânticas do sistema são somente leitura. Não é possível editar ou remover essas tags do sistema diretamente usando a API Tags ou o console do Google Cloud . O gerenciamento de tags ocorre no App Hub.

Tags semânticas replicadas do App Hub

Se você usa o App Hub, os atributos Ambiente e Importância definidos nos seus serviços ou cargas de trabalho são replicados automaticamente como tags semânticas de sistema somente leitura no namespace dedicado google:AppHub.

As tags de sistema compatíveis incluem:

  • google:AppHub/environment: valores derivados do App Hub, por exemplo, PRODUCTION ou STAGING.
  • google:AppHub/criticality: valores derivados do App Hub, por exemplo, MISSION_CRITICAL ou HIGH.

Ao mostrar o contexto do App Hub como tags do sistema, os serviços downstream, como o console do Google Cloud , consomem metadados autoritativos para aplicar políticas de governança e segurança sem os riscos associados à configuração manual.

Para mais informações sobre como gerenciar tags semânticas, consulte Visualizar e gerenciar tags semânticas.

O catálogo semântico

O Catálogo Semântico fornece uma lista de semânticas disponíveis e o mapeamento delas para atributos compatíveis com o OpenTelemetry (OTel). É possível navegar por esse catálogo no console do Google Cloud ou ver detalhes usando APIs.

Para mais informações sobre como acessar o catálogo, consulte Ver o catálogo semântico.

Chave de semântica Chave de atributo do OTel Valor semântico Valor do atributo do OTel
ENVIRONMENT deployment.environment.name PRODUCTION production
STAGING staging
TEST test
DEVELOPMENT development
CRITICALITY service.criticality MISSION_CRITICAL critical
HIGH high
MEDIUM medium
LOW low

Limitações das tags semânticas

As tags semânticas têm as seguintes limitações:

  • Vinculações personalizadas: não é possível vincular diretamente tags semânticas ENVIRONMENT ou CRITICALITY a recursos ou nós do Resource Manager (projetos, pastas ou organizações) usando a API Tags.
  • Semântica definida pelo usuário: não é possível promover as tags atuais para tags semânticas.
  • Somente recursos diretos: a sincronização se aplica apenas aos recursos diretos registrados no App Hub. Ela não se propaga para recursos aninhados ou indiretos em um serviço ou carga de trabalho (por exemplo, VMs individuais em um MIG).

Como criar tags

As tags são estruturadas como um par de chave-valor. Um recurso de chave de tag pode ser criado nos recursos da organização ou do projeto, e os valores de tag são recursos anexados a uma chave. Por exemplo, uma chave de tag environment com os valores production e development.

Administração de tags

Os administradores podem controlar o uso de tags restringindo quem pode criar, atualizar, excluir e anexar tags a recursos. Eles podem selecionar uma tag individual para fazer edições, como adicionar ou remover valores e atualizar a descrição. Isso permite um controle detalhado das tags.

As tags podem ter uma descrição que é mostrada quando as informações sobre elas são recuperadas. A descrição ajuda os usuários que anexam a tag ao recurso a entender a finalidade dela.

Em um projeto ou organização pai, cada chave de tag precisa ser exclusiva. Isso garante que cada valor de tag, quando vinculado a um recurso, crie um par exclusivo com a chave de tag.

Políticas e Tags

É possível usar tags e condições do IAM juntas para:

Depois de criar um valor de tag, é possível vinculá-lo a recursos. Em seguida, é possível criar políticas do IAM com condições que identificam recursos com base na vinculação de uma chave de tag ao recurso. Para saber como usar tags e condições do IAM, consulte Tags e acesso condicional.

Impacto das mudanças nas tags

Se você usa tags para conceder ou negar acesso condicionalmente ou para definir o escopo das políticas da organização, vincular ou desvincular uma tag de um recurso pode mudar o impacto dessas políticas.

Por exemplo, suponha que você tenha um grupo de desenvolvedores que precisa gerenciar instâncias do Compute Engine, mas apenas aquelas usadas para desenvolvimento:

  1. Definições de tag: você tem uma chave de tag 123456789012/env com os valores dev e prod.
  2. Acesso condicional: você concede o papel de Administrador da instância do Compute (roles/compute.instanceAdmin) ao grupo de desenvolvedores. Adicione uma condição à vinculação de papel que permita o acesso somente se o recurso tiver a tag env: dev.
  3. Efeitos das mudanças:
    • Vinculação de tags: você anexa a tag env: dev a uma instância. A vinculação de papel condicional agora concede aos desenvolvedores acesso para gerenciar a instância.
    • Desvinculação de tags: mais tarde, a mesma instância é promovida para produção. Você desvincula a tag env: dev e vincula a tag env: prod. A vinculação de papel condicional não concede mais aos desenvolvedores acesso para gerenciar essa instância.

Em geral, as mudanças nas tags entram em vigor em até 2 minutos. No entanto, as mudanças podem levar até 7 minutos para serem totalmente propagadas pelo sistema. Esse atraso de propagação se aplica à rapidez com que o acesso é concedido ou revogado ou à rapidez com que uma política da organização entra em vigor após uma vinculação ou desvinculação de tag.

Aplicação de tags obrigatórias usando políticas da organização

É possível aplicar tags obrigatórias em recursos usando uma política personalizada da organização. Ao aplicar tags obrigatórias, só é possível criar recursos que obedecem às políticas de inclusão de tags da sua organização. Ou seja, os recursos são vinculados aos valores das chaves de tag obrigatórias especificadas na política. Para mais informações, consulte Configurar uma restrição personalizada para aplicar tags.

A aplicação de tags obrigatórias é compatível com os seguintes tipos de recursos:

  • Projetos e pastas do Resource Manager
  • Instâncias do Filestore
  • Recursos de cluster e backup do AlloyDB para PostgreSQL
  • Fluxo de trabalho do Workflows
  • Recursos do Compute Engine:
    • Instâncias
    • Discos
    • Gateways de VPN externos
    • Gateways de VPN
    • Gateways da VPN de destino
    • Túneis de VPN
    • Interconexões
    • Anexos de interconexão
    • Serviços de back-end
    • Serviços de back-end regionais
    • buckets de back-end
  • Recursos da VPC:
    • Redes
    • Sub-redes
    • Regras de firewall
    • Rotas

Herança de tags

Quando um valor de tag é anexado a um recurso, por padrão, todos os descendentes do recurso herdam o mesmo valor de tag. É possível substituir um valor de tag herdado em um recurso descendente. Para substituir um valor de tag herdado, vincule um valor de tag diferente ao recurso descendente. O valor de tag diferente precisa usar a mesma chave de tag que o valor de tag herdado.

Por exemplo, suponha que você aplique a tag environment: development a uma pasta que tenha duas subpastas chamadas team-a e team-b. Também é possível aplicar uma tag diferente, environment: test, à pasta team-b. Como resultado, os projetos e outros recursos na pasta team-a herdam a tag environment: development, e os projetos e outros recursos na pasta team-b herdam a tag environment: test:

Hierarquia de recursos com tags

Hierarquia de recursos com tags

Se você remover a tag environment: test da pasta team-b, essa pasta e os recursos dela vão herdar a tag environment: development.

Todas as tags anexadas e herdadas por um recurso são coletivamente chamadas de tags efetivas. As tags efetivas de um recurso são uma combinação das tags anexadas diretamente a ele, bem como de todas as tags anexadas a todos os ancestrais do recurso em toda a hierarquia.

Ao usar tags com condições do IAM, recomendamos que você crie um valor de tag padrão seguro para cada chave de tag usada pelas condições do IAM. Aplique o valor de tag padrão seguro vinculando esse valor à organização para que ele seja herdado por todos os recursos dentro dela. Altere o valor da tag apenas substituindo explicitamente as vinculações herdadas em recursos relevantes.

Por exemplo, suponha que você tenha uma condição do IAM que dependa do valor de tag on para a chave de tag enforcement, e a chave de tag também tenha um valor de tag off. Vincule o valor de tag enforcement: off à organização para criar um padrão seguro que seja herdado por todos os recursos da organização. Vincule o valor da tag enforcement: on apenas aos recursos selecionados na organização.

Em seguida, é possível escrever políticas que abordem a chave de tag enforcement, com condições que afetam um recurso se ele for enforcement: on ou enforcement: off, e um caso seguro se for enforcement: default. Se a chave de tag enforcement for removida de um recurso, ele poderá herdar o valor da tag para enforcement do recurso pai. Se nenhum recurso pai tiver a chave de tag enforcement, o recurso herdará enforcement: default do recurso da organização.

Usar uma tag padrão segura pode ajudar, mas para evitar comportamentos indesejados, recomendamos que você revise as tags e as políticas com condições em vigor antes de mover os recursos ou remover as tags.

Como excluir chaves e valores de tags

Antes de excluir um valor de tag, é preciso excluir todas as vinculações de recursos que usam esse valor.

Como proteger valores de tag contra exclusão

É possível criar uma camada extra de proteção para os valores de tag anexando um bloqueio de tag a um valor de tag. Um bloqueio de tag, assim como uma vinculação de tag, impede que um usuário exclua o valor da tag.

Alguns recursos criam automaticamente uma retenção de tag em cada valor de tag anexado ao recurso. É necessário remover esse bloqueio de tag antes de excluir o valor da tag.

A seguir