Configurar regras

Com o proxy seguro da Web, é possível definir vários tipos de regras nas políticas para proteger o tráfego de saída da Web. É possível usar essas regras para controlar com precisão a segurança do tráfego usando detalhes específicos da solicitação, como cabeçalhos e padrões de URL, e garantir que apenas o tráfego HTTP/S aprovado saia da sua rede.

Nesta página, descrevemos os vários tipos de regras e as etapas para criar e adicionar à sua política de segurança.

Configurar regras de correspondência de host

As regras de correspondência de host avaliam o nome do host de destino de uma solicitação da Web em relação às listas de URLs permitidas ou negadas. Ao verificar o domínio de destino, como www.example.com, essas regras garantem que seu tráfego chegue apenas a sites e serviços aprovados.

Nesta seção, explicamos como configurar regras de correspondência de host para os seguintes modos de implantação do Secure Web Proxy:

  • Modo de proxy explícito
  • Modo de próximo salto

Modo de proxy explícito

Ao implantar o Secure Web Proxy como um proxy explícito, configure regras de correspondência de host para verificar se as informações de host enviadas pelo cliente são extraídas corretamente e verificadas em relação às regras de segurança definidas. No modo de proxy explícito, os clientes são configurados ativamente para enviar o tráfego diretamente à instância do Secure Web Proxy.

A correspondência de host no modo de proxy explícito funciona para diferentes tipos de tráfego da Web da seguinte maneira:

Tipo de tráfego Mecanismo de correspondência Configuração da regra
HTTP não criptografado O proxy da Web seguro verifica o nome do host de destino no campo host do cabeçalho CONNECT padrão da solicitação HTTP. No campo sessionMatcher, use host() == "example.com".
HTTPS criptografado (sem inspeção Transport Layer Security (TLS)) A correspondência de host não é possível no nível do aplicativo nem da sessão. Isso acontece porque os detalhes da solicitação são criptografados e o atributo destination.ip não é compatível. Use controles de política mais amplos, como correspondência de identidade de origem, ou ative a inspeção de TLS para filtragem baseada em host. Para usar o Application Matcher, use a correspondência de identidade de origem, como contas de serviço, ou ative a inspeção de TLS.
HTTPS criptografado (com inspeção TLS) Para inspecionar a solicitação completa, use o Session Matcher e o Application Matcher. 1. Defina uma regra geral de Session Matcher que retorne true ou corresponda ao host de destino, como host() == "example.com".

2. No campo applicationMatcher, adicione uma regra de host específica, como request.host() == "example.com".

Modo de próximo salto

Ao implantar o Secure Web Proxy como próximo salto, é necessário configurar regras de correspondência de host. O tráfego é redirecionado para o proxy por uma rota de nuvem privada virtual (VPC) com base nos intervalos de endereços IP definidos. As regras de correspondência de host garantem que o proxy identifique corretamente o host de destino verificando vários campos do tráfego, como o cabeçalho de indicação de nome do servidor (SNI).

A correspondência de host no modo de próximo salto funciona para diferentes tipos de tráfego da Web da seguinte maneira:

Tipo de tráfego Mecanismo de correspondência Configuração da regra
HTTP não criptografado O proxy da Web seguro verifica o nome do host de destino em relação ao campo host no cabeçalho de solicitação HTTP padrão. No campo sessionMatcher, use host() == "example.com".
HTTPS criptografado (sem inspeção TLS) O Secure Web Proxy verifica o nome do host no cabeçalho SNI da solicitação de saída, que fica visível mesmo se o restante do tráfego estiver criptografado. No campo sessionMatcher, use host() == "example.com".
HTTPS criptografado (com inspeção TLS) Para inspecionar a solicitação completa, use o Session Matcher e o Application Matcher. 1. Defina uma regra geral de Session Matcher que retorne true ou corresponda ao host de destino, como host() == "example.com".

2. No campo applicationMatcher, adicione uma regra de host específica, como request.host() == "example.com".

Configurar regras de proxy TCP

É possível configurar regras de proxy do protocolo TCP (TCP) para proteger o tráfego não relacionado à Web e aplicar políticas de segurança a aplicativos que não usam HTTP/S padrão, como as portas 80 e 443.

Ao aplicar essas regras, é possível evitar o uso não autorizado de outras portas TCP para transferência de dados ou atividades maliciosas. Isso é útil principalmente quando suas cargas de trabalho usam o proxy seguro da Web como próximo salto para protocolos não relacionados à Web.

Para implementar regras de proxy TCP e criar uma regra de permissão ou bloqueio de tráfego para seu aplicativo, especifique a porta de destino. Se quiser, inclua qualquer um dos seguintes atributos do Session Matcher para refinar os critérios da regra de permissão ou bloqueio.

A tabela a seguir fornece mais informações sobre os vários atributos que podem ser usados em uma regra de proxy TCP:

Atributo Tipo de atributo Descrição
source.ip string Endereço IP do cliente que enviou a solicitação.
source.port string Porta do cliente que enviou a solicitação.
destination.port string Porta upstream para onde a instância do Secure Web Proxy envia o tráfego.
source.matchTag(SECURE_TAG) booleano

True, se a fonte estiver associada a SECURE_TAG.

O argumento é o ID permanente da tag segura, como source.matchTag('tagValues/123456').

source.matchServiceAccount(SERVICE_ACCOUNT) booleano True, se a origem estiver associada a SERVICE_ACCOUNT, como source.matchServiceAccount('x@my-project.iam.gserviceaccount.com').
inIpRange(IP_ADDRESS,
IP_RANGE)
booleano True, se IP_ADDRESS estiver contido em IP_RANGE, como inIpRange(source.ip, '1.2.3.0/24'). As máscaras de sub-rede para endereços IPv6 não podem ser maiores que `/64`.

Exemplo de regra de proxy TCP

Este exemplo mostra como definir um proxy da Web seguro gatewaySecurityPolicyRule usando uma expressão CEL para permitir todo o tráfego TCP para a porta 22. É possível usar essa configuração ao aplicar os recursos de proxy TCP do Secure Web Proxy.

O exemplo de código a seguir mostra como definir uma regra de proxy TCP:

name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
enabled: true
priority: 100 # Lower numbers have higher priority
description: "Allow TCP proxy traffic to port 22 - such as, for SSH"
basicProfile: ALLOW
sessionMatcher: "destination.port == 22"

Substitua:

  • PROJECT_ID: ID do projeto
  • REGION: região da política
  • POLICY_NAME: nome da política
  • RULE_NAME: nome da regra de proxy TCP. Neste exemplo, podemos considerar o valor como allow-ssh-tcp-proxy.

Considerações importantes

  • As regras de proxy TCP configuradas precisam ter uma prioridade maior (número menor) do que as regras HTTP/S para garantir que sejam avaliadas e executadas primeiro. Para mais informações, consulte Ordem de avaliação de regras.

  • Ao configurar regras de proxy TCP, o atributo host Session Matcher não é compatível porque as informações do host não estão disponíveis na camada TCP.

  • As regras de proxy TCP filtram o tráfego da Web apenas com base na porta de destino. Para aumentar a segurança da sua rede, recomendamos que você adicione outras condições usando operadores lógicos E (&&) e OU (||) e atributos compatíveis, como source.ip. Confira um exemplo de como definir uma regra de proxy TCP mais específica:

      // Allow port 22 from only a specific source IP range
      sessionMatcher: "destination.port == 22 && inIpRange(source.ip, '10.0.0.0/24')"
    
  • O Secure Web Proxy não permite configurar regras de proxy para aplicativos do protocolo de datagramas do usuário (UDP). Como resultado, o proxy seguro da Web bloqueia o tráfego de aplicativos baseados em UDP.

Criar uma regra do Secure Web Proxy

Nesta seção, explicamos como criar uma regra do Secure Web Proxy.

Antes de criar uma regra, faça o seguinte:

  1. Conclua todas as etapas de configuração inicial.

  2. Criar uma política

Depois de criar uma regra e associá-la a uma política, você poderá usá-la ao implantar o proxy seguro da Web.

Console

  1. No console do Google Cloud , acesse a página Políticas de SWP.

    Acessar as políticas do SWP

  2. Clique no nome da política, como policy1.

  3. Clique em Adicionar regra.

  4. Para cada regra, faça o seguinte:

    1. Em Prioridade, digite uma ordem de avaliação numérica para a regra. As regras são avaliadas da prioridade mais alta para a mais baixa, em que 0 é a mais alta.

    2. No campo Nome, insira um nome para a regra.

    3. No campo Descrição, insira uma descrição para a regra.

    4. Em Ação, selecione uma das seguintes opções:

      • Permitir: para permitir solicitações de conexão que correspondem à regra.
      • Negar: para negar solicitações de conexão que correspondem à regra.
    5. No campo Status, selecione uma das seguintes opções para a aplicação da regra:

      • Ativada: para aplicar a regra na sua instância do Secure Web Proxy.
      • Desativado: para não aplicar a regra na sua instância do Secure Web Proxy.
    6. Na seção Correspondência de sessão, especifique os critérios para corresponder à sessão, como host() == "www.wikipedia.org".

      Para mais informações sobre a sintaxe de SessionMatcher, consulte a referência da linguagem de correspondência da CEL.

    7. Na seção Correspondência de aplicativo, especifique os critérios para corresponder à solicitação.

      Para mais informações sobre como corresponder o tráfego TCP, consulte Configurar regras de proxy TCP.

    8. Clique em Adicionar regra.

Cloud Shell

  1. Crie o arquivo rule.yaml conforme mostrado aqui. Para mais informações sobre a sintaxe de sessionMatcher, consulte a referência da linguagem de correspondência da CEL.

    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
    description: Allow wikipedia.org
    enabled: true
    priority: 1
    basicProfile: ALLOW
    sessionMatcher: host() == 'www.wikipedia.org'
    

    Substitua:

    • PROJECT_ID: ID do projeto
    • REGION: região da política
    • RULE_NAME: nome da regra. Neste exemplo, podemos considerar o valor como allow-wikipedia-org.
  2. Opcional: se quiser criar uma regra com a inspeção de TLS ativada, crie o arquivo rule.yaml conforme mostrado aqui. Para mais informações, consulte Visão geral da inspeção de TLS e Ativar a inspeção de TLS.

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
      description: Allow wikipedia.org
      enabled: true
      priority: 1
      basicProfile: ALLOW
      sessionMatcher: host() == 'www.wikipedia.org'
      applicationMatcher: request.path.contains('index.html')
      tlsInspectionEnabled: true
    

    Para mais informações sobre como corresponder o tráfego TCP, consulte Configurar regras de proxy TCP.

  3. Crie a regra da política de segurança.

    gcloud network-security gateway-security-policies rules import allow-wikipedia-org \
        --source=rule.yaml \
        --location=REGION \
        --gateway-security-policy=policy1
    

A seguir