Criar e gerenciar perfis de segurança de filtragem de URL

Nesta página, explicamos como criar e gerenciar perfis de segurança do tipo url-filtering usando o console Google Cloud e a Google Cloud CLI.

Antes de começar

Papéis

Para receber as permissões necessárias de criação, visualização, atualização ou exclusão de perfis de segurança, solicite ao administrador que conceda a você os papéis do IAM necessários na sua organização. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Criar um perfil de segurança de filtragem de URL

Ao criar um perfil de segurança de filtragem de URL (perfil de segurança do tipo url-filtering), é possível especificar o nome dele como uma string ou um identificador de URL exclusivo. O URL exclusivo de um perfil de segurança com escopo da organização pode ser criado no seguinte formato:

organization/ORGANIZATION_ID/locations/LOCATION/securityProfiles/SECURITY_PROFILE_NAME

Se você usar um identificador de URL exclusivo para o nome do perfil de segurança, a organização e o local do perfil de segurança já estarão incluídos no identificador de URL. No entanto, se você usar apenas o nome do perfil de segurança, será necessário especificar a organização e o local separadamente. Para mais informações sobre identificadores exclusivos de URL, consulte as especificações do perfil de segurança.

Console

  1. No Google Cloud console, acesse a página Perfis de segurança.

    Acessar Perfis de segurança

  2. No menu do seletor de projetos, selecione sua organização.

  3. Selecione a guia Perfis de segurança.

  4. Clique em Create profile.

  5. Digite um nome no campo Nome.

    .

  6. Opcional: insira uma descrição no campo Descrição.

  7. Para criar um perfil de segurança do Cloud Next Generation Firewall Enterprise, na seção Finalidade, selecione Cloud NGFW Enterprise.

  8. Para criar um perfil de segurança de filtragem de URL, na seção Tipo, selecione Filtragem de URL.

  9. Na seção Filtros de URL, clique no botão Criar filtro de URL.

  10. No painel Criar um filtro de URL, especifique os seguintes detalhes:

    • Prioridade: especifique a prioridade do filtro de URL.
    • Ação: especifique a ação que o Cloud NGFW realiza no tráfego.
      • Permitir: permite as conexões que correspondem a um URL.
      • Negar: nega as conexões que correspondem a um URL.
    • Lista de URLs: especifique uma lista de URLs ou strings de correspondência. Cada URL ou entrada de string de correspondência precisa aparecer na própria linha sem espaços ou delimitadores. Cada entrada pode consistir em apenas um domínio. Para mais informações sobre as strings de correspondência, consulte Strings de correspondência para URLs.
  11. Clique em Criar.

gcloud

  1. Crie um arquivo YAML com o seguinte conteúdo:

    name: NAME
    type: PROFILE_TYPE
    urlFilteringProfile:
    urlFilters:
      - filteringAction: ACTION
        priority: PRIORITY
        urls: URL[,URL,...]
    

    Substitua:

    • NAME: o nome do perfil de segurança de filtragem de URL; é possível especificar o nome como uma string ou um identificador de URL exclusivo.

      .
    • PROFILE_TYPE: o tipo de perfil de segurança, url-filtering ou threat-prevention.

    • ACTION: especifique uma das seguintes ações:

      • allow: permite conexões que correspondem a um URL
      • deny: nega conexões que correspondem a um URL
    • PRIORITY: prioridade de um filtro de URL, que varia de 0 a 2147483647.

    • URLs: uma lista separada por vírgulas de strings de correspondência. Por exemplo, www.example.com e www.altostrat.com.

  2. Para criar o perfil de segurança de filtragem de URL, execute o comando gcloud network-security security-profiles import:

    gcloud network-security security-profiles import NAME \
        --location LOCATION \
        --source FILE_NAME \
        --organization = ORGANIZATION_ID
    

    Como alternativa, é possível criar um perfil de segurança de filtragem de URL sem um arquivo YAML usando o comando gcloud network-security security-profiles url-filtering create:

    gcloud network-security security-profiles url-filtering create NAME \
        --location LOCATION \
        --organization ORGANIZATION_ID \
        --description DESCRIPTION
    

    Substitua:

    • NAME: o nome do perfil de segurança de filtragem de URL; é possível especificar o nome como uma string ou um identificador de URL exclusivo.

      .

      Se você usar um identificador de URL exclusivo para a flag NAME, será possível omitir as flags LOCATION e ORGANIZATION.

    • LOCATION: o local do perfil de segurança de filtragem de URL.

      O local está sempre definido como global. Se você usar um identificador de URL exclusivo para a sinalização NAME, omita a sinalização LOCATION.

    • FILE_NAME: o nome do arquivo YAML. Por exemplo, url-filtering-sp.yaml.

    • ORGANIZATION_ID: a organização em que o perfil de segurança de filtragem de URL é criado. Se você usar um identificador de URL exclusivo para a sinalização name, será possível omitir a sinalização ORGANIZATION_ID.

    • DESCRIPTION: uma descrição opcional para o perfil de segurança de filtragem de URL.

    Por exemplo, o snippet de código a seguir mostra um perfil de segurança de filtragem de URL que permite solicitações para www.example.com e www.altostrat.com, mas nega solicitações para todos os outros domínios:

    url_filtering_profile:
    url_filters:
      - filtering_action: ALLOW
        priority: 1000
        urls: ['www.example.com', 'www.altostrat.com']
      # the following URL filter is implicit and will be processed last
      - filtering_action: DENY
        priority: 2147483647
        urls: ['*']
    

Filtro de URL de negação implícita

O perfil de segurança de filtragem de URL sempre inclui um filtro de URL padrão com a menor prioridade (2147483647), que nega todas as conexões que não correspondem aos filtros de URL de maior prioridade. O snippet de código a seguir mostra um exemplo do filtro de URL de negação implícita:

  url_filtering_profile:
  url_filters:
    # user-specified URL filters
    - filtering_action: DENY
      priority: 1000
      urls: ['www.example.com','www.altostrat.com']
    - filtering_action: ALLOW
      priority: 2000
      urls: ['www.example.org','www.example.net']
    # implicit deny URL filter that will be processed last
    - filtering_action: DENY
      priority: 2147483647
      urls: ['*']
  

É possível ver o filtro de URL de negação implícita ao visualizar ou exportar um perfil de segurança de filtro de URL. Não é possível modificar ou remover o filtro implícito. Por exemplo, se você quiser mudar a ação padrão de um perfil de DENY (aplicada por um filtro implícito) para ALLOW, adicione um filtro explícito que o Cloud NGFW processe antes do filtro implícito.

  url_filtering_profile:
  url_filters:
    # user-specified filters
    - filtering_action: DENY
      priority: 1000
      urls: ['www.example.com','www.altostrat.com']
    # explicit allow URL filter that you can add
    - filtering_action: ALLOW
      priority: 2000
      urls: ['*']
    # implicit deny URL filter that will be processed last
    - filtering_action: DENY
      priority: 2147483647
      urls: ['*']
  

Strings de correspondência para URLs

As strings de correspondência são os valores especificados no campo urls de um filtro de URL. É possível especificar uma ou mais strings de correspondência em um filtro de URL.

Caracteres curinga

Cada string de correspondência de uma lista de URLs aceita um caractere curinga (*) de forma limitada.

  • Cada string de correspondência pode aceitar apenas um asterisco (*), que pode ser o primeiro ou o único caractere.
  • O asterisco (*) pode ter as seguintes interpretações:

    • Um asterisco (*) antes de um ponto (.) indica todos os subdomínios do domínio.

      Por exemplo, a string de correspondência *.example.com corresponde a a.example.com e a.b.c.example.com, mas não a example.com.

      url_filtering_profile:
      url_filters:
        # user-specified filters
        - filtering_action: ALLOW
          priority: 1000
          urls: ['*.example.com']
        # implicit deny URL filter that will be processed last
        - filtering_action: DENY
          priority: 2147483647
          urls: ['*']
      

      No exemplo anterior, o Cloud NGFW permite o tráfego para os subdomínios de example.com, mas nega o restante do tráfego de saída.

    • Um asterisco (*) antes de um rótulo indica o domínio e todos os subdomínios.

      Por exemplo, a string de correspondência *example.com corresponde a a.example.com, a.b.c.example.com e example.com.

      url_filtering_profile:
      url_filters:
        # user-specified filters
        - filtering_action: ALLOW
          priority: 1000
          urls: ['*example.com']
        # implicit deny URL filter that will be processed last
        - filtering_action: DENY
          priority: 2147483647
          urls: ['*']
      

      No exemplo anterior, o Cloud NGFW permite o tráfego para example.com e os subdomínios de example.com, mas nega o restante do tráfego de saída.

    • O Cloud NGFW não interpreta o asterisco (*) como um caractere curinga de expressão regular.

      Por exemplo, *example.test não corresponde a newexample.test ou a.newexample.test. Ela só corresponde a example.test e aos subdomínios de example.test.

    • Um único asterisco (*) sem outros caracteres indica uma correspondência para todas as solicitações.

      Por exemplo, a string de correspondência no filtro de permissão explícita de URL de menor prioridade contém apenas um asterisco (*) e tem uma ação ALLOW que substitui a ação padrão de DENY. Isso acontece porque o filtro de URL de negação implícita aplica o DENY padrão a todas as solicitações que não correspondem a filtros de URL de prioridade mais alta.

      O filtro de URL de maior prioridade, que é um ALLOW explícito ou um DENY implícito, determina se o Cloud NGFW permite ou nega conexões quando não tem informações de SNI ou domínio. Isso pode acontecer com tráfego HTTP não criptografado ou quando a inspeção TLS está desativada para cabeçalhos de mensagens criptografadas.

      url_filtering_profile:
      url_filters:
        # user-specified filters
        - filtering_action: DENY
          priority: 1000
          urls: ['www.example.com','www.altostrat.com']
        # explicit allow URL filter that you can add
        - filtering_action: ALLOW
          priority: 2000
          urls: ['*']
        # implicit deny URL filter that will be processed last
        - filtering_action: DENY
          priority: 2147483647
          urls: ['*']
      

Limitações

  • As strings de correspondência representam domínios ou subdomínios.
  • As strings de correspondência não são compatíveis com o caractere de barra (/). Por exemplo: www.example.com/images.
  • As strings de correspondência não são compatíveis com esquemas ou nomes de protocolo. Por exemplo, http://www.example.com.
  • As strings de correspondência não aceitam números de porta. Por exemplo, www.example.com:80.
  • As strings de correspondência só aceitam letras ASCII, números e caracteres especiais: hífen (-), ponto (.) e asterisco (*).

Use o Punycode para converter nomes de domínio que contenham caracteres diferentes de letras ASCII, números, hifens (-), pontos (.) ou asteriscos (*). O Punycode é um padrão de codificação que transforma nomes de domínio Unicode em um formato compatível com ASCII.

  • Se você tiver dois ou mais rótulos, use pontos (.) para separá-los. Um rótulo pode conter um ou mais hífens (-), mas não pode começar ou terminar com um hífen. Cada rótulo pode incluir no máximo 63 caracteres.

  • Um filtro de URL não aceita o uso de um ponto no início de um nome de domínio ou pontos consecutivos em uma string de correspondência. Um filtro de URL permite pontos finais, mas o Cloud NGFW os remove antes de salvar um filtro de URL.

  • O Cloud NGFW converte as strings de correspondência em letras minúsculas antes de salvar o filtro de URL. O Cloud NGFW não realiza nenhuma outra normalização.

  • Cada nome de domínio pode incluir no máximo 255 caracteres.

Conferir um perfil de segurança de filtragem de URL

É possível conferir os detalhes de um perfil de segurança de filtragem de URL específico em uma organização.

Console

  1. No Google Cloud console, acesse a página Perfis de segurança.

    Acessar Perfis de segurança

  2. Selecione a guia Perfis de segurança. A guia mostra uma lista de perfis de segurança configurados.

  3. Clique em um perfil de segurança do tipo Filtragem de URL para conferir os detalhes.

gcloud

Para conferir os detalhes de um perfil de segurança de filtragem de URL, use o comando gcloud network-security security-profiles url-filtering describe:

gcloud network-security security-profiles url-filtering describe NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \

Substitua:

  • NAME: o nome do perfil de segurança do tipo url-filtering que você quer descrever. É possível especificar o nome como uma string ou um identificador de URL exclusivo.

  • ORGANIZATION_ID: a organização em que o perfil de segurança de filtragem de URL é criado. Se você usar um identificador de URL exclusivo para a sinalização NAME, omita a sinalização ORGANIZATION_ID.

  • LOCATION: o local do perfil de segurança de filtragem de URL. O local está sempre definido como global. Se você usar um identificador de URL exclusivo para a flag NAME, omita a flag LOCATION.

Listar perfis de segurança de filtragem de URL

É possível listar todos os perfis de segurança de filtragem de URL em uma organização.

Console

  1. No Google Cloud console, acesse a página Perfis de segurança.

    Acessar Perfis de segurança

  2. Selecione a guia Perfis de segurança. A guia mostra uma lista de perfis de segurança configurados.

gcloud

Para listar todos os perfis de segurança de filtragem de URL, use o comando gcloud network-security security-profiles url-filtering list:

gcloud network-security security-profiles url-filtering list \
    --organization ORGANIZATION_ID \
    --location LOCATION

Substitua:

  • ORGANIZATION_ID: a organização em que os perfis de segurança de filtragem de URL são criados.

  • LOCATION: o local dos perfis de segurança de filtragem de URL. O local está sempre definido como global.

Excluir um perfil de segurança de filtragem de URL

É possível excluir um perfil de segurança de filtragem de URL especificando o nome, o local e a organização dele. No entanto, se um perfil de segurança for referenciado por um grupo de perfis de segurança, ele não poderá ser excluído.

Console

  1. No Google Cloud console, acesse a página Perfis de segurança.

    Acessar Perfis de segurança

  2. Selecione a guia Perfis de segurança. A guia mostra uma lista de perfis de segurança configurados.

  3. Selecione o perfil de segurança que você quer excluir e clique em Excluir.

  4. Clique em Excluir novamente para confirmar.

gcloud

Para excluir um perfil de segurança de filtragem de URL, use o comando gcloud network-security security-profiles url-filtering delete:

gcloud network-security security-profiles url-filtering delete NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION

Substitua:

  • NAME: o nome do perfil de segurança de filtragem de URL que você quer excluir. É possível especificar o nome como uma string ou um identificador de URL exclusivo.

  • ORGANIZATION_ID: a organização em que o perfil de segurança de filtragem de URL é criado. Se você usar um identificador de URL exclusivo para a sinalização NAME, será possível omitir a sinalização ORGANIZATION_ID.

  • LOCATION: o local do perfil de segurança de filtragem de URL.

    O local está sempre definido como global. Se você usar um identificador de URL exclusivo para a sinalização NAME, omita a sinalização LOCATION.

Importar um perfil de segurança de filtragem de URL

É possível importar um perfil de segurança de filtragem de URL (criado de forma personalizada ou exportado anteriormente) de um arquivo YAML. Ao importar um perfil de segurança de filtragem de URL, se já existir um perfil com o mesmo nome, o Cloud NGFW vai atualizar o perfil atual.

gcloud

Para importar um perfil de segurança de filtragem de URL de um arquivo YAML, use o comando gcloud network-security security-profiles import:

gcloud network-security security-profiles import NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \
    --source FILE_NAME

Substitua:

  • NAME: o nome do perfil de segurança do tipo url-filtering que você quer importar. É possível especificar o nome como uma string ou um identificador de URL exclusivo.

    Se você usar um identificador de URL exclusivo para a flag NAME, será possível omitir as flags ORGANIZATION_ID e LOCATION.

  • ORGANIZATION_ID: a organização em que o perfil de segurança de filtragem de URL é criado. Se você usar um identificador de URL exclusivo para a sinalização NAME, omita a sinalização ORGANIZATION_ID.

  • LOCATION: o local do perfil de segurança de filtragem de URL. O local está sempre definido como global. Se você usar um identificador de URL exclusivo para a flag NAME, omita a flag LOCATION.

  • FILE_NAME: o caminho para o arquivo YAML que contém os dados de exportação de configuração do perfil de segurança de filtragem de URL. Por exemplo,url-filtering-sp.yaml.

    O arquivo YAML não pode conter campos somente saída. Como alternativa, omita a flag source para ler da entrada padrão.

Exportar um perfil de segurança de filtragem de URL

É possível exportar um perfil de segurança de filtragem de URL para um arquivo YAML. Por exemplo, em vez de usar a interface do usuário para modificar um perfil de segurança grande, é possível usar essa funcionalidade para exportar, modificar rapidamente e importar de volta o perfil.

gcloud

Para exportar um perfil de segurança de filtragem de URL para um arquivo YAML, use o comando gcloud network-security security-profiles export:

gcloud network-security security-profiles export NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \
    --destination FILE_NAME

Substitua:

  • NAME: o nome do perfil de segurança do tipo url-filtering que você quer exportar. É possível especificar o nome como uma string ou um identificador de URL exclusivo.

    Se você usar um identificador de URL exclusivo para a flag NAME, será possível omitir as flags ORGANIZATION_ID e LOCATION.

  • ORGANIZATION_ID: a organização em que o perfil de segurança de filtragem de URL é criado. Se você usar um identificador de URL exclusivo para a sinalização NAME, omita a sinalização ORGANIZATION_ID.

  • LOCATION: o local do perfil de segurança de filtragem de URL. O local está sempre definido como global. Se você usar um identificador de URL exclusivo para a flag NAME, omita a flag LOCATION.

  • FILE_NAME: o caminho para o arquivo YAML em que o Cloud NGFW vai exportar a configuração do perfil de segurança de filtragem de URL. Por exemplo, url-filtering-sp.yaml.

    Os dados de configuração exportados não contêm campos somente de saída. Como alternativa, omita a flag destination para gravar na saída padrão.

A seguir