Configure atualizações em lote para regras de políticas de firewall

Esta página explica como configurar a atualização em lote para todas as regras da política de firewall (políticas de firewall hierárquicas e de rede). Para fazer a atualização em lote, pode usar a CLI do Google Cloud ou a API Compute Engine.

Para mais informações sobre atualizações em lote, consulte a Vista geral.

Se estiver a usar a CLI gcloud para atualizar em lote as regras da política de firewall, use os seguintes comandos da CLI gcloud:

  • export-rules: permite exportar a configuração das regras da política de firewall para um ficheiro YAML. No ficheiro YAML, pode adicionar, modificar e remover a configuração das regras da política de firewall de acordo com os seus requisitos.

  • import-rules: permite-lhe importar o ficheiro de configuração das regras da política de firewall modificadas. Isto substitui as regras existentes da política de firewall especificada.

Se estiver a usar APIs REST para atualizar em lote as regras da política de firewall, use o método patch. O método patch permite substituir todas as regras na política de firewall fornecendo o campo rules no pedido. Não precisa de criar um ficheiro YAML. Quando usar o método patch, mantenha as regras goto_next predefinidas com a prioridade mais baixa.

Antes de começar

Se ainda não o fez, configure a autenticação. A autenticação é o processo através do qual a sua identidade é validada para aceder a serviços e APIs. Google Cloud Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine, conforme descrito nesta secção.

Consola

Quando usa a Google Cloud consola para aceder aos Google Cloud serviços e às APIs, não precisa de configurar a autenticação.

gcloud

  1. Depois de instalar a CLI gcloud, inicialize-a executando o seguinte comando:

    
    gcloud init
    
    

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

  2. Defina a região e a zona predefinidas no seu cliente local.

REST

Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

Depois de instalar a CLI gcloud, inicialize-a executando o seguinte comando:


gcloud init

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

Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Crie um ficheiro YAML

Pode usar o comando export-rules para exportar regras de políticas de firewall existentes para um ficheiro YAML. Para mais informações, consulte o artigo Exporte a regra da política de firewall. O ficheiro YAML exportado inclui as regras goto_next predefinidas com a prioridade mais baixa (regras com uma prioridade superior ou igual a 2147483644). Certifique-se de que não modifica estas regras goto_next predefinidas.

No entanto, se não quiser usar o comando export-rules, também pode criar um novo ficheiro YAML manualmente para editar as regras. Para criar um novo ficheiro YAML manualmente, faça o seguinte:

  1. Crie um ficheiro YAML RULES_YAML_FILE. Substitua RULES_YAML_FILE por um nome de ficheiro à sua escolha.

  2. Adicione o campo rules ao ficheiro YAML. O campo rules contém uma lista das regras da política de firewall. Para ver um esquema que descreve o formato de exportação ou importação, consulte CLOUDSDKROOT/lib/googlecloudsdk/schemas/compute/beta/FirewallPolicy.yaml. Onde CLOUDSDKROOT é o diretório de instalação da CLI do Google Cloud.

    Segue-se um exemplo de um esquema YAML.

        rules:
        -action: deny
         description:
         priority: 1
         disabled: false
         enable-logging: false
         kind: compute#firewallPolicyRule
         ...
        -action: goto_next
         priority: 2
         disabled: false
         enable-logging: false
         ...
      

    Para modificar as regras de política de firewall, consulte o artigo Modifique as regras de política de firewall.

Exporte a regra de política de firewall

Pode iniciar atualizações através da CLI gcloud ou da API Compute Engine.

Exporte a política de firewall hierárquica

Exporte as regras da política de firewall da política de firewall hierárquica.

gcloud

Para exportar regras da política de firewall hierárquica, use o comando gcloud compute firewall-policies export-rules:

gcloud compute firewall-policies export-rules FIREWALL_POLICY \
    --destination=DESTINATION \
    --organization=ORGANIZATION

Substitua o seguinte:

  • FIREWALL_POLICY: o nome abreviado ou o ID da sua política de firewall hierárquica a partir da qual exportar regras
  • DESTINATION: caminho para um ficheiro YAML onde a configuração vai ser exportada
  • ORGANIZATION: organização na qual a política de firewall da organização vai ser atualizada. Tem de ser definido se FIREWALL_POLICY for um diminutivo

API

Para exportar as regras existentes da política de firewall hierárquica, use o método firewallPolicies.get na API Compute Engine:

  GET https://compute.googleapis.com/compute/v1/locations/global/firewallPolicy/FIREWALL_POLICY_NAME
  

Substitua o seguinte:

Exporte a política de firewall de rede

Exporte regras de firewall da política de firewall de rede.

gcloud

Para exportar a configuração das regras da política de firewall de rede para um ficheiro, use o comando gcloud compute network-firewall-policies export-rules:

gcloud compute network-firewall-policies export-rules FIREWALL_POLICY \
    --destination=RULES_YAML_FILE_PATH \
    --global | --region=REGION

Substitua o seguinte:

  • FIREWALL_POLICY: nome da política de firewall de rede a partir da qual exportar regras
  • RULES_YAML_FILE_PATH: caminho para um ficheiro YAML onde a configuração é exportada
  • REGION: especifique --global se for uma política global ou REGION se for uma política regional.

API

Para exportar as regras existentes da política de firewall de rede global, use o método networkFirewallPolicies.get na API Compute Engine:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT/global/firewallPolicies/FIREWALL_POLICY_NAME
   

Substitua o seguinte:

  • PROJECT: o ID do seu projeto
  • FIREWALL_POLICY_NAME: o nome da política de firewall que quer exportar

Para exportar as regras existentes da política de firewall de rede regional, use o regionNetworkFirewallPolicies.get método na API Compute Engine:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME

Substitua o seguinte:

  • PROJECT: o ID do seu projeto
  • REGION: a região das regras da política de firewall
  • FIREWALL_POLICY_NAME: o nome da política de firewall que quer exportar

Este pedido devolve uma definição de recurso de política de firewall.

Modifique as regras da política de firewall

Modifique as regras da política de firewall que exportou na secção anterior.

  1. Abra o ficheiro exportado. Por exemplo, RULES_YAML_FILE.

  2. Adicione o campo rules, conforme mostrado no exemplo seguinte.

        rules:
         -action: allow
          description: test-rule1
          direction: INGRESS
          disabled: false
          enableLogging: false
          kind: compute#firewallPolicyRule
      

  3. Adicione os campos de configuração adicionais, como action, direction e priority. Segue-se um exemplo de um ficheiro YAML básico.

        rules:
         -action: allow
          description: test-rule1
          direction: INGRESS
          disabled: false
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            layer4Configs:
            -ipProtocol: all
            srcIpRanges:
            -192.0.2.0/24
          priority: 1
          ruleTupleCount: 2
         -action: goto_next
          description: default egress rule
          direction: EGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            destIpRanges:
            -::/0
            layer4Configs:
            -ipProtocol: all
          priority: 2147483644
          ruleTupleCount: 2
         -action: goto_next
          description: default ingress rule
          direction: INGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            layer4Configs:
            -ipProtocol: all
            srcIpRanges:
            -::/0
          priority: 2147483645
          ruleTupleCount: 2
         -action: goto_next
          description: default egress rule
          direction: EGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            destIpRanges:
            -198.51.100.0/24
            layer4Configs:
            -ipProtocol: all
          priority: 2147483646
          ruleTupleCount: 2
         -action: goto_next
          description: default ingress rule
          direction: INGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            layer4Configs:
            -ipProtocol: all
            srcIpRanges:
            -192.0.2.0/24
          priority: 2147483647
          ruleTupleCount: 2
      

Importe regras de políticas de firewall

Importe as regras para a política de firewall depois de alterar o ficheiro com as atualizações em lote necessárias. A importação do ficheiro modificado substitui as regras de política de firewall existentes pelas regras fornecidas.

Importe regras de políticas de firewall hierárquicas

Importe regras de firewall para a política de firewall hierárquica.

gcloud

Para importar regras para a política de firewall hierárquica, use o comando gcloud compute firewall-policies import-rules:

gcloud compute firewall-policies import-rules FIREWALL_POLICY \
    --source=RULES_YAML_FILE_PATH \
    --organization=ORGANIZATION

Substitua o seguinte:

  • FIREWALL_POLICY: o nome abreviado ou o ID da sua política de firewall hierárquica a atualizar
  • RULES_YAML_FILE_PATH: caminho para o ficheiro YAML a partir do qual importar regras
  • ORGANIZATION: organização na qual a política de firewall da organização vai ser atualizada. Tem de ser definido se FIREWALL_POLICY for um diminutivo.

API

Para importar as regras da política de firewall, use o método firewallPolicies.patch na API Compute Engine:

  PATCH https://compute.googleapis.com/compute/v1/locations/global/firewallPolicy/FIREWALL_POLICY_NAME
  

Substitua o seguinte:

Importe uma política de firewall de rede

Importe o ficheiro YAML das regras de firewall modificadas para a política de firewall de rede.

gcloud

Para importar regras para a política de firewall de rede, use o comando gcloud compute network-firewall-policies import-rules:

gcloud compute network-firewall-policies import-rules FIREWALL_POLICY \
    --source=RULES_YAML_FILE_PATH \
    --global | --region=REGION

Substitua o seguinte:

  • FIREWALL_POLICY: nome da política de firewall de rede que quer atualizar
  • RULES_YAML_FILE_PATH: o caminho escolhido para importar as regras
  • REGION: especifique --global se for uma política global ou REGION se for uma política regional.

API

Para importar as regras da política de firewall de rede modificadas, use o método networkFirewallPolicies.patch na API Compute Engine:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/global/firewallPolicy/FIREWALL_POLICY_NAME
  

Substitua o seguinte:

  • PROJECT: o ID do projeto das regras da política de firewall de rede
  • FIREWALL_POLICY_NAME: o nome da política de firewall de rede que quer exportar

Para importar as regras da política de firewall de rede regional modificadas, use o método regionNetworkFirewallPolicies.patch na API Compute Engine:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME
   

Substitua o seguinte:

  • PROJECT: o ID do projeto das regras da política de firewall de rede regional
  • REGION: a região das regras da política de firewall
  • FIREWALL_POLICY_NAME: o nome da política de firewall que quer exportar

    Este pedido devolve uma definição de recurso de política de firewall de rede.

O que se segue?