Como configurar tags de rede

As tags de rede são atributos de texto que podem ser adicionados às instâncias de máquina virtual (VM) do Compute Engine. Com elas, você pode criar regras e rotas de firewall aplicáveis a instâncias de VM específicas.

Você só pode adicionar tags de rede a instâncias de VM ou modelos de instância, mas não a outros recursos do GCP. É possível atribuir tags de rede a novas instâncias no momento da criação ou editar posteriormente o conjunto de tags atribuídas. As tags de rede podem ser editadas sem precisar interromper uma instância.

Especificações

As tags de rede que você atribui a uma instância se aplicam somente à rede VPC em que a interface de rede principal da instância está localizada:

  • Isso é válido mesmo para o peering de rede VPC porque as redes com peering continuam sendo redes distintas. Assim, essas tags só são importantes para a rede que contém a interface de rede principal da instância.

  • As tags de rede não são aplicáveis a IPs alias ou a várias interfaces de rede.

Permissões

Os seguintes papéis do IAM são necessários para as tarefas abordadas nesta página. Para mais detalhes, consulte Papéis do IAM do Compute Engine.

Tarefa Papel obrigatório
Atribuir uma tag de rede a uma nova instância no momento da criação Proprietário ou editor do projeto ou administrador da instância
Adicionar tags de rede às instâncias existentes ou removê-las
Adicionar, remover ou editar regras de firewall Proprietário ou editor do projeto ou administrador de segurança

Limites

Os seguintes limites se aplicam às tags de rede:

Limite Valor Descrição
Número máximo de tags por VM 64 Todas as tags de uma VM precisam ser exclusivas. Você pode atribuir até 64 tags diferentes por VM.
Número máximo de caracteres para cada tag 63
Caracteres permitidos em uma tag letras minúsculas, números, hífens Além disso, as tags precisam começar e terminar com um número ou uma letra minúscula.

Regras e rotas de firewall

Com as tags de rede, você pode aplicar regras e rotas de firewall a uma instância específica ou a um conjunto de instâncias:

  • Para aplicar uma regra de firewall a instâncias específicas, use tags de destino e tags de origem.

  • Para aplicar uma rota a instâncias específicas, use uma tag.

Destinos para regras de firewall

Cada regra de firewall no GCP precisa ter um destino que defina as instâncias às quais se aplica. O padrão é todas as instâncias na rede, mas você pode especificar instâncias como destinos usando tags de destino ou contas de serviço de destino.

A tag de destino define as VMs do GCP às quais a regra se aplica. A regra será aplicada ao endereço IP interno primário de qualquer instância que tenha uma tag de rede correspondente.

Tanto as regras de firewall de entrada quanto as de saída têm destinos:

  • As regras de entrada são aplicadas ao tráfego que entra na sua rede VPC. Os destinos dessas regras são as VMs de destino no GCP.

  • As regras de saída são aplicadas ao tráfego que sai da sua rede VPC. Os destinos dessas regras são as VMs de origem no GCP.

Use uma regra de firewall de entrada que permita o tráfego na porta TCP 80 de qualquer origem. A regra tem uma tag de destino http-server e se aplicaria apenas a instâncias que têm a tag de rede http-server. Isso significa que o tráfego de entrada na porta 80 seria permitido para essas instâncias.

Filtros de origem para regras de firewall de entrada

Ao criar regras de firewall de entrada, você precisa especificar uma origem. Para defini-la, use intervalos de endereços IP internos ou externos ou chame instâncias específicas. Use tags de origem ou contas de serviço de origem para especificar instâncias específicas.

A tag de origem para uma regra de firewall de entrada define a origem de tráfego como proveniente do endereço IP interno primário de qualquer instância que tenha uma tag de rede correspondente.

Você pode usar uma combinação de intervalos de IP e tags de origem ou de intervalos de IP e contas de serviço de origem. No entanto, não é possível usar tags de rede e contas de serviço na mesma regra. Para mais informações sobre tags de origem e contas de serviço, consulte Como filtrar por conta de serviço ou tag de rede.

Interação com rotas

Você pode especificar tags durante a criação de uma rota para que ela seja aplicada somente ao tráfego enviado do endereço IP interno primário das instâncias com tags de rede correspondentes.

Como adicionar e remover tags

Como adicionar tags

Console

  1. Acesse a página "Instâncias de VM".
    Ir para a página "Instâncias de VM"
  2. Selecione uma instância.
  3. Na página Detalhes da instância de VM, clique em Editar.
  4. Na seção Tags de rede, especifique uma ou mais tags, separadas por vírgulas.
  5. Clique em Salvar.

gcloud

Para atribuir novas tags a uma instância, use o seguinte comando gcloud. Substitua [INSTANCE-NAME] pelo nome da instância, [ZONE] pela zona dela e [TAGS] por uma lista de strings delimitadas por vírgulas:

gcloud compute instances add-tags [INSTANCE-NAME] \
    --zone [ZONE] \
    --tags [TAGS]

Para mais informações, consulte a documentação sobre o gcloud.

Como remover tags

Console

  1. Acesse a página "Instâncias de VM".
    Ir para a página "Instâncias de VM"
  2. Selecione uma instância.
  3. Na página Detalhes da instância de VM, clique em Editar.
  4. Na seção Tags de rede, remova as tags clicando em Remover (X).
  5. Clique em Salvar.

gcloud

Para remover as tags de uma instância, use o seguinte comando gcloud. Substitua [INSTANCE-NAME] pelo nome da instância, [ZONE] pela zona dela e [TAGS] por uma lista das tags a serem removidas, delimitadas por vírgulas:

gcloud compute instances remove-tags [INSTANCE-NAME] \
    --zone [ZONE] \
    --tags [TAGS]

Para mais informações, consulte a documentação sobre o gcloud.

Solicitações diretas de API

Para definir as tags de rede associadas a uma instância, faça uma solicitação direta de API. Diferente do Console do GCP ou dos comandos gcloud, a atualização de tags por solicitação direta de API não preserva as tags existentes. É preciso especificar o conjunto completo de tags a serem associadas a uma instância sempre que você as atualiza dessa maneira.

Para atualizar tags usando uma solicitação direta de API, faça o seguinte:

  1. Determine a impressão digital mais recente associada às tags. A impressão digital é usada para evitar colisões de solicitações de API simultâneas. O processo de atualização de tags de rede para uma instância é semelhante à atualização dos metadados dela.

    Execute uma solicitação GET para a instância. Por exemplo:

    GET https://www.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="
     },
    ...
    }
    Você também pode usar um comando gcloud para encontrar a fingerprint, conforme mostrado no exemplo a seguir:
    gcloud compute instances describe [INSTANCE-NAME] \
        --zone [ZONE] \
        --format="get(tags.fingerprint)"

  2. Faça uma solicitação POST para o método instance().setTags. O corpo da solicitação precisa conter todas as tags a serem associadas à instância, além do valor fingerprint.

    Exemplo de solicitação:

    POST https://www.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,
    ...
    }

Próximas etapas

Esta página foi útil? Conte sua opinião sobre: