Migrar regras de firewall da VPC que usam tags de rede e contas de serviço

As regras de firewall da nuvem privada virtual (VPC) podem conter tags de rede e contas de serviço de origem. Execute as tarefas a seguir para migrar as regras de firewall da VPC que contêm tags de rede e contas de serviço de origem para uma política de firewall de rede global:

  1. Avalie o ambiente.
  2. Liste tags de rede e contas de serviço atuais.
  3. Crie tags para cada tag de rede e conta de serviço de origem.
  4. Associe as tags de rede e as contas de serviço às tags que você criar.
  5. Vincule tags a instâncias de máquina virtual (VM).
  6. Migre regras de firewall da VPC para uma política de firewall de rede global.
  7. Analise a nova política de firewall de rede.
  8. Conclua as tarefas de pós-migração.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Enable the API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine API.

    Enable the API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Verifique se você tem o papel de administrador de segurança do Compute (roles/compute.securityAdmin).

Avaliar o ambiente

Antes de migrar as regras de firewall da VPC para uma política de firewall de rede global, avalie o ambiente atual e os papéis e permissões do gerenciamento de identidade e acesso (IAM):

  1. Identifique o número de regras de firewall da VPC na sua rede VPC.
  2. Anote as prioridades associadas a cada regra de firewall da VPC.
  3. Verifique se você tem as permissões e os papéis do IAM necessários para criar, associar, modificar e visualizar políticas globais de firewall de rede.
  4. Verifique se você tem as permissões e os papéis do IAM necessários para criar, atualizar e excluir definições seguras de tags.

    Confira na tabela a seguir um resumo dos vários papéis necessários para criar e gerenciar tags:

    Nome do papel Tarefas realizadas
    Função de administrador de tags (roles/resourcemanager.tagAdmin) Criar, atualizar e excluir definições de tags. Para mais informações, consulte Administrar tags.
    Papel de visualizador de tags (roles/resourcemanager.tagViewer) Conferir definições de tags e tags anexadas aos recursos.
    Função de usuário da tag (roles/resourcemanager.tagUser) Adicionar e remover tags anexadas a recursos

Listar tags de rede e contas de serviço atuais

Determine se as regras de firewall da VPC usam tags de rede ou contas de serviço e crie um arquivo JSON para salvar os detalhes dessas contas.

Para exportar as tags de rede e as contas de serviço na sua rede para um arquivo JSON de mapeamento, use o comando compute firewall-rules migrate com a sinalização --export-tag-mapping.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --export-tag-mapping \
    --tag-mapping-file=TAG_MAPPING_FILE

Substitua:

  • NETWORK_NAME: o nome da rede VPC que contém as regras de firewall da VPC que você quer migrar.
  • TAG_MAPPING_FILE: o nome do arquivo JSON de mapeamento.

Se as regras de firewall da VPC tiverem apenas contas de serviço, o arquivo JSON gerado terá apenas contas de serviço. Da mesma forma, se as regras de firewall da VPC tiverem apenas tags de rede, o arquivo JSON gerado terá apenas tags de rede. As contas de serviço têm o prefixo sa, e as tags de rede não têm prefixo.

Por exemplo, o arquivo JSON gerado a seguir contém uma tag de rede sql-server e uma conta de serviço example@example.com.

{"sql-server": null, "sa:example@example.com": null}

Criar tags

Com base nas tags de rede e nas contas de serviço de origem listadas no arquivo de mapeamento, é preciso criar as tags seguras correspondentes na rede.

As novas tags seguras substituem as tags de rede e as contas de serviço, preservando a configuração de rede original após a migração.

Como o principal com o papel de administrador de tags, crie o par de chave-valor de tag segura correspondente para cada tag de rede e conta de serviço.

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

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

Substitua:

  • TAG_KEY: o nome da chave de tag.
  • ORGANIZATION_ID: o ID da organização.
  • PROJECT_ID: ID do projeto.
  • NETWORK_NAME: o nome da sua rede VPC.
  • TAG_VALUE: o valor a ser atribuído à chave de tag.

Por exemplo, se você tiver uma regra de firewall da VPC com uma tag de rede chamada sql-server, crie um par de chave-valor de tag segura correspondente de sql-server:production.

gcloud resource-manager tags keys create sql-server \
    --parent organizations/123456 \
    --purpose GCE_FIREWALL \
    --purpose-data network=test-project/test-network

gcloud resource-manager tags values create production \
   --parent 123456/sql-server

Associar tags de rede e contas de serviço a tags

Depois de criar tags seguras controladas pelo IAM para cada tag de rede e conta de serviço usadas pelas regras de firewall da VPC, associe as tags para as tags de rede e contas de serviço correspondentes no arquivo JSON de mapeamento.

Edite o arquivo JSON para associar as tags de rede e as contas de serviço às tags seguras correspondentes.

{"sql-server": "tagValues/yyyyy", "sa:example@example.com": "tagValues/zzzzz"}

Por exemplo, o arquivo JSON a seguir associa a tag de redesql-server ao valor "Tag" da chave sql-server e a conta de serviço example@example.com ao valor da tag da chave example@example.com:

{"sql-server": "tagValues/production", "sa:example@example.com": "tagValues/example"}

Vincular tags a VMs

Com base no arquivo JSON de mapeamento de tags, vincule as tags seguras recém-criadas às VMs a que as tags de rede atuais estão anexadas:

  1. Como o principal com o papel de administrador de tags, realize as seguintes tarefas:

    1. Analise as permissões necessárias para anexar tags seguras aos recursos do Google Cloud .
    2. Atribua o papel de usuário da tag ao principal que usa as tags seguras e vincula-as às VMs.
  2. Como o principal com o papel de usuário da tag, use o comando compute firewall-rules migrate com a sinalização --bind-tags-to-instances:

    gcloud beta compute firewall-rules migrate \
       --source-network=NETWORK_NAME \
       --bind-tags-to-instances \
       --tag-mapping-file=TAG_MAPPING_FILE
    

    Substitua:

    • NETWORK_NAME: o nome da sua rede VPC.
    • TAG_MAPPING_FILE: o nome do arquivo JSON de mapeamento.

Migrar regras de firewall da VPC para uma política de firewall de rede global

Migre as regras de firewall da VPC para uma política de firewall de rede global. Use o comando compute-firewall-rules migrate.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --tag-mapping-file=TAG_MAPPING_FILE

Substitua:

  • NETWORK_NAME: o nome da rede VPC que contém as regras de firewall da VPC que você quer migrar.
  • POLICY_NAME: o nome da política de firewall de rede global a ser criada durante a migração.

Excluir regras de firewall da migração

Para excluir regras de firewall específicas da migração, use o comando gcloud beta compute firewall-rules migrate com a flag --exclusion-patterns-file:

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --exclusion-patterns-file=EXCLUSION_PATTERNS_FILE

Substitua:

  • NETWORK_NAME: o nome da rede VPC que contém as regras de firewall da VPC que você quer migrar.
  • POLICY_NAME: o nome da política de firewall de rede global a ser criada durante a migração.
  • EXCLUSION_PATTERNS_FILE: o nome do arquivo que contém expressões regulares que definem padrões de nomenclatura de firewall da VPC a serem excluídos da migração. Especifique o caminho completo do arquivo. As regras de firewall que correspondem aos padrões especificados são ignoradas.

    Ao definir os padrões de exclusão, considere o seguinte:

    • Cada expressão regular precisa estar em uma linha e representar um único padrão de nomenclatura de firewall.
    • As expressões regulares não contêm espaços em branco iniciais ou finais.

Conferir regras de firewall excluídas

Com base nos padrões de nomenclatura de regras de firewall excluídos, a ferramenta de migração não migra algumas regras, como as regras de firewall do Google Kubernetes Engine (GKE). Para exportar a lista de padrões de nomenclatura de regras de firewall excluídas, use o comando gcloud beta compute firewall-rules migrate com as flags --export-exclusion-patterns e --exclusion-patterns-file.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --exclusion-patterns-file=EXCLUSION_PATTERNS_FILE \
    --export-exclusion-patterns

Substitua:

  • NETWORK_NAME: o nome da rede VPC que contém as regras de firewall da VPC que você quer migrar.
  • POLICY_NAME: o nome da política de firewall de rede global a ser criada durante a migração.
  • EXCLUSION_PATTERNS_FILE: o caminho do arquivo em que os padrões de nomenclatura de regras de firewall excluídas são exportados.

    gke-(.+)-ipv6-all
    gke-(.+)-(.+)-((master)|(vms)|(all)|(inkubelet)|(exkubelet)|(mcsd))
    k8s-fw-(l7-)?(.+)
    k8s-(.+)-((node)|(http)|(node-http))-hc
    (.+)-hc
    k8s2-(.+)-(.+)-(.+)-(.+)(-fw)?
    k8s2-(.+)-l4-shared-hc-fw
    gke((gw)|(mcg))1-l7-(.+)-(.+)
    

Para migrar regras de firewall excluídas que correspondem a um padrão específico, remova o padrão da lista exportada e execute o comando gcloud beta compute firewall-rules migrate com a flag --exclusion-patterns-file.

Forçar a migração preservando a ordem de avaliação

Durante a migração, se a ordem de avaliação de uma regra de firewall excluída estiver entre as ordens de avaliação de regras de firewall especificadas pelo usuário, a migração falhará.Isso acontece porque as regras de firewall excluídas não são migradas, e a ferramenta de migração não pode preservar a ordem de avaliação original de regras definidas pelo usuário na nova política de firewall de rede.

Por exemplo, se as regras do firewall tiverem as prioridades a seguir, a migração vai falhar.

  • Uma regra especificada pelo usuário com prioridade 100
  • Uma regra excluída com prioridade 200
  • Uma regra especificada pelo usuário com prioridade 300

Para forçar a ferramenta de migração a migrar as regras especificadas pelo usuário enquanto preserva a ordem de avaliação original e ignora as regras de firewall excluídas, use o comando gcloud beta compute firewall-rules migrate com a flag --force.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --force

Substitua:

  • NETWORK_NAME: o nome da rede VPC que contém as regras de firewall da VPC que você quer migrar.
  • POLICY_NAME: o nome da política de firewall de rede global a ser criada durante a migração.

Analisar a nova política de firewall de rede global

Antes de associar a política recém-criada a uma rede VPC, o Google recomenda que você revise a política para garantir que o processo de migração tenha sido concluído sem erros.

Confirme o seguinte:

  • A configuração das regras da política de firewall está correta, e os seguintes componentes de regras foram migrados adequadamente para cada regra:

    • Prioridade relativa
    • Direção do tráfego
    • Ação se houver correspondência
    • Configurações de registro
    • Parâmetros de destino
    • Parâmetros de origem (para regras de entrada)
    • Parâmetros de destino (para regras de saída)
    • Restrições de protocolo e porta
  • Verifique se as tags seguras estão anexadas à VM correta. Use o comando resource-manager tags bindings list.

    gcloud resource-manager tags bindings list \
        --location=ZONE_ID \
        --parent //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE_ID/instances/INSTANCE_NAME \
        --effective
    

    Substitua:

    • ZONE_ID: a zona da VM;
    • PROJECT_ID: ID do projeto.
    • INSTANCE_NAME: o nome da VM.

Tarefas pós-migração

Para ativar e usar a nova política de firewall de rede global, conclua as tarefas pós-migração. Para mais informações, consulte Tarefas de pós-migração.

A seguir