Usar listas de URLs para criar políticas

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 allow ou deny regras 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 inteiros, 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 ambiente Google Cloud .

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 -n1
    

    Se 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

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

    Acessar políticas do SWP

  2. Clique em Criar uma política.

  3. No campo Nome, insira um nome para a política, como myswppolicy.

  4. No campo Descrição, insira uma descrição para a política, como My new swp policy.

  5. Em Regiões, selecione a região em que você quer criar a política, como us-central1.

  6. Clique em Criar.

Cloud Shell

  1. Use o editor de texto de sua preferência para criar um arquivo policy.yaml.

  2. Adicione o seguinte ao arquivo policy.yaml que você criou:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    Substitua:

    • PROJECT_NAME: nome do seu projeto

    • REGION: região em que a política é criada, como us-central1

    • POLICY_NAME: nome da política

    • POLICY_DESCRIPTION: descrição da política

  3. Importe a política de segurança usando o gcloud network-security gateway-security-policies import comando:

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

Criar um proxy da Web

Console

  1. No Google Cloud console do, acesse a página Proxies da Web.

    Acessar proxies da Web

  2. Clique em Criar um proxy da Web seguro.

  3. No campo Nome, insira um nome para o proxy da Web, como myswp.

  4. No campo Descrição, insira uma descrição para o proxy da Web, como My new swp.

  5. Em Modo de roteamento, selecione a opção Explícito.

  6. Em Regiões, selecione a região em que você quer criar o proxy da Web, como us-central1.

  7. Em Rede, selecione a rede em que você quer criar o proxy da Web.

  8. Em Sub-rede, selecione a sub-rede VPC que você criou anteriormente como parte das etapas de configuração inicial.

  9. 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.

  10. Em Certificado, selecione o certificado que você quer usar para criar o proxy da Web.

  11. Em Política, selecione a política que você criou para associar o proxy da Web.

  12. Clique em Criar.

Cloud Shell

  1. Use o editor de texto de sua preferência para criar um arquivo gateway.yaml.

  2. Adicione o seguinte 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
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Substitua:

    • GATEWAY_NAME: nome dessa instância do Secure Web Proxy

    • GATEWAY_PORT_NUMBERS: lista de números de porta para esse gateway, como [80,443]

    • CERTIFICATE_URLS: lista de URLs de certificados SSL

    • SUBNETWORK: sub-rede VPC que você criou anteriormente como parte das etapas de configuração inicial

    • 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 inicial

      Se 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ê.

  3. Crie a instância do Secure Web Proxy usando o gcloud network-services gateways import comando:

    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 allow específicas nas próximas seções.

Criar e configurar uma lista de URLs

Console

  1. No Google Cloud console do, acesse a página Listas de URLs.

    Acessar listas de URLs

  2. Clique em Criar uma lista de URLs. A página Criar lista de URLs é aberta.

  3. No campo Nome, insira um nome para a lista de URLs, como example-org-allowed-list.

  4. No campo Descrição, insira uma descrição para a lista de URLs, como My new URL list.

  5. Em Regiões, selecione a região em que você quer criar a lista de URLs, como us-central1.

  6. 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.

  7. Clique em Criar.

Cloud Shell

  1. Use o editor de texto de sua preferência para criar o arquivo url_list.yaml.

  2. Adicione o seguinte ao arquivo url_list.yaml:

      name: projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME
      values: URL_LIST
    

    Substitua:

    • PROJECT_ID: ID exclusivo do seu Google Cloud projeto

    • REGION: região em que a lista de URLs é criada, como us-central1

    • URL_LIST_NAME: nome da lista de URLs

    • URL_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 *.

  3. Importe a lista de URLs que você criou usando o gcloud network-security url-lists import comando 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

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

    Acessar políticas do SWP

  2. Clique no nome da sua política, como myswppolicy.

  3. Clique em Adicionar regra.

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

    1. 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 mais alta.

    2. No campo Nome, insira um nome para a regra, como allow-org-url-list.

    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 correspondam à regra.
      • Negar: para negar solicitações de conexão que correspondam à regra.
    5. 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.
    6. 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.

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

    8. Clique em Adicionar regra.

Cloud Shell

  1. Use o editor de texto de sua preferência para criar um arquivo rule.yaml.

  2. Adicione o seguinte 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_EXPRESSION
    

    Substitua:

    • PROJECT_ID: ID exclusivo do seu Google Cloud projeto

    • REGION: região a que essa regra se aplica

    • POLICY_NAME: nome de uma política de segurança atual que a instância do Secure Web Proxy usa

    • RULE_NAME: nome da regra

    • PRIORITY_VALUE: prioridade da regra; um número menor corresponde a uma prioridade maior

    • RULE_DESCRIPTION: descrição da regra

    • SESSION_CEL_EXPRESSION: uma expressão Common Expression Language (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')"
    

  3. Importe a regra que você criou usando o gcloud network-security gateway-security-policies rules import comando.

        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 Proxy

  • SWP_PORT_NUMBER: número da porta do proxy da Web, como 443

  • HTTP_TEST_ADDRESS: um endereço para teste, como https://www.example.com. Ele corresponde a uma entrada de host ou URL na sua url_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 com sucesso pela instância do Secure Web Proxy.

A seguir