Exemplos de políticas de firewall hierárquicas

Nesta página, mostramos exemplos de implementações de políticas hierárquicas de firewall. Presumimos que você esteja familiarizado com os conceitos descritos em Políticas de firewall hierárquicas.

Exemplo 1: permitir que a sondagem acesse todas as VMs

Nesse caso de uso, todas as instâncias de máquina virtual (VM) em uma organização precisam ser verificadas e catalogadas usando sondagens de um determinado endereço IP (10.100.0.1) em uma porta de destino específica (123). O administrador de segurança da organização garante que nenhum administrador de rede ou outro administrador de segurança bloqueie essa porta em qualquer instância de VM na organização.

Este exemplo pressupõe que não há políticas implantadas de firewall no nível da pasta.

A configuração deste caso de uso é descrita no diagrama a seguir.

Permitir que a sondagem acesse todas as VMs
Permitir que a sondagem acesse todas as VMs

Política efetiva aplicada em VMs

Neste exemplo, a política de firewall da VM vigente após a avaliação das regras em toda a hierarquia é a seguinte.

Conexões de entrada

  • Conexões de entrada com o IP de origem 10.100.0.1 e a porta de destino 123 são permitidas, conforme definido na política. Após uma correspondência na política da organização, as conexões de sondagem são permitidas e nenhuma outra regra é avaliada na hierarquia.

  • Para conexões de entrada diferentes do IP de origem 10.100.0.1 e da porta de destino 123, não há correspondência. Portanto, a regra de entrada padrão nas regras de firewall da VPC é aplicada, negando a conexão.

Conexão de saída

  • Não há correspondência entre as regras definidas pela hierarquia. Portanto, a regra de saída padrão nas regras de firewall da VPC se aplica, permitindo conexões de saída.

Como configurar

  1. Crie uma política de firewall para conter a regra:

    gcloud compute firewall-policies create \
         --organization=123456789012 \
         --short-name="example-firewall-policy" \
         --description="rules that apply to all VMs in the organization"
    
  2. Adicione a regra à política de firewall:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-scan-probe" \
        --layer4-configs=tcp:123 \
        --firewall-policy=example-firewall-policy \
        --organization=123456789012 \
        --src-ip-ranges=10.100.0.1/32
  3. Associe a política de firewall ao nó da organização:

    gcloud compute firewall-policies associations create \
        --firewall-policy=example-firewall-policy \
        --organization=123456789012

Exemplo 2: negar todas as conexões externas, exceto determinadas portas

Nesse caso de uso, uma política de firewall bloqueia todas as conexões de fontes de Internet externas, exceto para conexões nas portas 80, 443 e 22. Uma conexão de Internet de entrada em qualquer porta que não seja 80, 443 e 22 será bloqueada, independentemente das regras de firewall no nível da rede VPC. Para qualquer conexão na porta 80, 443 ou 22, a política delega ao administrador de segurança da VPC o comportamento que ele quer aplicar na respectiva rede VPC para essas portas.

A configuração deste caso de uso é descrita no diagrama a seguir.

Negar todas as conexões externas, exceto determinadas portas de destino
Negar todas as conexões externas, exceto determinadas portas de destino

Política efetiva aplicada em VMs

Neste exemplo, a política de firewall da VM vigente após a avaliação das regras em toda a hierarquia é a seguinte.

Conexões de entrada

  • Qualquer conexão de entrada de 10.0.0.0/8 corresponde à regra de nível mais alto da organização delegate-internal-traffic e ignora o restante das regras da política da organização para ser avaliada em relação às regras de firewall configuradas no nível da rede VPC. Na regra de firewall da VPC, as conexões de 10.2.0.0/16 são permitidas e o restante das conexões é avaliado em relação à regra de entrada implícita, que é deny.

  • Conexões de entrada com um intervalo de IP de origem que não é 10.0.0.0/8 para portas de destino 22, 80 e 443 são delegadas para o próximo nível, em que as portas 80 e 443 são permitidas, mas 22 não é.

  • Todas as outras conexões são bloqueadas.

Conexões de saída

  • Não há correspondência entre as regras definidas pela hierarquia. Portanto, a regra de saída padrão nas regras de firewall da VPC se aplica, permitindo conexões de saída.

Como configurar

  1. Crie uma política de firewall para conter a regra:

    gcloud compute firewall-policies create \
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --description="rules that apply to all VMs in the organization"
    
  2. Adicione uma regra para delegar conexões internas ao proprietário do projeto:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-internal-traffic" \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy" \
        --src-ip-ranges=10.0.0.0/8
    
  3. Adicione uma regra para delegar regras de conexões externas das portas 80/443/22 ao proprietário do projeto:

    gcloud compute firewall-policies rules create 2000 \
        --action=goto_next \
        --description="delegate-external-traffic-spec-ports" \
        --layer4-configs=tcp:80,tcp:443,tcp:22 \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy"
  4. Adicione uma regra para negar todas as outras conexões externas:

    gcloud compute firewall-policies rules create 3000 \
        --action=deny \
        --description="block-other-external-traffic-spec-ports" \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy" \
        --src-ip-ranges=0.0.0.0/0
    
  5. Associe a política de firewall ao nó da organização:

    gcloud compute firewall-policies associations create \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy"
  6. No projeto, adicione uma regra de firewall para permitir conexões internas da sub-rede designada:

    gcloud compute firewall-rules create allow-internal-traffic \
        --action=allow \
        --priority=1000 \
        --source-ranges=10.2.0.0/16
    
  7. No projeto, adicione uma regra de firewall para permitir conexões TCP 80/443 externas:

    gcloud compute firewall-rules create allow-external-traffic \
        --action=allow \
        --priority=2000 \
        --rules=tcp:80,tcp:443
    

Exemplo 3: negar conexões de saída, exceto de uma rede VPC específica

Nesse caso de uso, o administrador de segurança da organização não permite conexões de saída em nenhuma rede VPC, exceto para conexões originadas na rede VPC myvpc. O administrador delega a decisão de abrir a saída para o servidor público 203.0.113.1 para o administrador de segurança myvpc.

Este exemplo pressupõe que não há políticas implantadas de firewall no nível da pasta. A configuração deste caso de uso é descrita no diagrama a seguir.

Negar conexões de saída, exceto de uma rede específica
Negar conexões de saída, exceto de uma rede específica

Política efetiva aplicada em VMs

Neste exemplo, a política de firewall da VM vigente após a avaliação das regras em toda a hierarquia é a seguinte.

Conexões de entrada

  • Não há correspondência entre as regras definidas pela hierarquia. Portanto, a regra de entrada padrão nas regras de firewall da VPC se aplica, negando conexões de entrada.

Conexões de saída

  • Todas as conexões de saída destinadas a 203.0.113.1 são permitidas. O restante das conexões é negado. Todas as conexões de saída destinadas a 203.0.113.1 correspondem à regra delegate-egress-my-vpc e ignoram o restante das regras da política da organização.

  • As conexões de saída são avaliadas em relação às regras de firewall configuradas em myvpc. A regra padrão permite as conexões de saída. A regra block-egress-traffic-sepc-ports da política no nível da organização nega o restante das conexões.

Como configurar

  1. Crie uma política de firewall para conter a regra:

    gcloud compute firewall-policies create \
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --description="rules that apply to all VMs in the organization"
    
  2. Adicione uma regra para delegar determinadas conexões de saída:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-egress-myvpc" \
        --dest-ip-ranges=203.0.113.1/32
        --direction=egress
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --target-resources=projects/PROJECT_ID/networks/myvpc
    
  3. Adicione uma regra para negar todas as outras conexões de saída

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description="block-egress-external-traffic-spec-ports" \
        --direction=egress \
        --dest-ip-ranges=0.0.0.0/0 \
        --organization=123456789012 \
        --short-name="example-firewall-policy"
  4. Associe a política de firewall ao nó da organização:

    gcloud compute firewall-policies associations create \
        --organization=123456789012 \
        --short-name="example-firewall-policy"

Exemplo 4: configurar regras para toda a organização e para pastas

Nesse caso de uso, um administrador de segurança não permite conexões de entrada para nenhuma VM na organização, exceto aquelas do intervalo 203.0.113.0/24 permitido. O administrador delega outras decisões sobre o que fazer com as conexões de 203.0.113.0/24 para administradores de segurança nos níveis da pasta.

Há duas pastas diferentes:

  • Pasta1, em que a política permite conexões apenas das portas 80 e 443 nas VMs de back-end, e o restante das portas é bloqueado.
  • Pasta2, em que a política impõe que nenhuma VM na Pasta2 pode bloquear qualquer porta de destino para o tráfego do endereço IP 203.0.113.1. O administrador de segurança de Pasta2 delega outras decisões ao administrador da rede VPC, que decide abrir as portas 80, 443 e 22 e negar o restante das portas.

A configuração deste caso de uso é descrita no diagrama a seguir.

Regras para toda a organização e para pastas
Regras para toda a organização e para pastas

Política efetiva aplicada em VMs

Neste exemplo, a política de firewall da VM vigente após a avaliação das regras em toda a hierarquia é a seguinte.

Para VMs que pertencem a my-vpc

  • Todas as conexões de entrada de 203.0.113.0/24 com as portas de destino TCP 80 e 443 são permitidas. Todas as outras conexões de entrada são negadas.

  • Todas as conexões de saída são aceitas de acordo com a regra de firewall da VPC aplicada porque não há correspondência nas regras de política de firewall de nível superior.

Para VMs que pertencem a vpc2

  • Todas as conexões de entrada de 203.0.113.1 são permitidas. Conexões de entrada de outras fontes 203.0.113.0/24 diferentes de 203.0.113.1 são permitidas apenas para as portas 80, 443 e 22. Todas as outras conexões de entrada são negadas.

  • Todas as conexões de saída são aceitas de acordo com a regra de firewall da VPC aplicada porque não há correspondência nas regras de política de firewall de nível superior.

Como configurar

  1. Crie uma política de firewall para conter as regras para Org_A:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --description="rules that apply to all VMs in the organization"
    
  2. Adicione uma regra para delegar a entrada de 203.0.113.0/24 ao proprietário do projeto:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-ingress" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --src-ip-ranges=203.0.113.0/24
    
  3. Adicione uma regra para negar todas as outras conexões externas:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny
        --description="block-ingress-external-traffic"
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --src-ip-ranges=0.0.0.0/0
    
  4. Associe a política de firewall ao nó da organização:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a"
  5. Crie uma política de firewall para conter as regras da Pasta1:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --description="rules that apply to all VMs under Folder1"
    
  6. Adicione uma regra para permitir toda a entrada HTTP(S):

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-http-s-ingress" \
        --layer4-configs=tcp:80,tcp:443 \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1"
  7. Adicione uma regra para negar a entrada em todas as outras portas/protocolos:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description="block-ingress-external-traffic" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --src-ip-ranges=0.0.0.0/0
  8. Associe a política de firewall à Pasta1:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --folder=200000000000
  9. Crie uma política de firewall para conter as regras da Pasta2:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --description="rules that apply to all VMs under Folder2"
  10. Adicione uma regra para permitir a entrada de 203.0.113.1:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-vul-scan-ingress" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --src-ip-ranges=203.0.113.1/32
  11. Associe a política de firewall à Pasta2:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --folder=300000000000
  12. Adicione uma regra de firewall para permitir a entrada de conexão HTTP(S):

    gcloud compute firewall-rules create allow-internal-traffic \
        --action=allow \
        --rules=tcp:80,tcp:443,tcp:22
    

A seguir