Faça a gestão das etiquetas dos recursos


Este guia descreve como criar e gerir etiquetas para recursos do Compute Engine. Uma etiqueta é um par de chave-valor que pode ser anexado a um Google Cloud recurso. As etiquetas são usadas para vários fins, incluindo:

  • Permitir ou negar condicionalmente políticas com base no facto de um recurso ter uma etiqueta específica.
  • Defina origens e destinos nas políticas de firewall da rede global e nas políticas de firewall da rede regional.
  • Organizar os recursos de forma lógica.

Depois de criar uma etiqueta e conceder o acesso adequado à etiqueta e ao recurso, pode anexar a etiqueta como um par de chave-valor. Pode anexar exatamente um valor a um recurso para uma determinada chave. Por exemplo, se anexar a etiqueta environment: development, não pode anexar as etiquetas environment: production nem environment: test. Cada recurso pode ter um máximo de 50 pares de chave-valor anexados.

Para anexar etiquetas a recursos, tem de criar um recurso de associação de etiquetas que associe o valor da etiqueta ao Google Cloud recurso. Para mais informações sobre as etiquetas e como funcionam, reveja o documento Vista geral das etiquetas.

Antes de começar

  • Leia a Vista geral das etiquetas na documentação do Resource Manager.
  • Leia o artigo Criar e gerir etiquetas na documentação do Resource Manager.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-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. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Funções necessárias

Para receber as autorizações de que precisa para criar e gerir etiquetas para recursos do Compute Engine, peça ao seu administrador que lhe conceda as seguintes funções do IAM na sua organização ou projeto:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para criar e gerir etiquetas para recursos do Compute Engine. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para criar e gerir etiquetas para recursos do Compute Engine:

  • Ver etiquetas:
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.tagValues.list
    • resourcemanager.tagValues.get
    • compute.instances.listTagBindings
    • compute.instances.listEffectiveTags
    • resourcemanager.projects.get
  • Crie etiquetas:
    • resourcemanager.tagKeys.create
    • resourcemanager.tagValues.create
    • resourcemanager.tagKeys.setIamPolicy
    • resourcemanager.tagValues.setIamPolicy
  • Faça a gestão de etiquetas:
    • resourcemanager.tagKeys.update
    • resourcemanager.tagValues.update
    • resourcemanager.tagKeys.delete
    • resourcemanager.tagValues.delete
    • resourcemanager.tagKeys.getIamPolicy
    • resourcemanager.tagValues.getIamPolicy
    • resourcemanager.tagKeys.setIamPolicy
    • resourcemanager.tagValues.setIamPolicy
  • Adicione ou remova etiquetas para uma instância de computação:
    • compute.instances.createTagBinding
    • compute.instances.deleteTagBinding
    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Recursos suportados

O Compute Engine suporta a etiquetagem para os seguintes recursos:

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

    • Grupos de instâncias geridas (MIGs)
    • Imagens
    • Instantâneos
    • A maioria dos recursos de rede, como recursos de rede, sub-rede, firewall e verificação de estado.
  • Durante e após a criação de recursos: instâncias de máquinas virtuais (VMs) e discos

Adicionar etiquetas a um recurso

Pode anexar etiquetas existentes a determinados recursos. Depois de criar o recurso, anexe etiquetas a esse recurso através das seguintes instruções.

Consola

Consoante o tipo de recurso, os passos exatos podem variar. Por exemplo, os passos seguintes associam uma etiqueta a uma VM:

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Na coluna Nome, clique no nome da VM à qual quer adicionar etiquetas.

  4. Na página de detalhes da instância de VM, conclua os seguintes passos:

    1. Clique em Edit.
    2. Na secção Informações básicas, clique em Gerir etiquetas e adicione as etiquetas que quer para a instância.
    3. Clique em Guardar.

gcloud

Para obter informações sobre como usar estas flags, leia o artigo Anexar etiquetas a recursos na documentação do Resource Manager.

Por exemplo, o comando seguinte anexa uma etiqueta 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 o seguinte:

  • 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 etiqueta
  • PROJECT_NUMBER: o ID numérico do seu 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 etiqueta a um recurso, primeiro tem de criar uma representação JSON de uma associação de etiquetas que inclua o ID permanente ou o nome do espaço de nomes do valor da etiqueta e o ID permanente do recurso. Para mais informações sobre o formato de uma associação de etiquetas, consulte a referência tagBindings.

Para anexar a etiqueta a um recurso zonal, como uma instância de VM, use o método tagBindings.create com o ponto final regional onde o recurso está localizado. Por exemplo:

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

O corpo do pedido pode ser uma das duas opções seguintes:

{
  "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 o seguinte:

  • 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 seu 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 etiqueta que está anexado, por exemplo: 4567890123
  • TAGVALUE_NAMESPACED_NAME: o nome do espaço de nomes do valor da etiqueta que está anexado e tem o seguinte formato: parentNamespace/tagKeyShortName/tagValueShortName

Adicionar etiquetas a um recurso durante a criação do recurso

Em determinados cenários, pode querer etiquetar recursos durante a criação de recursos, em vez de o fazer após a criação do recurso.

Consola

Consoante o tipo de recurso, os passos exatos podem variar. Os passos seguintes destinam-se a uma VM:

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Clique em Criar instância. É apresentada a página Criar uma instância, que mostra o painel Configuração da máquina.

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

    1. Expanda a secção Gerir etiquetas.
    2. Clique em Adicionar etiquetas.
    3. No painel Etiquetas que é aberto, siga as instruções para adicionar uma etiqueta à instância.
    4. Clique em Guardar.
  5. Especifique outras opções de configuração para a 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 etiqueta a um recurso durante a criação do recurso, adicione a flag --resource-manager-tags com o comando create respetivo. Por exemplo, para anexar uma etiqueta 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 o seguinte:

  • INSTANCE_NAME: o nome da sua 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 etiqueta
  • TAGVALUE_ID: o ID numérico permanente do valor da etiqueta que está anexado, por exemplo: 4567890123

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

REST

Faça um pedido POST para o seguinte URL:

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

Inclua o seguinte corpo JSON do pedido:

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

Substitua o seguinte:

  • INSTANCE_NAME: o nome da sua instância de VM
  • TAGKEY_ID: o ID numérico do número da chave da etiqueta
  • TAGVALUE_ID: o ID numérico permanente do valor da etiqueta que está anexado, por exemplo: 4567890123

Use etiquetas com regras de firewall

Para ativar o tráfego de rede de forma segura para uma instância específica do Compute Engine, pode aplicar uma etiqueta de rede ou uma etiqueta segura à instância. Em seguida, pode criar uma regra de firewall que segmente essa etiqueta. Isto é útil para gerir o acesso às suas instâncias em grande escala.

Por exemplo, suponha que tem uma instância de computação que executa um servidor Web e criou uma nova aplicação Web que tem de estar acessível ao público na porta HTTP padrão (80). Pode usar uma rede ou uma etiqueta segura para implementar uma regra de firewall que conceda acesso HTTP apenas à instância de computação na qual o servidor Web é executado.

Para obter instruções sobre como criar etiquetas para utilização em políticas de firewall, consulte o seguinte:

  • Para usar etiquetas de rede com regras de firewall da VPC, consulte o artigo Adicione etiquetas de rede.
  • Para usar etiquetas seguras com políticas de firewall hierárquicas, políticas de firewall de rede globais e regionais ou para usar com origens ligadas através de VPC Network Peering, consulte o artigo Crie e faça a gestão de etiquetas seguras.

Para ver informações sobre se deve usar contas de serviço ou etiquetas de rede para definir alvos e origens para regras de entrada de rede, consulte o artigo Filtrar por conta de serviço em comparação com etiqueta de rede.

Desassociar uma etiqueta de um recurso

Pode desassociar uma etiqueta de um recurso eliminando o recurso de associação de etiquetas.

Para rever as instruções sobre como desassociar etiquetas, consulte o artigo Desassociar uma etiqueta de um recurso na documentação do Resource Manager.

Consola

Consoante o tipo de recurso, os passos exatos podem ser ligeiramente diferentes. Por exemplo, os passos seguintes desvinculam uma etiqueta de uma VM:

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Na coluna Nome, clique no nome da instância para a qual quer remover etiquetas.

  4. Na página de detalhes da instância de VM, conclua os seguintes passos:

    1. Clique em Edit.
    2. Para etiquetas do gestor de recursos, na secção Informações básicas, clique em Gerir etiquetas. Remova as etiquetas que quer para a instância. Só pode remover etiquetas que foram adicionadas diretamente à instância.
    3. Para etiquetas de rede, na secção Rede, remova a etiqueta da lista Etiquetas de rede.
    4. Clique em Guardar.

gcloud

Para desassociar uma etiqueta de uma instância de computação, use o comando resource-manager tags bindings delete:

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

Substitua o seguinte:

  • LOCATION_NAME: a zona do recurso de destino, como us-central1-a
  • TAGVALUE_ID: o ID numérico da chave da etiqueta
  • 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
  • INSTANCE_ID: o ID numérico da instância de computação

Para atualizar ou substituir uma associação de etiqueta existente por outra, desassocie a associação de etiqueta antiga e associe a nova.

REST

Para eliminar uma associação de etiqueta anexada a um recurso, como uma instância de computação, use o método tagBindings.delete com o ponto final regional onde o seu recurso está localizado.

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

Substitua o seguinte:

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

Visualizar etiquetas anexadas a um recurso

Para rever instruções detalhadas sobre como listar etiquetas, consulte o artigo Listar todas as etiquetas anexadas a um recurso na documentação do Resource Manager.

Consola

Consoante o tipo de recurso, os passos exatos podem ser ligeiramente diferentes. Por exemplo, os passos seguintes mostram como ver as etiquetas de uma VM:

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Na coluna Nome, clique no nome da MV para a qual quer ver as etiquetas.

  4. Na página de detalhes da instância de VM, procure etiquetas na secção Etiquetas.

gcloud

Para obter uma lista de associações de etiquetas diretamente anexadas a um recurso, use o comando gcloud resource-manager tags bindings list. Se adicionar a flag --effective, também é devolvida uma lista de etiquetas herdadas por este 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 o seguinte:

  • LOCATION_NAME: a zona do recurso de destino, como us-central1-a
  • 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 de VM

Se adicionar a flag --effective ao comando tags bindings list, também devolve uma lista de todas as etiquetas herdadas por este recurso.

O resultado é semelhante ao seguinte:

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

Se todas as etiquetas avaliadas num recurso estiverem diretamente anexadas, o campo inherited é falso e é omitido.

REST

Para listar as associações de etiquetas anexadas a um recurso regional, como instâncias do Compute Engine, use o método tagBindings.list com o ponto final regional onde o 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 o seguinte:

  • 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 de VM

O que se segue?