Esta página explica como usar listas de URLs para criar e gerenciar políticas de acesso granular para o tráfego da Web de saída na instância do Secure Web Proxy. Em vez de criar regras individuais para cada site, as listas de URLs permitem definir uma coleção reutilizável e centralizada de domínios, nomes de host e padrões de URL específicos.
Confira alguns dos principais benefícios de usar listas de URLs:
Simplificar o gerenciamento de políticas: é possível aplicar um grande conjunto de
allowoudenyregras com uma única referência na política de segurança.Aplicar controle preciso: é possível usar uma sintaxe específica para corresponder a domínios, subdomínios ou caminhos de URL exatos. Isso ajuda a garantir que as cargas de trabalho só possam acessar destinos autorizados.
Acesso seguro à Web: é possível proteger e auditar com eficiência o acesso à Web em todo o seu Google Cloud ambiente.
Antes de começar
Conclua as etapas de configuração inicial.
Verifique se você tem a versão 406.0.0 ou mais recente da Google Cloud CLI instalada:
gcloud version | head -n1Se você tiver uma versão anterior da CLI gcloud instalada, atualize a versão:
gcloud components update --version=406.0.0
Criar uma instância do Secure Web Proxy com uma política vazia
Para criar uma instância do Secure Web Proxy, primeiro crie uma política de segurança vazia e, em seguida, um proxy da Web que use a política.
Criar uma política de segurança vazia
Console
No Google Cloud console do, acesse a página Políticas do SWP.
Clique em Criar uma política.
No campo Nome, insira um nome para a política, como
myswppolicy.No campo Descrição, insira uma descrição para a política, como
My new swp policy.Em Regiões, selecione a região em que você quer criar a política, como
us-central1.Clique em Criar.
Cloud Shell
Use um editor de texto para criar um arquivo
policy.yaml.Adicione o seguinte código ao arquivo
policy.yaml:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTIONSubstitua:
PROJECT_NAME: nome do projetoREGION: região em que a política é criada, comous-central1POLICY_NAME: nome da políticaPOLICY_DESCRIPTION: descrição da política
Importe a política de segurança usando o
gcloud network-security gateway-security-policies importcomando:gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
Criar um proxy da Web
Console
No Google Cloud console do, acesse a página Proxies da Web.
Clique em Criar um proxy da Web seguro.
No campo Nome, insira um nome para o proxy da Web, como
myswp.No campo Descrição, insira uma descrição para o proxy da Web, como
My new swp.Em Modo de roteamento, selecione uma das seguintes opções:
- Explícito: implanta a instância do Secure Web Proxy no modo de proxy explícito.
- Próximo salto: implanta a instância do Secure Web Proxy no modo de próximo salto.
Em Regiões, selecione a região em que você quer criar o proxy da Web, como
us-central1.Em Rede, selecione a rede em que você quer criar o proxy da Web.
Em Sub-rede, selecione a sub-rede VPC que você criou durante a configuração inicial.
Opcional: no campo Endereço IP do proxy da Web, insira o endereço IP do Secure Web Proxy.
É possível inserir um endereço IP do intervalo de endereços IP do Secure Web Proxy que reside na sub-rede criada na etapa anterior. Se você não inserir o endereço IP, a instância do Secure Web Proxy vai escolher automaticamente um endereço IP da sub-rede selecionada.
Em Certificado, selecione o certificado que você quer usar para criar o proxy da Web.
Em Política, selecione a política que você criou para associar o proxy da Web.
Clique em Criar.
Cloud Shell
Use um editor de texto para criar um arquivo
gateway.yaml.Adicione o seguinte código ao arquivo
gateway.yaml:name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME type: SECURE_WEB_GATEWAY ports: [GATEWAY_PORT_NUMBERS] certificateUrls: [CERTIFICATE_URLS] gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME network: projects/PROJECT_NAME/global/networks/NETWORK_NAME subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK routingMode: ROUTING_MODE addresses: [GATEWAY_IP_ADDRESS] scope: samplescopeOpcional: para permitir que aplicativos cliente de outras Google Cloud regiões se conectem ao proxy, ative o acesso global ao criar a instância do Secure Web Proxy.
No arquivo
gateway.yaml, adicione o campoallow_global_accesse defina-o comotrue.Importante: só é possível ativar
allow_global_accessao criar uma instância do Secure Web Proxy. Não é possível configurar essa configuração mais tarde.name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME type: SECURE_WEB_GATEWAY ports: [GATEWAY_PORT_NUMBERS] certificateUrls: [CERTIFICATE_URLS] gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME network: projects/PROJECT_NAME/global/networks/NETWORK_NAME subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK addresses: [GATEWAY_IP_ADDRESS] scope: samplescope allow_global_access: trueSubstitua:
GATEWAY_NAME: nome dessa instância do Secure Web ProxyGATEWAY_PORT_NUMBERS: lista de números de porta para esse gateway, como[80,443]CERTIFICATE_URLS: lista de URLs de certificados SSLSUBNETWORK: sub-rede VPC que você criou durante a configuração inicialROUTING_MODE: especifique o modo de roteamento do proxy da Web necessário:EXPLICIT_ROUTING_MODE: implanta a instância do Secure Web Proxy no modo de proxy explícitoNEXT_HOP_ROUTING_MODE: implanta a instância do Secure Web Proxy no modo de próximo salto
GATEWAY_IP_ADDRESS: lista opcional de endereços IP para as instâncias do Secure Web Proxy nas sub-redes de proxy que você criou anteriormente nas etapas de configuração inicialSe você optar por não listar endereços IP, omita o campo para permitir que o proxy da Web escolha um endereço IP para você.
Crie a instância do Secure Web Proxy usando o
gcloud network-services gateways importcomando:gcloud network-services gateways import GATEWAY_NAME \ --source=gateway.yaml \ --location=REGION
Testar a conectividade
Para testar a conectividade, use o comando curl de qualquer instância de máquina virtual (VM) na rede de nuvem privada virtual (VPC):
curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure
Se tudo estiver funcionando corretamente, a instância do Secure Web Proxy vai retornar um código de status 403 Forbidden. Esse erro confirma o seguinte:
A instância do Secure Web Proxy foi implantada e está recebendo tráfego ativamente.
A política do Secure Web Proxy está aplicando corretamente a postura de segurança padrão de rejeitar todo o tráfego até que você defina regras
allowespecíficas nas próximas seções.
Criar e configurar uma lista de URLs
Console
No Google Cloud console do, acesse a página Listas de URLs.
Clique em Criar uma lista de URLs. A página Criar lista de URLs será aberta.
No campo Nome, insira um nome para a lista de URLs, como
example-org-allowed-list.No campo Descrição, insira uma descrição para a lista de URLs, como
My new URL list.Em Regiões, selecione a região em que você quer criar a lista de URLs, como
us-central1.Para adicionar a lista de hosts, URLs ou padrões a serem correspondidos, no campo Lista de URLs , insira os detalhes ou clique em Fazer upload da lista para fazer upload de uma lista personalizada de URLs. Para mais informações, consulte a referência de sintaxe UrlList.
Clique em Criar.
Cloud Shell
Use um editor de texto para criar o arquivo
url_list.yaml.Adicione o seguinte código ao arquivo
url_list.yaml:name: projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME values: URL_LISTSubstitua:
PROJECT_ID: ID exclusivo do seu Google Cloud projetoREGION: região em que a lista de URLs é criada, comous-central1URL_LIST_NAME: nome da lista de URLsURL_LIST: lista de hosts, URLs ou padrões a serem correspondidos
Para mais informações, consulte a referência de sintaxe UrlList.
Confira abaixo um exemplo de arquivo de regra de lista de URLs:
name: projects/PROJECT_ID/locations/REGION/urlLists/example-org-allowed-list values: - www.example.com - about.example.com - "*.google.com" - "github.com/example-org/*"O caractere asterisco (
*) tem um significado especial em YAML. É necessário adicionar aspas em torno de URLs que incluem um caractere*.Importe a lista de URLs que você criou usando o
gcloud network-security url-lists importcomando para que a regra do Secure Web Proxy possa fazer referência a ela.gcloud network-security url-lists import URL_LIST_NAME \ --location=REGION \ --project=PROJECT_ID \ --source=url_list.yaml
Adicionar uma regra do Secure Web Proxy
Console
No Google Cloud console do, acesse a página Políticas do SWP.
Clique no nome da política, como
myswppolicy.Clique em Adicionar regra.
Para cada regra, faça o seguinte:
Em Prioridade, insira 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 prioridade mais alta.No campo Nome, insira um nome para a regra, como
allow-org-url-list.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 correspondam à regra.
- Negar: para negar solicitações de conexão que correspondam à regra.
No campo Status, selecione uma das seguintes opções para a aplicação da regra:
- Ativado: para aplicar a regra na instância do Secure Web Proxy.
- Desativado: para não aplicar a regra na instância do Secure Web Proxy.
Na seção Correspondência de sessão, especifique o nome exclusivo da lista de URLs que você criou na seção anterior. Exemplo:
sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME)"
Para mais informações sobre a sintaxe de
SessionMatcher, consulte a referência de linguagem do matcher CEL.Na seção Correspondência de aplicativo, especifique os critérios para corresponder à solicitação.
Clique em Adicionar regra.
Cloud Shell
Use um editor de texto para criar um arquivo
rule.yaml.Adicione o seguinte código ao arquivo
rule.yaml:name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME basicProfile: ALLOW enabled: true priority: RULE_PRIORITY description: RULE_DESCRIPTION sessionMatcher: SESSION_CEL_EXPRESSION applicationMatcher: APPLICATION_CEL_EXPRESSIONSubstitua:
PROJECT_ID: ID exclusivo do seu Google Cloud projetoREGION: região a que essa regra se aplicaPOLICY_NAME: nome de uma política de segurança atual que a instância do Secure Web Proxy usaRULE_NAME: nome da regraPRIORITY_VALUE: prioridade da regra; um número menor corresponde a uma prioridade maiorRULE_DESCRIPTION: descrição da regraSESSION_CEL_EXPRESSION: uma expressão da Linguagem de expressão comum (CEL) . Para mais informações, consulte a referência de linguagem do matcher CEL.APPLICATION_CEL_EXPRESSION: uma expressão CEL para seu aplicativo
Confira abaixo um exemplo de arquivo de regra:
name: projects/PROJECT_ID/locations/REGION/urlLists/allow-repos basicProfile: ALLOW enabled: true priority: 100 description: Allow access to our list of known code repos. sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"Importe a regra que você criou usando o
gcloud network-security gateway-security-policies rules importcomando.gcloud network-security gateway-security-policies rules import RULE_NAME \ --location=REGION \ --project=PROJECT_ID \ --source=rule.yaml \ --gateway-security-policy=POLICY_NAME
Testar a configuração da política
É possível testar a conectividade novamente para validar se as regras de acesso baseadas em listas de URLs estão configuradas corretamente e ativamente aplicadas pela instância do Secure Web Proxy.
Para testar a conectividade, use o seguinte comando curl:
curl -x https://SWP_IP_ADDRESS:SWP_PORT_NUMBER HTTP_TEST_ADDRESS --proxy-insecure
Substitua:
SWP_IP_ADDRESS: endereço IP da instância do Secure Web ProxySWP_PORT_NUMBER: número da porta do proxy da Web, como443HTTP_TEST_ADDRESS: um endereço para testar, comohttps://www.example.com. Ele corresponde a uma entrada de host ou URL naurl_list.
Se tudo funcionar corretamente, você vai receber uma resposta 200 OK. Essa resposta confirma que o tráfego de saída para um URL listado na lista de URLs e referenciado pela regra de política de segurança é permitido pela instância do Secure Web Proxy.