Usar tags para firewalls

Crie tags antes de tentar vinculá-las aos recursos ou usá-las nas políticas de firewall de rede. Para controlar o acesso à rede, as tags só são eficazes quando vinculadas a instâncias de VM.

Para uma visão geral, consulte Tags para firewalls.

Conceder permissões para tags

O papel tagAdmin permite criar novas tags, atualizar e excluir tags existentes. Um administrador da organização pode conceder esse papel no nível da organização, e um proprietário do projeto pode concedê-lo no nível do projeto.

gcloud

  1. Conceda a função tagAdmin ao usuário.

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagAdmin
    

    Substitua:

    • ORGANIZATION_ID: ID da sua organização
    • EMAIL_ADDRESS: o endereço de e-mail do usuário.
  2. Conceda a função tagUser ao usuário.

    gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Substitua:

    • ORGANIZATION_ID: ID da sua organização
    • TAG_KEY: a chave de tag.
    • EMAIL_ADDRESS: o endereço de e-mail do usuário.

Papéis personalizados para gerenciar tags

O papel tagAdmin permite realizar as seguintes ações: criar novas tags, atualizar e excluir tags existentes. Se você precisar de alguns desses recursos, crie um papel do IAM personalizado com as permissões relevantes e conceda o papel ao usuário de destino. Para ver a lista de permissões relevantes, consulte Permissões do IAM.

As tags usadas nas políticas de firewall precisam ser designadas com a finalidade GCE_FIREWALL. A finalidade do GCE_FIREWALL é necessária para que a tag seja usada em recursos de rede. No entanto, é possível usá-la em outras ações.

As tags usadas em políticas de firewall de rede precisam ter um escopo limitado a uma única VPC.

Criar as chaves e os valores de tag

Antes de associar tags às políticas de firewall de rede, crie as chaves e valores de tag.

gcloud

  1. Depois de receber as permissões necessárias, crie a chave de tag.

    gcloud resource-manager tags keys create TAG_KEY \
       --parent organizations/ORGANIZATION_ID \
       --purpose GCE_FIREWALL \
       --purpose-data network=PROJECT_ID/NETWORK
    

    Substitua:

    • TAG_KEY: a chave de tag.
    • ORGANIZATION_ID: ID da sua organização
    • PROJECT_ID: o ID do projeto
    • NETWORK: o nome da rede
  2. Adicione os valores da tag relevantes às chaves de tag. Execute o comando várias vezes para adicionar vários valores. Cada valor de tag adicionado à chave de tag precisa ser único.

    gcloud resource-manager tags values create TAG_VALUE \
       --parent ORGANIZATION_ID/TAG_KEY
    

    Substitua:

    • ORGANIZATION_ID: ID da sua organização
    • TAG_KEY: a chave de tag.
    • TAG_VALUE: o valor a ser atribuído à chave de tag.

Criar uma política de firewall de rede

Depois de criar uma tag, você poderá usá-la nas políticas de firewall de rede. Se você não tiver uma política de firewall de rede, crie uma nova.

gcloud

  1. Criar uma política de firewall de rede.

    gcloud compute network-firewall-policies create \
       FIREWALL_POLICY_NAME \
       --global
    

    Substitua:

    • FIREWALL_POLICY_NAME: o nome da nova política de firewall de rede global

Criar uma regra de política de firewall com tags

Depois de criar uma tag e uma política de firewall de rede, você pode criar uma regra de política de firewall de rede com os valores específicos da tag de origem e da tag de destino para permitir o tráfego desejado entre as VMs com as tags de origem e de destino.

gcloud

  1. Crie uma regra de política de firewall de rede com as chaves e os valores de origem e de destino específicos.

    gcloud compute network-firewall-policies rules create 1 \
        --firewall-policy FIREWALL_POLICY_NAME \
        --src-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
        --target-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
        --direction DIRECTION \
        --action ACTION \
        --layer4-configs tcp:PORT \
        --global-firewall-policy
    

    Substitua:

    • FIREWALL_POLICY_NAME: o nome da nova política de firewall de rede global
    • ORGANIZATION_ID: ID da sua organização
    • TAG_KEY: a chave de tag.
    • TAG_VALUE: o valor a ser atribuído à chave de tag.
    • DIRECTION: indica se a regra é ingress ou egress.
    • ACTION: uma das seguintes ações:
      • allow: permite conexões que correspondem à regra
      • deny: nega conexões que correspondem à regra
      • goto_next: transmite a avaliação da conexão para o próximo nível da hierarquia, seja uma pasta ou a rede
    • PORT: o número da porta para acessar o recurso

Vincular tags a instâncias de VM

Os administradores podem vincular as tags a instâncias de VM individuais.

Vincular uma tag a um recurso anexa um valor de tag a um recurso. Embora uma tag possa ter vários valores para uma determinada chave, é possível vincular apenas um valor por chave de tag a um recurso. Por exemplo, não é possível vincular ambos os valores de tag web-backend e mysql à mesma instância de VM, já que pertencem à mesma chave de tag vm-function.

Por exemplo, Sasha, um desenvolvedor, quer configurar um aplicativo que consiste em um back-end de API e um armazenamento de banco de dados de backup. Para permitir o tráfego entre o back-end e o servidor de banco de dados, Sasha precisa vincular os valores de tag web-backend e mysql a diferentes VMs.

gcloud

  1. Conceda o papel tagUser.

    gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Substitua:

    • ORGANIZATION_ID: ID da sua organização
    • TAG_KEY: a chave de tag.
    • EMAIL_ADDRESS: o endereço de e-mail do usuário.

    Nesse comando, o usuário recebe o uso de todos os valores atuais e futuros da chave. Também é possível conceder acesso seletivamente a valores específicos de uma tag desta maneira:

    gcloud resource-manager tags values add-iam-policy-binding ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Substitua:

    • ORGANIZATION_ID: ID da sua organização
    • TAG_KEY: a chave de tag.
    • TAG_VALUE: o valor a ser atribuído à chave de tag.
    • EMAIL_ADDRESS: o endereço de e-mail do usuário.
  2. Conceda o papel tagUser nos recursos que você quer vincular às tags.

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Substitua:

    • PROJECT_ID: o ID do projeto
    • EMAIL_ADDRESS: o endereço de e-mail do usuário.
  3. Consiga o valor de PARENT para o par de chave-valor da tag:

    1. Defina o prefixo do nome completo do seu projeto e zona:

      FULL_NAME_PREFIX=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/
      
    2. Consiga o ID da VM:

      VM_ID=$(gcloud compute instances describe VM_NAME --zone ZONE--format='value(id)')
      
    3. Concatene os valores de FULL_NAME_PREFIX e VM_ID:

      PARENT="$FULL_NAME_PREFIX$VM_ID"
      echo $PARENT
      

    Substitua:

    • PROJECT_NUMBER: o número do seu projeto
    • ZONE: a zona em que a VM está localizada.
    • VM_NAME: o nome da VM em que você está trabalhando
  4. Liste as vinculações.

    gcloud resource-manager tags bindings list \
       --location LOCATION_NAME \
       --parent PARENT
    

    Substitua:

    • LOCATION_NAME: o local ao qual a tag pertence. Neste caso, a zona da instância de VM
    • PARENT: o nome completo do recurso anexado à vinculação, conforme derivado no comando anterior
  5. Exclua e crie as vinculações.

    gcloud resource-manager tags bindings delete \
       --location LOCATION_NAME \
       --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --parent PARENT
    
    gcloud resource-manager tags bindings create \
       --location LOCATION_NAME \
       --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --parent PARENT
    

    Substitua:

    • LOCATION_NAME: o local da tag
    • ORGANIZATION_ID: ID da sua organização
    • TAG_KEY: a chave de tag.
    • TAG_VALUE: o valor da chave de tag.
    • PARENT: o nome completo do recurso a ser anexado ao valor da tag

Usar tags em redes com peering

Você pode usar tags no peering de rede. Realize as tarefas a seguir na ordem especificada para usar as tags em duas redes com peering.

  1. Atribua o papel tagAdmin a dois usuários: um usuário em cada rede de peering. Um administrador da organização concede os papéis tagAdmin aos usuários no nível da organização, e um proprietário do projeto pode concedê-los no nível do projeto.
  2. Deixe o primeiro usuário de rede criar chaves e valores de tag na primeira rede.
  3. Deixe o segundo usuário de rede criar chaves e valores de tag na segunda rede.
  4. Conceda as permissões necessárias aos dois usuários para vincular tags em ambas as redes.
  5. Vincule tags a usuários e recursos na primeira rede.
  6. Vincule tags a usuários e recursos na segunda rede.
  7. Para o usuário na segunda rede, conceda permissões tagUser na primeira rede.
  8. Para o usuário na primeira rede, conceda permissões tagUser na segunda rede.
  9. Crie uma regra de política de firewall na primeira rede.
  10. Crie uma regra de política de firewall na segunda rede.

A seguir