Usar tags de rede para aplicar regras de firewall a nós


Nesta página, mostramos como aplicar dinamicamente tags de rede a nós nos clusters do Google Kubernetes Engine (GKE) sem interromper as cargas de trabalho em execução.

Sobre tags de rede

Tags de rede são metadados em m´quinas virtuais (VMs) do Compute Engine que permitem criar regras de firewall e rotas aplicáveis a instâncias de VM específicas. No GKE, é possível usar tags de rede para tornar as regras de firewall ou as rotas aplicáveis aos nós no cluster.

É possível usar a API GKE para aplicar e atualizar tags de rede nos clusters do GKE sem interromper a execução das cargas de trabalho. As tags de rede especificadas também são aplicadas a todos os novos nós provisionados automaticamente pelo GKE.

Use tags em vez de tags de rede

As tags de rede são strings simples que não estão sujeitas aos controles de acesso do Identity and Access Management. Qualquer pessoa com acesso aos seus nós na API GKE pode adicionar tags de rede a esses nós.

Se você usa a versão 1.28 ou posterior do GKE, recomendamos o usoTags com uma designação de firewall para aplicar regras de segurançapolíticas de firewall da rede , que melhoram os recursos das regras de firewall da VPC.

As tags são pares de chave-valor que você anexa às VMs do Compute Engine. Use o IAM para controlar quem pode interagir com tags específicas.

Opções de linha de comando para aplicar tags de rede

A tabela a seguir descreve as sinalizações que podem ser especificadas usando a CLI do Google Cloud para aplicar tags de rede aos clusters, bem como os casos de uso deles.

Flag Modo de operação Nível Descrição
--autoprovisioning-network-tags
  • Piloto automático
  • Padrão
Cluster

Aplica as tags de rede especificadas a todos os nós do Autopilot e a todos os pools de nós padrão provisionados automaticamente.

--tags
  • Padrão
Pool de nós

Aplica manualmente tags de rede a pools de nós padrão específicos.

Limitações

O uso de --autoprovisioning-network-tags impede que você use --tags para atualizar as tags de rede dos pools de nós padrão provisionados automaticamente.

Recomendamos que você use --autoprovisioning-network-tags para pools de nós com provisionamento automático e que você use --tags somente para pools de nós criados manualmente.

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

  • Ativar a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a Google Cloud CLI para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando gcloud components update.

Adicionar tags de rede a novos clusters

Você pode adicionar tags de rede ao criar um novo cluster.

Adicionar tags de rede a novos clusters

Execute este comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --autoprovisioning-network-tags=TAG1,TAG2,...

Substitua:

  • CLUSTER_NAME: o nome do novo cluster de Autopilot.
  • LOCATION: o local do Compute Engine para o novo cluster.
  • TAG1,TAG2, ...: uma lista separada por vírgulas das tags de rede que você quer aplicar.

Adicionar tags de rede a novos clusters

No caso do Standard, também é possível especificar tags de rede especificamente para o provisionamento automático de nós.

Aplicar tags de rede ao pool de nós padrão

Execute o comando a seguir para criar um novo cluster padrão e aplicar tags de rede ao pool de nós padrão:

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --tags=NETWORK_TAG1,NETWORK_TAG2,...

Substitua:

  • CLUSTER_NAME: o nome do novo cluster padrão.
  • COMPUTE_REGION: o local do Compute Engine para o novo cluster.
  • NETWORK_TAG1,NETWORK_TAG2, ...: uma lista separada por vírgulas das tags de rede que você quer aplicar.

Aplicar tags de rede a pools de nós com provisionamento automático

É possível aplicar tags de rede automaticamente a todos os pools de nós criados pelo provisionamento automático de nós.

Execute este comando:

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --enable-autoprovisioning \
    --autoprovisioning-network-tags=TAG1,TAG2,...

Substitua TAG1,TAG2,... por uma lista separada por vírgulas de tags de rede que você quer aplicar a todos os pools de nós provisionados automaticamente.

Atualizar tags de rede em clusters atuais

É possível atualizar as tags de rede em clusters atuais.

Atualizar tags de rede em clusters atuais

Execute este comando:

gcloud container clusters update CLUSTER_NAME \
    --autoprovisioning-network-tags=TAG1,TAG2,...

Atualizar tags de rede em clusters atuais

Execute o seguinte comando para atualizar as tags de rede em um pool de nós padrão específico. Não é possível usar esse comando para atualizar pools de nós provisionados automaticamente se você usou --autoprovisioning-network-tags.

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --tags=NETWORK_TAG1,NETWORK_TAG2,...

Se --autoprovisioning-network-tags estiver definido para o cluster, esse comando retornará um erro.

Atualizar tags de rede para pools de nós com provisionamento automático

É possível atualizar as tags de rede que o provisionamento automático de nós aplica aos pools de nós novos e atuais provisionados automaticamente.

Execute este comando:

gcloud container clusters update CLUSTER_NAME \
    --autoprovisioning-network-tags=TAG1,TAG2,...

Adicionar tags de rede a novos pools de nós padrão

Para criar um novo pool de nós em um cluster padrão com tags de rede específicas, execute o seguinte comando:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --tags=NETWORK_TAG1,NETWORK_TAG2,...

Substitua NODE_POOL_NAME pelo nome do novo pool de nós.

Ver tags de rede existentes

Nesta seção, mostramos como visualizar suas tags de rede.

Conferir as tags de rede atuais no Autopilot

Execute este comando:

gcloud container clusters describe CLUSTER_NAME \
    --flatten=nodePoolAutoConfig.networkTags

Se o cluster tiver tags de rede, a saída será semelhante a esta:

---
tags:
- example-tag

Visualizar tags de rede existentes em Standard

É possível visualizar as tags de rede em pools de nós provisionados automaticamente ou em pools de nós criados.

Conferir tags de rede em pools de nós provisionados automaticamente

Execute este comando:

gcloud container clusters describe CLUSTER_NAME \
    --flatten=nodePoolAutoConfig.networkTags

Se o cluster tiver tags de rede, a saída será semelhante a esta:

---
tags:
- example-tag

Conferir tags de rede em pools de nós sem provisionamento automático de nós

Para visualizar as tags de rede de um pool de nós padrão específico em que você as aplicou usando o flag --tags, execute o seguinte comando:

gcloud container node-pools describe NODE_POOL_NAME\
    --cluster=CLUSTER_NAME \
    --format='value(config.tags)'

Substitua NODE_POOL_NAME pelo nome do pool de nós.

Se o pool de nós tiver tags, a saída será semelhante a esta:

example-tag

Remover tags de rede

É possível remover as tags de rede do GKE.

Remover tags de rede dos clusters do Autopilot

Execute este comando:

gcloud container clusters update CLUSTER_NAME \
    --autoprovisioning-network-tags=""

Remova as tags de rede de clusters e pools de nós

É possível remover tags de todos os pools de nós provisionados automaticamente ou de pools de nós específicos.

Remover tags de rede dos pools de nós com provisionamento automático

Para remover as tags de rede de todos os pools de nós com provisionamento automático, execute o seguinte comando:

gcloud container clusters update CLUSTER_NAME \
    --autoprovisioning-network-tags=""

Esse comando também restaura sua capacidade de usar a opção --tags para especificar manualmente as tags de rede para os pools de nós com provisionamento automático.

Remova tags de rede de pools de nós específicos

Para remover tags de rede de pools de nós específicos, execute o comando a seguir:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --tags=""

A seguir