Criar e gerenciar tags

Esta página descreve as tags Google Cloud e como usá-las com o Pub/Sub. As tags podem ser aplicadas a tópicos, assinaturas e snapshots do Pub/Sub. O suporte para aplicar tags a esquemas do Pub/Sub está planejado.

Sobre as tags

Uma tag é um par de chave-valor que pode ser anexado a um recurso no Google Cloud. É possível usar tags para permitir ou negar políticas condicionalmente com base no fato de um recurso ter uma tag específica ou não. Por exemplo, é possível conceder condicionalmente papéis do Identity and Access Management (IAM) com base no fato de um recurso ter uma tag específica ou não. Para mais informações sobre tags, consulte Visão geral de tags.

As tags são anexadas aos recursos criando um recurso de vinculação de tags que vincula o valor ao recurso do Google Cloud .

Permissões necessárias

Para receber as permissões necessárias para gerenciar tags, peça ao administrador que conceda a você os seguintes papéis do IAM:

  • Leitor de tags (roles/resourcemanager.tagViewer) nos recursos a que as tags estão anexadas
  • Visualizar e gerenciar tags no nível da organização: Leitor da organização (roles/resourcemanager.organizationViewer) na organização
  • Criar, atualizar e excluir definições de tags: Administrador de tags (roles/resourcemanager.tagAdmin) no recurso em que você está criando, atualizando ou excluindo tags
  • Anexar e remover tags de recursos: Usuário de tag (roles/resourcemanager.tagUser) no valor da tag e nos recursos a que você está anexando ou removendo o valor da tag

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Para anexar tags a tópicos, assinaturas ou snapshots do Pub/Sub, você precisa da função Editor do Pub/Sub (roles/pubsub.editor).

Criar chaves e valores de tags

Antes de anexar uma tag, é preciso criá-la e configurar o valor dela. Para criar chaves e valores de tag, consulte Como criar uma tag e Como adicionar um valor de tag.

Adicionar tags durante a criação de recursos

É possível adicionar tags ao criar tópicos, assinaturas ou snapshots. Ao adicionar tags durante a criação de recursos, você fornece instantaneamente metadados essenciais para eles e também ajuda na organização, no rastreamento de custos e na aplicação automatizada de políticas.

Console

  1. Acesse a página Pub/Sub no Google Cloud console.
  2. Ir para o Pub/Sub

  3. Selecione a opção para criar um novo tópico, assinatura ou snapshot.
  4. Clique em Gerenciar tags.
  5. Se a organização não aparecer no painel Gerenciar tags, clique em Selecionar escopo para tags. Adicione tags definidas no nível da organização ou do projeto e insira o ID delas.
  6. Clique em Adicionar tag.
  7. Selecione na lista a chave da tag que você quer anexar. Para filtrar a lista, digite palavras-chave.
  8. Selecione na lista o valor da tag que você quer anexar. Você pode filtrar a lista digitando palavras-chave.
  9. Clique em Salvar. A seção Tags é atualizada com as informações de tags.
  10. Crie seu tópico, assinatura ou snapshot. O novo tópico, assinatura ou snapshot é criado com as tags fornecidas.

gcloud

Para adicionar tags durante a criação de tópicos, assinaturas ou snapshots, execute o seguinte comando:

       gcloud pubsub topics create TOPIC_ID --tags=TAG_KEY=TAG_VALUE
     

Substitua:

  • TOPIC_ID: o ID do tópico
  • TAG_KEY: o ID permanente ou o nome do namespace da chave de tag anexada. Por exemplo, "tagKeys/567890123456".
  • TAG_VALUE: o ID permanente ou o nome do namespace do valor da tag anexado. Por exemplo, "tagValues/567890123456"

Especifique várias tags separando-as por vírgula, por exemplo, TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2.

API

Envie uma solicitação POST para o seguinte URL:

      https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID

Forneça o seguinte JSON no corpo da solicitação:

      
{
  "name": "projects/PROJECT_ID/topics/TOPIC_ID"
  "tags": {
    "TAGKEY_NAME": "TAGVALUE_NAME"
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto
  • TOPIC_ID: o ID do tópico
  • TAGKEY_NAME: o ID permanente ou o nome do namespace da chave de tag anexada, por exemplo, tagKeys/567890123456
  • TAGVALUE_NAME: o ID permanente ou o nome do namespace do valor da tag anexado. Por exemplo, "tagValues/567890123456"

Aplicar tags obrigatórias

É possível aplicar tags obrigatórias aos recursos para garantir que tags específicas estejam presentes quando os recursos forem criados, como uma tag de centro de custo, para manter a conformidade com as políticas organizacionais. É possível fazer isso usando políticas da organização e restrições personalizadas. A aplicação ocorre na criação de recursos, impedindo o provisionamento de recursos sem as tags necessárias. Para mais informações, consulte Aplicação de tags obrigatórias usando políticas da organização.

Configurar uma restrição personalizada para aplicar tags

Console

  1. No console do Google Cloud , acesse a página Políticas da organização.

    Acessar a página Políticas da organização

  2. Selecione o seletor de projetos na parte superior da página.

  3. No seletor de projetos, selecione a organização em que você quer aplicar a restrição personalizada.

  4. Configure uma restrição personalizada com os seguintes parâmetros:

    • Método de aplicação: Govern tags
    • Tipo de recurso: o nome totalmente qualificado do recurso REST do Google Cloud em que você quer aplicar tags obrigatórias, por exemplo, file.googleapis.com/Instance
    • Condição: uma condição da Common Expression Language (CEL) que especifica as chaves de tag que você quer aplicar ao recurso, por exemplo resource.hasDirectTagKey("1234567890/owner") para aplicar uma vinculação de tag à chave de tag 1234567890/owner. A função CEL resource.hasDirectTagKey corresponde apenas a tags aplicadas diretamente a um recurso e não considera tags herdadas de ancestrais na hierarquia de recursos.
    • Ação: Allow ou Deny.
      • Permitir: se a condição especificada for atendida, a ação de criar ou atualizar o recurso será permitida.
      • Negar: se a condição especificada for atendida, a ação de criar ou atualizar o recurso será bloqueada.
  5. Clique em Criar restrição.

gcloud

Crie um arquivo YAML para a restrição personalizada:

name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- GOVERN_TAGS
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION

Substitua:

  • ORGANIZATION_ID: o ID da organização, como 1234567890.

  • CONSTRAINT_NAME: o nome da nova restrição personalizada. A restrição personalizada precisa começar com custom. e só pode incluir letras maiúsculas, minúsculas ou números. Por exemplo, custom.enforceMandatoryTags.

  • RESOURCE_NAME: o nome totalmente qualificado do recurso RESTGoogle Cloud em que você quer aplicar tags obrigatórias, por exemplo, file.googleapis.com/Instance.

  • CONDITION: uma condição da Common Expression Language (CEL) que especifica as chaves de tag que você quer aplicar ao recurso, por exemplo, resource.hasDirectTagKey("1234567890/owner") para aplicar uma vinculação de tag à chave de tag 1234567890/owner.

  • ACTION: a ação a ser realizada ao atender a condition. Pode ser ALLOW ou DENY.

    A ação de negação significa que, se a condição especificada for atendida, a operação para criar ou atualizar o recurso será bloqueada.

    A ação "permitir" significa que, se a condição especificada for atendida, a operação para criar ou atualizar o recurso será permitida. Isso também significa que todos os outros casos, exceto o listado explicitamente na condição, estão bloqueados.

  • DISPLAY_NAME: um nome legível para a restrição. Esse campo pode ter no máximo 200 caracteres.

  • DESCRIPTION: uma descrição legível da restrição a ser exibida como mensagem de erro quando a política é violada. Esse campo pode ter no máximo 2000 caracteres.

Configure a restrição personalizada para disponibilizá-la às políticas da organização.

Depois de definir a restrição personalizada, você pode testar e analisar as mudanças na política da organização e aplicar a restrição.

Adicionar tags a recursos atuais

Para adicionar uma tag a tópicos, assinaturas ou snapshots atuais, siga estas etapas:

Console

  1. Acesse a página Pub/Sub no Google Cloud console.
  2. Ir para o Pub/Sub

  3. Selecione a página do recurso a que você quer anexar uma tag. Por exemplo, para anexar uma tag a um tópico, acesse a página Tópicos.
  4. Clique em Tags.
  5. Se a organização não aparecer no painel Tags, clique em Selecionar escopo. Selecione sua organização e clique em Abrir.
  6. Clique em Adicionar tag.
  7. Selecione na lista a chave da tag que você quer anexar. Para filtrar a lista, digite palavras-chave.
  8. Selecione na lista o valor da tag que você quer anexar. Você pode filtrar a lista digitando palavras-chave.
  9. Clique em Salvar.
  10. Na caixa de diálogo Confirmar, clique em Confirmar para anexar a tag.
  11. Uma notificação confirma que suas tags foram atualizadas.

gcloud

Para anexar uma tag a um tópico, uma assinatura ou um snapshot, crie um recurso de vinculação de tag usando o comando gcloud resource-manager tags bindings create:

      gcloud resource-manager tags bindings create \
          --tag-value=TAGVALUE_NAME \
          --parent=RESOURCE_ID
      

Substitua:

  • TAGVALUE_NAME: o ID permanente ou o nome do namespace do valor da tag anexado; por exemplo: tagValues/567890123456.
  • RESOURCE_ID é o ID completo do recurso, incluindo o nome de domínio da API para identificar o tipo de recurso (//pubsub.googleapis.com/). Por exemplo, para anexar uma tag a /projects/PROJECT_ID/topics/TOPIC_ID, o ID completo é //pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID.

Listar tags anexadas a recursos

É possível consultar uma lista de vinculações de tags anexadas diretamente ou herdadas pelo tópico, assinatura ou snapshot.

Console

  1. Acesse a página Pub/Sub no Google Cloud console.
  2. Ir para o Pub/Sub

  3. Selecione a página do recurso em que você quer ver as tags. Por exemplo, para ver tags de um tópico, acesse a página Tópicos.

    As tags são mostradas na seção Tags da página do tópico no console.

gcloud

Para consultar uma lista de vinculações de tags anexadas a um recurso, use o comando gcloud resource-manager tags bindings list:

      gcloud resource-manager tags bindings list \
          --parent=RESOURCE_ID
      

Substitua:

  • RESOURCE_ID é o ID completo do recurso, incluindo o nome de domínio da API para identificar o tipo de recurso (//pubsub.googleapis.com/). Por exemplo, para anexar uma tag a /projects/PROJECT_ID/topics/TOPIC_ID, o ID completo é //pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID.

Uma resposta semelhante a esta vai aparecer:

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
          tagValue: tagValues/567890123456
          resource: //pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
      

Remover tags de recursos

É possível desanexar tags que foram anexadas diretamente a um tópico, uma assinatura ou um snapshot. As tags herdadas podem ser substituídas anexando uma tag com a mesma chave e um valor diferente, mas não podem ser removidas.

Console

  1. Acesse a página Pub/Sub no Google Cloud console.
  2. Ir para o Pub/Sub

  3. Selecione a página do recurso de que você quer remover uma tag. Por exemplo, para remover uma tag de um tema, acesse a página Temas.
  4. Clique em Tags.
  5. No painel Tags, ao lado da tag que você quer remover, clique em Excluir item.
  6. Clique em Salvar.
  7. Na caixa de diálogo Confirmar, clique em Confirmar para remover a tag.

Uma notificação confirma que suas tags foram atualizadas.

gcloud

Para excluir uma vinculação de tag, use o comando gcloud resource-manager tags bindings delete:

      gcloud resource-manager tags bindings delete \
          --tag-value=TAGVALUE_NAME \
          --parent=RESOURCE_ID
      

Substitua:

  • TAGVALUE_NAME: o ID permanente ou o nome do namespace do valor da tag anexado; por exemplo: tagValues/567890123456.
  • RESOURCE_ID é o ID completo do recurso, incluindo o nome de domínio da API para identificar o tipo de recurso (//pubsub.googleapis.com/). Por exemplo, para anexar uma tag a /projects/PROJECT_ID/topics/TOPIC_ID, o ID completo é //pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID.

Excluir chaves e valores de tags

Ao remover uma chave ou definição de valor de tag, verifique se ela está separada do tópico, da assinatura ou do snapshot. Você precisa excluir os anexos de tag, chamados de vinculações de tag, antes de excluir a definição da tag. Para excluir chaves e valores de tags, consulte Como excluir tags.

Condições e tags do Identity and Access Management

Você pode usar tags e condições do IAM para conceder vinculações de papéis condicionalmente aos usuários na sua hierarquia. Alterar ou excluir a tag anexada a um recurso removerá o acesso do usuário a esse recurso se uma política do IAM com vinculações de papéis condicionais tiver sido aplicada. Para mais informações, consulte Condições e tags do Identity and Access Management.

A seguir