Criar e gerenciar tags

Esta página descreve Google Cloud as tags 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 para conceder 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 para o qual você está criando, atualizando ou excluindo tags
  • Anexar e remover tags de recursos: Usuário de tags (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 personalizados papéis ou outros predefinidos papéis.

Para anexar tags a tópicos, assinaturas ou snapshots do Pub/Sub , você precisa do papel de 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 seus recursos 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. Escolha adicionar tags definidas na organização ou no projeto e insira o ID.
  6. Clique em Adicionar tag.
  7. Selecione na lista a chave da tag que você quer anexar. É possível filtrar a lista digitando palavras-chave.
  8. Selecione na lista o valor da tag que você quer anexar. É possível filtrar a lista digitando palavras-chave.
  9. Clique em Salvar. A seção Tags é atualizada com as informações das tags information.
  10. Crie o tópico, a assinatura ou o 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 com uma 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. Isso pode ser feito 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 Google Cloud console do, 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 Google Cloud recurso REST 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 só corresponde 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 para criar ou atualizar o recurso será permitida.
      • Negar: se a condição especificada for atendida, a ação para 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 sua 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 Google Cloud recurso REST 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 a 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 de permissão 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, serã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 para as políticas da organização.

Depois de definir a restrição personalizada, é possível 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 a organização e clique Abrir.
  6. Clique em Adicionar tag.
  7. Selecione na lista a chave da tag que você quer anexar. É possível filtrar a lista digitando palavras-chave.
  8. Selecione na lista o valor da tag que você quer anexar. É possível 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, assinatura ou snapshot, crie um recurso de vinculação de tag usando o gcloud resource-manager tags bindings create comando:

      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 conferir 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 para o qual você quer conferir as tags. Por exemplo, para conferir as tags do tópico, acesse a página Tópicos.

    As tags são exibidas na seção Tags da página de tópicos no console.

gcloud

Para ver 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.

Você receberá uma resposta semelhante a esta:

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 remover as tags que foram anexadas diretamente a um tópico, assinatura ou 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 tópico, acesse a página Tópicos.
  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 definição de chave ou valor de tag, verifique se a tag está desanexada 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