Migre regras de firewall da VPC que usam etiquetas de rede e contas de serviço

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

  1. Avalie o seu ambiente.
  2. Liste as etiquetas de rede e as contas de serviço existentes.
  3. Crie etiquetas para cada etiqueta de rede e conta de serviço de origem.
  4. Mapeie as etiquetas de rede e as contas de serviço com as etiquetas que criar.
  5. Associe etiquetas a instâncias de máquinas virtuais (VM).
  6. Migre as regras de firewall da VPC para uma política de firewall de rede global.
  7. Reveja a nova política de firewall de rede.
  8. Conclua as tarefas 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  11. Install the Google Cloud CLI.

  12. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Certifique-se de que tem a função de administrador de segurança do Compute (roles/compute.securityAdmin).
  15. Avalie o seu ambiente

    Antes de migrar as regras de firewall de VPC para uma política de firewall de rede global, avalie o seu ambiente existente e as funções e as autorizações da gestão de identidade e de acesso (IAM):

    1. Identifique o número de regras de firewall de VPC na sua rede de VPC.
    2. Tome nota das prioridades associadas a cada regra de firewall da VPC.
    3. Certifique-se de que tem as funções e as autorizações de IAM necessárias para criar, associar, modificar e ver políticas de firewall de rede global.
    4. Certifique-se de que tem as funções e as autorizações de IAM necessárias para criar, atualizar e eliminar definições de etiquetas seguras.

      A tabela seguinte apresenta um resumo das várias funções necessárias para criar e gerir etiquetas:

      Nome da função Tarefas realizadas
      Função de administrador da etiqueta (roles/resourcemanager.tagAdmin) Criar, atualizar e eliminar definições de etiquetas. Para mais informações, consulte o artigo Administre etiquetas.
      Função de visualizador de etiquetas (roles/resourcemanager.tagViewer) Veja definições de etiquetas e etiquetas anexadas a recursos.
      Etiquetar função de utilizador (roles/resourcemanager.tagUser) Adicionar e remover etiquetas associadas a recursos.

    Liste as etiquetas de rede e as contas de serviço existentes

    Determine se as regras da firewall da VPC usam etiquetas de rede ou contas de serviço e crie um ficheiro JSON para guardar os detalhes das etiquetas de rede e das contas de serviço existentes.

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

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

    Substitua o seguinte:

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

    Se as regras da firewall da VPC contiverem apenas contas de serviço, o ficheiro JSON gerado contém apenas contas de serviço. Da mesma forma, se as regras da firewall da VPC contiverem apenas etiquetas de rede, o ficheiro JSON gerado contém apenas etiquetas de rede. As contas de serviço têm o prefixo sa e as etiquetas de rede não têm prefixo.

    Por exemplo, o seguinte ficheiro JSON gerado contém uma etiqueta de rede sql-server e uma conta de serviço example@example.com.

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

    Crie etiquetas

    Com base nas etiquetas de rede e nas contas de serviço de origem indicadas no ficheiro de mapeamento, tem de criar as etiquetas seguras correspondentes na sua rede.

    As novas etiquetas seguras servem como substituição das etiquetas de rede e das contas de serviço e preservam a configuração de rede original após a migração.

    Enquanto principal com a função de administrador de etiquetas, para cada etiqueta de rede e conta de serviço, crie o par chave-valor da etiqueta segura correspondente.

    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 o seguinte:

    • TAG_KEY: o nome da chave da etiqueta.
    • ORGANIZATION_ID: o ID da sua organização.
    • PROJECT_ID: o ID do seu projeto.
    • NETWORK_NAME: o nome da sua rede VPC.
    • TAG_VALUE: o valor a atribuir à chave da etiqueta.

    Por exemplo, se tiver uma regra de firewall da VPC com uma etiqueta de rede denominada sql-server, crie um par de chave-valor de etiqueta 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
    

    Mapeie etiquetas de rede e contas de serviço para etiquetas

    Depois de criar etiquetas seguras regidas pela IAM para cada etiqueta de rede e conta de serviço usadas pelas regras da firewall da VPC, tem de mapear as etiquetas para as etiquetas de rede e as contas de serviço correspondentes no ficheiro JSON de mapeamento.

    Edite o ficheiro JSON para mapear as etiquetas de rede e as contas de serviço com as etiquetas seguras correspondentes.

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

    Por exemplo, o ficheiro JSON seguinte mapeia a etiqueta de rede sql-server para o valor da etiqueta da chave sql-server e a conta de serviço example@example.com para o valor da etiqueta da chave example@example.com:

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

    Associe etiquetas a VMs

    Com base no ficheiro JSON de mapeamento de etiquetas, associe as etiquetas seguras recém-criadas às VMs às quais as etiquetas de rede existentes estão anexadas:

    1. Enquanto principal com a função de administrador da etiqueta, faça o seguinte:

      1. Reveja as autorizações necessárias para anexar etiquetas seguras a recursos Google Cloud .
      2. Atribua a função de utilizador de etiquetas ao principal que usa as etiquetas seguras e associa as etiquetas a VMs.
    2. Enquanto principal com a função de utilizador da etiqueta, use o comando compute firewall-rules migrate com a flag --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 o seguinte:

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

    Migre 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 o seguinte:

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

    Exclua 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 o seguinte:

    • NETWORK_NAME: o nome da sua rede VPC que contém as regras de firewall de VPC que quer migrar.
    • POLICY_NAME: o nome da política de firewall de rede global a criar durante a migração.
    • EXCLUSION_PATTERNS_FILE: o nome do ficheiro que contém expressões regulares que definem padrões de nomenclatura da firewall de VPC a excluir da migração. Certifique-se de que especifica o caminho completo do ficheiro. As regras de firewall que correspondem aos padrões especificados são ignoradas.

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

      • Cada expressão regular tem de estar na sua própria linha e representar um único padrão de nomenclatura de firewall.
      • As expressões regulares não contêm espaços em branco à esquerda nem à direita.

    Veja as regras de firewall excluídas

    Com base nos padrões de nomenclatura das regras de firewall excluídas, a ferramenta de migração não migra algumas regras de firewall, como as regras de firewall do Google Kubernetes Engine (GKE). Para exportar a lista de padrões de nomenclatura de regras de firewall excluídos, use o comando gcloud beta compute firewall-rules migrate com os 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 o seguinte:

    • NETWORK_NAME: o nome da sua rede VPC que contém as regras de firewall de VPC que quer migrar.
    • POLICY_NAME: o nome da política de firewall de rede global a criar durante a migração.
    • EXCLUSION_PATTERNS_FILE: o caminho do ficheiro onde os seguintes 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 correspondam 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, mantendo 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 das regras de firewall especificadas pelo utilizador, a migração falha.Isto acontece porque as regras de firewall excluídas não são migradas, e a ferramenta de migração não consegue preservar a ordem de avaliação original das regras definidas pelo utilizador na nova política de firewall de rede.

    Por exemplo, se as regras de firewall tiverem as seguintes prioridades, a migração falha.

    • Uma regra especificada pelo utilizador com a prioridade 100
    • Uma regra excluída com a prioridade 200
    • Uma regra especificada pelo utilizador com prioridade 300

    Para forçar a ferramenta de migração a migrar as regras especificadas pelo utilizador, mantendo a respetiva ordem de avaliação original e ignorando 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 o seguinte:

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

    Reveja a nova política de firewall de rede global

    Antes de associar a política recém-criada a uma rede VPC, a Google recomenda que reveja a política para garantir que o processo de migração foi concluído corretamente.

    Verifique o seguinte:

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

      • Prioridade relativa
      • Direção do trânsito
      • Ação em caso de correspondência
      • Definições de registo
      • Parâmetros de destino
      • Parâmetros de origem (para regras de entrada)
      • Parâmetros de destino (para regras de saída)
      • Restrições de protocolos e portas
    • Verifique se as etiquetas seguras estão anexadas à MV 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 o seguinte:

      • ZONE_ID: a zona da sua VM.
      • PROJECT_ID: o ID do seu projeto.
      • INSTANCE_NAME: o nome da sua 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 o artigo Tarefas pós-migração.

    O que se segue?