Usar listas de URLs para criar políticas

Nesta página, explicamos 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 proxy seguro da Web. 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:

  • Simplifique o gerenciamento de políticas: é possível aplicar um grande conjunto de regras de allow ou deny com uma única referência na sua política de segurança.

  • Impor controle preciso: é possível usar uma sintaxe específica para corresponder a domínios, subdomínios ou caminhos de URL inteiros. Isso ajuda a garantir que suas cargas de trabalho acessem apenas destinos autorizados.

  • Acesso seguro à Web: você pode 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:

    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 é necessário criar 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 console do Google Cloud , acesse a página Políticas de SWP.

    Acessar as 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 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 comando gcloud network-security gateway-security-policies import:

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

Criar um proxy da Web

Console

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

    Acesse 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 da 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 proxy da Web seguro.

    Você pode inserir um endereço IP do intervalo de endereços IP do proxy da Web seguro que reside na sub-rede criada na etapa anterior. Se você não inserir o endereço IP, sua instância do Secure Web Proxy 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 desta instância do Secure Web Proxy

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

    • CERTIFICATE_URLS: lista de URLs de certificados SSL

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

    • GATEWAY_IP_ADDRESS: lista opcional de endereços IP das instâncias do proxy seguro da Web nas sub-redes de proxy criadas anteriormente nas etapas de configuração inicial.

      Se você não quiser listar endereços IP, omita o campo para que o proxy da Web escolha um endereço IP para você.

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

    gcloud network-services gateways import GATEWAY_NAME \
        --source=gateway.yaml \
        --location=REGION
    

testar a conectividade

Para testar a conectividade, use o comando curl em 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, sua 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.

  • A política de proxy da Web segura está aplicando corretamente a postura de segurança padrão de rejeitar todo o tráfego até que você defina regras específicas de allow nas próximas seções.

Criar e configurar uma lista de URLs

Console

  1. No console Google Cloud , 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 enviar uma lista personalizada de URLs. Para mais informações, consulte 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 projeto Google Cloud

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

    • URL_LIST_NAME: nome da lista de URLs

    • URL_LIST: lista de hosts, URLs ou padrões para correspondência

    Para mais informações, consulte a referência de sintaxe UrlList.

    Confira abaixo um exemplo de arquivo de regras 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. Adicione aspas aos URLs que incluem um caractere *.

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

  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, 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 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 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 da linguagem de correspondência da 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 projeto Google Cloud

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

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

    • 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 da linguagem de expressão comum (CEL). Para mais informações, consulte Referência da linguagem de correspondência da 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 criada usando o comando gcloud network-security gateway-security-policies rules import.

        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

Você pode testar a conectividade novamente para validar se as regras de acesso com base em listas de URLs estão configuradas corretamente e sendo aplicadas ativamente pela sua 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 sua instância do Secure Web Proxy

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

  • HTTP_TEST_ADDRESS: um endereço para testar, como https://www.example.com. Ele corresponde a uma entrada de host ou URL no seu 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 sua lista de URLs e referenciado pela regra da política de segurança foi permitido pela instância do proxy seguro da Web.

A seguir