Gerenciar tags de recursos


Neste guia, descrevemos como criar e gerenciar tags para recursos do Compute Engine. Uma tag é um par de chave-valor que pode ser anexado a um recursoGoogle Cloud . As tags são usadas para várias finalidades, incluindo:

  • Permitir ou negar políticas condicionalmente com base em um recurso ter ou não uma tag específica.
  • Definir origens e destinos nas políticas de firewall da rede global e nas políticas de firewall da rede regional.
  • Organizar recursos de maneira lógica.

Depois de criar uma tag e conceder o acesso apropriado a ela e ao recurso, anexe-a como um par de chave-valor. É possível anexar exatamente um valor a um recurso de uma determinada chave. Por exemplo, se você anexar a tag environment: development, não será possível anexar as tags environment: production ou environment: test. Cada recurso pode ter no máximo 50 pares de chave-valor anexados.

Para anexar tags a recursos, crie um recurso TagBinding que vincule o valor da tag ao recurso Google Cloud . Para mais informações sobre tags e como elas funcionam, consulte o documento Visão geral das tags.

Antes de começar

  • Leia a Visão geral sobre tags na documentação do Resource Manager.
  • Leia Como criar e gerenciar tags na documentação do Resource Manager.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud . Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. REST

        Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud .

Permissões

Para gerenciar tags de recursos do Compute Engine, os usuários e as contas de serviço precisam receber o papel tagUser. Para mais informações sobre o papel tagUser, consulte Permissões necessárias.

Recursos suportados

O Compute Engine é compatível com a inclusão de tags nos seguintes recursos:

  • Somente após a criação do recurso:

    • Grupos de instâncias gerenciadas (MIGs)
    • Imagens
    • Snapshots
    • A maioria dos recursos de rede, como rede, sub-rede, firewall e verificação de integridade.
  • Durante e após a criação de recursos: instâncias e discos de máquina virtual (VM)

Como adicionar tags a um recurso

É possível anexar tags a determinados recursos. Depois que o recurso for criado, anexe tags a ele seguindo as instruções abaixo.

Console

Dependendo do tipo de recurso, as etapas específicas podem variar. Por exemplo, as etapas a seguir anexam uma tag a uma VM:

  1. No Google Cloud console, acesse a página Instâncias de VM:

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Na coluna Nome, clique no nome da VM em que você quer adicionar tags.

  4. Na página Detalhes da VM, siga estas etapas:

    1. Clique em Editar.
    2. Na seção Informações básicas, clique em Gerenciar tags e adicione as tags que você quer na instância.
    3. Clique em Salvar.

gcloud

Para saber como usar essas flags, leia Como anexar tags a recursos na documentação do Resource Manager.

Por exemplo, o comando a seguir anexa uma tag a uma VM:

gcloud resource-manager tags bindings create \
    --location LOCATION_NAME \
    --tag-value=tagValues/TAGVALUE_ID \
    --parent=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

Substitua:

  • LOCATION_NAME: a região que contém o recurso de destino. Neste exemplo, a região da instância de VM.
  • TAGVALUE_ID: o ID numérico do valor da tag
  • PROJECT_NUMBER: o ID numérico do projeto que contém o recurso de destino
  • ZONE: a zona que contém o recurso de destino. Neste exemplo, a zona da instância de VM.
  • VM_ID: o ID da instância de VM

REST

Para anexar uma tag a um recurso, primeiro crie uma representação JSON de uma vinculação de tags que inclua o ID permanente ou o nome com namespace do valor da tag e o ID permanente do recurso. Para mais informações sobre o formato de uma vinculação de tags, consulte a referência de tagBindings.

Para anexar a tag a um recurso zonal, como uma instância de VM, use o método tagBindings.create com o endpoint regional em que o recurso está localizado. Exemplo:

POST https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings

O corpo da solicitação pode ser uma das duas opções a seguir:

{
  "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID",
  "tagValue": "tagValue/TAGVALUE_ID"
}
{
  "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID",
  "tagValueNamespacedName": TAGVALUE_NAMESPACED_NAME
}

Substitua:

  • LOCATION_NAME: a região que contém o recurso de destino. Neste exemplo, a região da instância de VM.
  • PROJECT_NUMBER: o ID numérico do projeto que contém o recurso de destino
  • ZONE: a zona que contém o recurso de destino. Neste exemplo, a zona da instância de VM.
  • VM_ID: o ID da instância de VM
  • TAGVALUE_ID: o ID permanente do valor da tag anexado; por exemplo: 4567890123
  • TAGVALUE_NAMESPACED_NAME: o nome do namespace do valor da tag anexado e tem o formato: parentNamespace/tagKeyShortName/tagValueShortName

Adicionar tags a um recurso durante a criação dele

Em determinados cenários, convém incluir tags nos recursos durante a criação deles, e não depois.

Console

Dependendo do tipo de recurso, as etapas específicas podem variar. As etapas a seguir são para uma VM:

  1. No Google Cloud console, acesse a página Instâncias de VM:

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Clique em Criar instância. A página Criar uma instância aparece e mostra o painel Configuração da máquina.

  4. No menu de navegação, clique em Avançado. No painel Avançado exibido, faça o seguinte:

    1. Abra a seção Gerenciar tags e rótulos.
    2. Clique em Adicionar tags.
    3. No painel Tags que aparece, siga as instruções para adicionar uma tag à instância.
    4. Clique em Salvar.
  5. Especifique outras opções de configuração para sua instância. Para mais informações, consulte Opções de configuração durante a criação da instância.

  6. Para criar e iniciar a VM, clique em Criar.

gcloud

Para anexar uma tag a um recurso durante a criação dele, adicione a flag --resource-manager-tags com o respectivo comando create. Por exemplo, para anexar uma tag a uma VM, use o seguinte comando:

  gcloud compute instances create INSTANCE_NAME \
      --zone=ZONE \
      --resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID

Substitua:

  • INSTANCE_NAME: o nome da instância de VM
  • ZONE: a zona que contém a instância de VM
  • TAGKEY_ID: o ID numérico do número da chave da tag
  • TAGVALUE_ID: o ID numérico permanente do valor da tag anexado; por exemplo: 4567890123

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

REST

Faça uma solicitação POST para o seguinte URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances

Inclua o corpo da solicitação JSON a seguir:

{
  "name": INSTANCE_NAME,
  "params": {
    "resourceManagerTags": {
      "tagKeys/TAGKEY_ID": "tagValues/TAGVALUE_ID",
    },
  }
  // other fields omitted
}

Substitua:

  • INSTANCE_NAME: o nome da instância de VM
  • TAGKEY_ID: o ID numérico do número da chave da tag
  • TAGVALUE_ID: o ID numérico permanente do valor da tag anexado; por exemplo: 4567890123

Como remover uma tag de um recurso

É possível desanexar uma tag de um recurso excluindo o recurso de vinculação de tags.

Para ver instruções sobre como remover tags, consulte Como remover uma tag de um recurso na documentação do Resource Manager.

Console

Dependendo do tipo de recurso, as etapas específicas podem ser um pouco diferentes. Por exemplo, as etapas a seguir removem uma tag de uma VM:

  1. No Google Cloud console, acesse a página Instâncias de VM:

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Na coluna Nome, clique no nome da VM em que você quer adicionar tags.

  4. Na página Detalhes da VM, siga estas etapas:

    1. Clique em Editar.
    2. Na seção Básico, clique em Gerenciar tags e remova as tags que você quer da instância.
    3. Clique em Salvar.

gcloud

O exemplo a seguir remove uma tag de uma VM usando a gcloud CLI:

gcloud resource-manager tags bindings delete \
    --location LOCATION_NAME \
    --tag-value=tagValues/TAGVALUE_ID \
    --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

Substitua:

  • LOCATION_NAME: a zona do recurso de destino, como us-central1-a
  • TAGVALUE_ID: o ID numérico da chave da tag
  • PROJECT_NUMBER: o ID numérico do projeto que contém o recurso de destino
  • ZONE: o nome da zona, como us-central1-a
  • VM_ID: o ID numérico da instância da VM

Para atualizar ou substituir uma vinculação de tags que já existe por outra, remova a vinculação de tags antiga e anexe a nova.

REST

Para excluir uma vinculação de tags anexada a um recurso, como uma VM, use o método tagBindings.delete com o endpoint regional em que o recurso está localizado.

DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/{name=TAGBINDINGS_NAME}

Substitua:

  • LOCATION: o endpoint regional do seu recurso, por exemplo, us-central1
  • TAGBINDINGS_NAME: o ID permanente da TagBinding; por exemplo: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F1234567890/tagValues/567890123456

Como ver tags anexadas a um recurso

Para ver instruções detalhadas sobre como listar tags, consulte Como listar todas as tags anexadas a um recurso na documentação do Resource Manager.

Console

Dependendo do tipo de recurso, as etapas específicas podem ser um pouco diferentes. Por exemplo, as etapas a seguir mostram como ver as tags de uma VM:

  1. No Google Cloud console, acesse a página Instâncias de VM:

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Na coluna Nome, clique no nome da VM com as tags que você quer ver.

  4. Na página de detalhes Instância da VM, procure tags na seção Tags.

gcloud

Para ver uma lista de vinculações de tags anexadas a um recurso, use o comando gcloud resource-manager tags bindings list: Se você adicionar a flag --effective, também retornará uma lista de tags herdadas por esse recurso. Por exemplo:

gcloud resource-manager tags bindings list \
    --location=LOCATION_NAME \
    --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

Substitua:

  • LOCATION_NAME: a zona do recurso de destino, como us-central1-a
  • PROJECT_NUMBER: o ID numérico do projeto que contém o recurso de destino
  • ZONE: o nome da zona, como us-central1-a
  • VM_ID: o ID numérico da instância da VM

Se você adicionar a flag --effective ao comando tags bindings list, também retornará uma lista de todas as tags herdadas por esse recurso.

O resultado será assim:

namespacedTagKey: 961309089256/environment
namespacedTagValue: 961309089256/environment/production
tagKey: tagKeys/417628178507
tagValue: tagValues/247197504380
inherited: true

Se todas as tags avaliadas em um recurso forem anexadas diretamente, o campo inherited será falso e ficará omitido.

REST

Para listar as vinculações de tags anexadas a um recurso regional, como instâncias do Compute Engine, use o método tagBindings.list com o endpoint regional onde seu recurso está localizado. Por exemplo:

GET https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings

{
    "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID"
}

Substitua:

  • LOCATION_NAME: a região do recurso de destino, como us-central1
  • PROJECT_NUMBER: o ID numérico do seu projeto que contém o recurso de destino
  • ZONE: o nome da zona, como us-central1-a
  • VM_ID: o ID numérico da instância da VM

A seguir