Adicione etiquetas de rede

Uma etiqueta é simplesmente uma string de carateres adicionada a um campo tags num recurso, como instâncias de máquinas virtuais (VMs) do Compute Engine ou modelos de instâncias. Uma etiqueta não é um recurso separado, pelo que não a pode criar separadamente. Todos os recursos com essa string são considerados como tendo essa etiqueta. As etiquetas permitem-lhe criar regras de firewall e rotas aplicáveis a instâncias de VM específicas.

Pode atribuir etiquetas de rede a novas VMs no momento da criação ou editar o conjunto de etiquetas atribuídas em qualquer altura mais tarde. Pode editar etiquetas de rede sem parar uma VM.

Especificações

As etiquetas de rede que atribui a uma instância aplicam-se a todas as interfaces de rede da instância. Uma etiqueta de rede aplica-se apenas às redes VPC que estão diretamente associadas às interfaces de rede da instância. Isto aplica-se mesmo ao intercâmbio da rede da VPC, porque as redes em intercâmbio permanecem redes distintas. Assim, as etiquetas de rede só são significativas na rede à qual a interface de rede da instância está associada.

As etiquetas de rede têm de começar por uma letra minúscula e podem conter letras minúsculas, números e hífenes. As etiquetas têm de terminar com uma letra minúscula ou um número.

Autorizações

As seguintes funções de IAM são necessárias para as tarefas abordadas nesta página. Para mais detalhes, consulte o artigo Funções de IAM do Compute Engine.

Tarefa Função necessária
Atribua uma etiqueta de rede a uma nova instância quando esta for criada Projeto proprietário ou editor ou administrador da instância
Adicione ou remova etiquetas de rede para instâncias existentes
Adicione, remova ou edite regras de firewall Projeto proprietário ou editor ou administrador de segurança

Limites

Os seguintes limites aplicam-se às etiquetas de rede:

Limite Valor Descrição
Número máximo de etiquetas por VM 64 Todas as etiquetas de uma VM têm de ser únicas. Pode atribuir até 64 etiquetas diferentes por VM.
Número máximo de carateres para cada etiqueta 63
Carateres aceitáveis para uma etiqueta Letras minúsculas, números e travessões Além disso:
• As etiquetas têm de começar com uma letra minúscula.
• As etiquetas têm de terminar com um número ou uma letra minúscula.

Regras e trajetos de firewall

As etiquetas de rede permitem-lhe aplicar regras de firewall e rotas a uma instância específica ou a um conjunto de instâncias:

  • Pode tornar uma regra de firewall aplicável a instâncias específicas através de etiquetas de destino e etiquetas de origem.

  • Cria um percurso aplicável a instâncias específicas através de uma etiqueta.

Alvos para regras de firewall

Todas as regras de firewall no Google Cloud têm de ter um alvo que defina as instâncias às quais se aplica. O destino predefinido são todas as instâncias na rede, mas pode especificar instâncias como destinos através de etiquetas de destino ou contas de serviço de destino.

A etiqueta de destino define as Google Cloud VMs às quais a regra se aplica. A regra é aplicada a uma rede VPC específica. É aplicável ao endereço IP interno principal associado à interface de rede de qualquer instância anexada a essa rede VPC que tenha uma etiqueta de rede correspondente.

As regras de firewall de entrada e saída têm destinos:

  • As regras de entrada aplicam-se ao tráfego que entra na sua rede VPC. Para regras de entrada, os destinos são VMs de destino em Google Cloud.

  • As regras de saída aplicam-se ao tráfego que sai da sua rede da VPC. Para regras de saída, os destinos são VMs de origem em Google Cloud.

Considere uma regra de firewall de entrada que permita o tráfego na porta TCP 80 de qualquer origem. A regra tem uma etiqueta de destino de http-server. Esta regra aplicar-se-ia apenas a instâncias que tenham a etiqueta de rede http-server, o que significa que o tráfego recebido na porta 80 seria permitido a essas instâncias.

Filtros de origem para regras de firewall de entrada

Quando cria regras de firewall de entrada, tem de especificar uma origem. Pode defini-lo através de intervalos de endereços IP internos ou externos, ou referindo-se a instâncias específicas. Especifica instâncias através de etiquetas de origem ou contas de serviço de origem.

A etiqueta de origem de uma regra de firewall de entrada aplicada numa rede VPC define uma origem de tráfego como proveniente do endereço IP interno principal associado à interface de rede anexada a essa rede VPC para qualquer instância que tenha uma etiqueta de rede correspondente.

Pode usar uma combinação de intervalos de IP e etiquetas de origem ou uma combinação de intervalos de IP e contas de serviço de origem. Não pode usar etiquetas de rede e contas de serviço na mesma regra. Para mais informações sobre etiquetas de origem e contas de serviço, consulte o artigo Filtrar por conta de serviço vs. etiqueta de rede.

Considerações

Quando usa uma regra de firewall de entrada com etiquetas de origem, pode observar um atraso na propagação. Normalmente, este atraso é de alguns segundos, mas, em casos raros, pode ser de alguns minutos. Quando faz as seguintes alterações, a regra da firewall de entrada pode demorar algum tempo a ser aplicada ou removida de uma instância associada:

  • Iniciar ou parar uma instância que tenha uma etiqueta associada à etiqueta de origem de uma regra
  • Iniciar uma instância que tenha uma etiqueta associada à etiqueta de destino de uma regra
  • Adicionar ou remover etiquetas de uma instância se as etiquetas forem usadas nos campos de origem ou de destino de uma regra
  • Adicionar ou remover etiquetas de origem ou de destino de uma regra

Este atraso de propagação aplica-se apenas a regras de entrada que usam etiquetas de origem. Todas as outras regras de firewall entram imediatamente em vigor numa instância. Por exemplo, uma regra de entrada que usa um intervalo de endereços IP de origem e etiquetas de destino não tem atraso de propagação.

Interação com trajetos estáticos

Quando cria uma rota estática, especifica uma rede de VPC. Em seguida, pode especificar etiquetas para que a rota se aplique apenas ao tráfego enviado a partir de VMs com etiquetas de rede correspondentes na rede VPC especificada.

Adicione, veja e remova etiquetas

Pode especificar etiquetas de rede quando cria uma instância de VM. Também pode adicionar etiquetas a uma VM existente e removê-las.

Adicione etiquetas quando criar uma VM

Consola

  1. Aceda à página de instâncias de VM.
    Aceda à página de instâncias de VM
  2. Clique em Criar instância.
  3. Clique em Gestão, segurança, discos, trabalhar em rede, arrendamento único para abrir essa secção.
  4. Clique no separador Rede.
  5. No campo Etiquetas de rede, especifique uma ou mais etiquetas, separadas por vírgulas.
  6. Preencha outros campos para a VM.
  7. Clique em Criar.

gcloud

Para atribuir novas etiquetas a uma instância, use o seguinte comando gcloud.

gcloud compute instances create INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS \
    ...other parameters as needed.

Substitua o seguinte:

  • INSTANCE_NAME: o nome da instância.
  • ZONE: a zona da instância.
  • TAGS: uma lista de etiquetas delimitada por vírgulas.

Consulte a gcloud documentação para mais informações.

Terraform

Pode usar o recurso Terraform para criar uma instância de VM com etiquetas de rede.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace this with your project ID in quotes
  zone         = "southamerica-east1-b"
  name         = "backend-instance"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network = "default"
  }
  tags = ["health-check", "ssh"]
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

Adicione etiquetas a uma VM existente

Consola

  1. Aceda à página de instâncias de VM.
    Aceda à página de instâncias de VM
  2. Clique no nome de uma instância.
  3. Na página Detalhes da instância de VM, clique em Editar.
  4. Na secção Etiquetas de rede, especifique uma ou mais etiquetas, separadas por vírgulas.
  5. Clique em Guardar.

gcloud

Para atribuir novas etiquetas a uma instância, use o seguinte comando gcloud.

gcloud compute instances add-tags INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS

Substitua o seguinte:

  • INSTANCE_NAME: o nome da instância.
  • ZONE: a zona da instância.
  • TAGS: uma lista de etiquetas delimitada por vírgulas.

Consulte a gcloud documentação para mais informações.

Ver etiquetas

Consola

  1. Aceda à página de instâncias de VM.
    Aceda à página de instâncias de VM
  2. Veja as etiquetas na coluna Etiquetas de rede.

    Se necessário, clique em Opções de apresentação de colunas para adicionar a coluna Etiquetas de rede.

  3. Para ver instâncias etiquetadas com uma etiqueta específica, no filtro, selecione a propriedade Etiquetas de rede e introduza as etiquetas pelas quais quer filtrar.

gcloud

Para listar as instâncias com as respetivas etiquetas, execute este comando:

gcloud compute instances list --format='table(name,status,tags.list())'

Para listar as instâncias etiquetadas com uma etiqueta específica, execute este comando:

gcloud compute instances list --filter='tags:TAG_EXPRESSION'

Substitua o seguinte:

  • TAG_EXPRESSION: a expressão que quer filtrar. Por exemplo, tag1, tag1 OR tag2 e tag1 AND tag2. Consulte o artigo gcloud topic filters para obter mais informações sobre a filtragem da saída.

Remova as etiquetas

Consola

  1. Aceda à página de instâncias de VM.
    Aceda à página de instâncias de VM
  2. Clique no nome de uma instância.
  3. Na página Detalhes da instância de VM, clique em Editar.
  4. Na secção Etiquetas de rede, remova etiquetas clicando em remover (X).
  5. Clique em Guardar.

gcloud

Para remover etiquetas de uma instância, use o seguinte comando gcloud.

gcloud compute instances remove-tags INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS

Substitua o seguinte:

  • INSTANCE_NAME: o nome da instância.
  • ZONE: a zona da instância.
  • TAGS: uma lista de etiquetas delimitada por vírgulas.

Consulte a gcloud documentação para mais informações.

Pedidos de API diretos

Pode definir as etiquetas de rede associadas a uma instância fazendo um pedido direto à API. Ao contrário da utilização da Google Cloud consola ou dos comandos gcloud, a atualização de etiquetas através de um pedido direto da API não preserva as etiquetas existentes. Certifique-se de que especifica o conjunto completo de etiquetas que devem ser associadas a uma instância sempre que atualizar as etiquetas desta forma.

Para atualizar etiquetas através de um pedido de API direto:

  1. Determinar a impressão digital mais recente associada às etiquetas. A impressão digital é usada para evitar colisões de pedidos de API simultâneos. O processo de atualização das etiquetas de rede de uma instância é semelhante à atualização dos metadados da instância.

    Faça um pedido GET à instância; por exemplo:

    GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance
    

    Procure a propriedade tags.fingerprint na resposta:

    200 OK
    {
    ...
    "tags": {
     "items": [
     "http-server",
     "db-client"
     ],
     "fingerprint": "MW8EqhxILtc="
    },
    ...
    }
    

    Também pode usar um comando gcloud para obter o fingerprint, conforme mostrado no exemplo seguinte:

    gcloud compute instances describe INSTANCE_NAME \
       --zone ZONE \
       --format="get(tags.fingerprint)"
  2. Faça um pedido POST ao método instance().setTags. O corpo do pedido tem de conter todas as etiquetas que devem ser associadas à instância, juntamente com o valor fingerprint.

    Pedido de exemplo:

    POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setTags
    {
     "items": [
      "http-server",
      "db-client",
      "allow-internet-access"
      ],
     "fingerprint": "MW8EqhxILtc="
    }
    

    Exemplo de resposta:

    200 OK
    {
          "kind": "compute#operation",
          "id": "9251830049681941507",
          "name": "operation-1442414898862-51fde63aa57b1-422323e0-c439fb04",
          "zone": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f",
          "operationType": "setTags",
          "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance",
          "targetId": "4392196237934605253",
          "status": "PENDING",
          "user": "user@example.com",
          "progress": 0,
    ...
    }
    

O que se segue?