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 |
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 |
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 |
O argumento é o ID permanente da tag segura, como
|
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, |
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 projetoREGION: região da políticaPOLICY_NAME: nome da políticaRULE_NAME: nome da regra de proxy TCP. Neste exemplo, podemos considerar o valor comoallow-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
hostSession 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:
Conclua todas as etapas de configuração inicial.
Depois de criar uma regra e associá-la a uma política, você poderá usá-la ao implantar o proxy seguro da Web.
Console
No console do Google Cloud , acesse a página Políticas de SWP.
Clique no nome da política, como
policy1.Clique em Adicionar regra.
Para cada regra, faça o seguinte:
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.No campo Nome, insira um nome para a regra.
No campo Descrição, insira uma descrição para a regra.
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.
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.
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.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.
Clique em Adicionar regra.
Cloud Shell
Crie o arquivo
rule.yamlconforme mostrado aqui. Para mais informações sobre a sintaxe desessionMatcher, 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 projetoREGION: região da políticaRULE_NAME: nome da regra. Neste exemplo, podemos considerar o valor comoallow-wikipedia-org.
Opcional: se quiser criar uma regra com a inspeção de TLS ativada, crie o arquivo
rule.yamlconforme 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: truePara mais informações sobre como corresponder o tráfego TCP, consulte Configurar regras de proxy TCP.
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
- Criar uma instância do Secure Web Proxy
- Implantar o Secure Web Proxy como um serviço do Private Service Connect
- Implantar o Secure Web Proxy como próximo salto