Ativar inspeção TLS

Esta página descreve como ativar a inspeção Transport Layer Security (TLS) para sua instância do Secure Web Proxy. O Secure Web Proxy oferece um serviço de inspeção TLS que permite interceptar o tráfego TLS, inspecionar a solicitação criptografada e aplicar políticas de segurança. Para mais informações sobre a inspeção de TLS, consulte Visão geral da inspeção de TLS.

Antes de começar

Antes de configurar a instância do Secure Web Proxy para a inspeção de TLS, conclua as tarefas nas seções a seguir.

Ativar o Certificate Authority Service

O proxy da Web seguro usa o Certificate Authority Service (em inglês) para gerar os certificados usados na inspeção TLS.

Para ativar o serviço de CA, use o seguinte comando:

  gcloud services enable privateca.googleapis.com
  

Criar um pool de CA

Um pool de autoridades certificadoras (ACs) é uma coleção de várias ACs com uma política de emissão de certificados e política de gerenciamento de identidade e acesso (IAM) comuns. Os pools de ACs oferecem a capacidade de alternar as cadeias de confiança sem nenhuma interrupção ou inatividade dos payloads.

É preciso criar um pool de ACs antes de usar o serviço de AC para criar uma AC. Esta seção explica as permissões necessárias para concluir essa tarefa e descreve como criar um pool de AC.

Para gerar certificados, a inspeção TLS usa uma conta de serviço separada para cada projeto chamado service-[PROJECT_NUMBER]@gcp-sa-certmanager.iam.gserviceaccount.com. Verifique se você concedeu permissões a essa conta de serviço para usar o pool de AC. Se esse acesso for revogado, a inspeção TLS vai parar de funcionar.

Para recuperar o PROJECT_NUMBER usando o PROJECT_ID do projeto do pool de ACs, use o seguinte comando:

    gcloud projects describe PROJECT_ID
        --format="value(projectNumber)"

Para criar o pool, use o comando gcloud privateca pools create e especifique o ID do pool subordinado, o nível, o ID do projeto e o local.

gcloud privateca pools create SUBORDINATE_POOL_ID \
    --tier=TIER \
    --project=PROJECT_ID \
    --location=REGION

Substitua:

  • SUBORDINATE_POOL_ID: nome do pool de ACs
  • TIER: nível da AC, devops ou enterprise

    Recomendamos que você crie o pool de ACs no nível devops, porque não é necessário rastrear certificados emitidos individualmente.

  • PROJECT_ID: ID do projeto do pool de ACs

  • REGION: local do pool de ACs

Criar um pool de AC subordinada

Se você tiver vários cenários de emissão de certificados, poderá criar uma AC subordinada para cada um desses cenários. É possível criar uma AC subordinada em um pool de ACs, e a AC raiz assina todas as ACs nesse pool. Esses certificados são usados para assinar certificados do servidor gerados para a inspeção de TLS.

Para criar um pool de ACs subordinadas, use um dos métodos a seguir.

Crie um pool de AC subordinada usando uma AC raiz armazenada no serviço de AC.

Para gerar uma AC subordinada, faça o seguinte:

  1. Criar um pool de CA
  2. Criar ACs subordinadas em um pool de ACs

Criar um pool de ACs subordinadas usando uma AC raiz externa

Para gerar uma AC subordinada, faça o seguinte:

  1. Criar um pool de CA
  2. Criar ACs subordinadas assinadas por uma AC raiz externa

Crie uma AC raiz:

Se uma CA raiz não existir, você poderá criar uma no Serviço de CA.

Para criar uma AC raiz, faça o seguinte:

  1. Criar um CA raiz
  2. Crie um pool de AC subordinada usando uma AC raiz existente armazenada no serviço de AC.

Criar uma conta de serviço

Uma conta de serviço ajuda a fornecer as permissões necessárias para a inspeção TLS sem comprometer a segurança das contas de usuário ou da própria instância do Secure Web Proxy.

Se você não tiver uma conta de serviço, crie uma e conceda as permissões necessárias a ela.

  1. Crie uma conta de serviço.

    gcloud beta services identity create \
        --service=networksecurity.googleapis.com \
        --project=PROJECT_ID
    

    Em resposta, a CLI do Google Cloud cria uma conta de serviço chamada service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com.

    Para recuperar o PROJECT_NUMBER usando o PROJECT_ID do projeto do pool de ACs, use o seguinte comando:

        gcloud projects describe PROJECT_ID
            --format="value(projectNumber)"
      

  2. Para a conta de serviço que você criou, conceda permissões para gerar certificados com o pool de AC.

    gcloud privateca pools add-iam-policy-binding CA_POOL \
        --member='serviceAccount:SERVICE_ACCOUNT' \
        --role='roles/privateca.certificateManager' \
        --location='REGION'
    

Configurar o proxy da Web seguro para inspeção de TLS

Só prossiga com as tarefas desta seção depois de concluir as tarefas de pré-requisito listadas na seção Antes de começar.

Para configurar a inspeção de TLS, conclua as tarefas nas seções a seguir.

Criar uma política de inspeção de TLS

Console

  1. No console do Google Cloud, acesse a página Políticas de inspeção TLS.

    Acessar as políticas de inspeção TLS

  2. No menu do seletor de projetos, escolha seu projeto.

  3. Clique em Criar política de inspeção de TLS.

  4. Em Nome, digite um nome.

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

  6. Na lista Região, selecione a região em que você quer criar a política de inspeção de TLS.

  7. Na lista Pool de AC, selecione o pool de AC do qual você quer criar os certificados.

    Se você não tiver configurado um pool de AC, clique em Novo pool e siga as instruções em Criar um pool de AC.

  8. Opcional: na lista Versão mínima de TLS, selecione a versão mínima de TLS compatível com a política.

  9. Em Configuração de confiança, selecione uma das seguintes opções:

    • Somente ACs públicas: selecione essa opção se você quiser confiar em servidores com certificados assinados publicamente.
    • Somente ACs particulares: selecione essa opção se você quiser confiar em servidores com certificados assinados de modo particular.

      Na lista Configuração de confiança particular, selecione a configuração com o repositório de confiança definido que será usado para usar os certificados de servidor upstream confiáveis. Para mais informações sobre a criação de uma configuração de confiança, consulte Criar uma configuração de confiança.

    • ACs públicas e particulares: selecione essa opção se você quiser usar ACs públicas e particulares.

  10. Opcional: na lista Perfil do pacote de criptografia, selecione o tipo de perfil TLS. É possível escolher ��um dos seguintes valores:

    • Compatível: permite que o conjunto mais amplo de clientes negociem TLS, incluindo aqueles compatíveis apenas com recursos desatualizados de TLS.
    • Moderno: compatível com um amplo conjunto de recursos de TLS, permitindo que clientes modernos negociem TLS.
    • Restrito: compatível com um conjunto reduzido de recursos de TLS para cumprir requisitos de conformidade mais rigorosos.
    • Personalizado: permite selecionar recursos de TLS individualmente.

      Na lista Pacotes de criptografia, selecione os pacotes de criptografia compatíveis com o perfil personalizado.

  11. Clique em Criar.

gcloud

  1. Crie o arquivo TLS_INSPECTION_FILE.yaml. Substitua TLS_INSPECTION_FILE pelo nome de arquivo necessário.

  2. Adicione o seguinte código ao arquivo YAML para configurar a TlsInspectionPolicy necessária:

    name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL
    

    Substitua:

    • PROJECT_ID: ID do projeto
    • REGION: região em que a política será criada
    • TLS_INSPECTION_NAME: nome da política de inspeção TLS do Secure Web Proxy
    • CA_POOL: nome do pool de ACs em que os certificados serão criados.

    O pool de CAs precisa estar na mesma região.

Importar a política de inspeção de TLS

Importe a política de inspeção de TLS que você criou na etapa anterior:

gcloud network-security tls-inspection-policies import TLS_INSPECTION_NAME \
    --source=TLS_INSPECTION_FILE.yaml \
    --location=REGION

Adicionar a política de inspeção de TLS à política de segurança

Console

Criar a política de proxy da Web

  1. No Console do Google Cloud, acesse a página Segurança de rede.

    Acesse Segurança de rede

  2. Clique em Proxy seguro da Web.

  3. Clique na guia Políticas.

  4. Clique em Criar uma política.

  5. Digite um nome para a política que você quer criar, como myswppolicy.

  6. Insira uma descrição da política, como My new swp policy.

  7. Na lista Regiões, selecione a região em que você quer criar a política do Secure Web Proxy.

  8. Para configurar a inspeção TLS, selecione Configurar inspeção TLS.

  9. Na lista Política de inspeção da TLS, selecione a política de inspeção da TLS que você criou.

  10. Se você quiser criar regras para a política, clique em Continuar e em Adicionar regra. Saiba mais em Criar regras do Secure Web Proxy.

  11. Clique em Criar.

Criar regras do Secure Web Proxy

  1. No Console do Google Cloud, acesse a página Segurança de rede.

    Acesse Segurança de rede

  2. Clique em Proxy seguro da Web.

  3. No menu do seletor de projetos, selecione o ID da organização ou a pasta que contém a política.

  4. Clique no nome da sua política.

  5. Clique em Adicionar regra.

  6. Preencha os campos da regra:

    1. Nome
    2. Descrição
    3. Status
    4. Prioridade: a ordem de avaliação numérica da regra. As regras são avaliadas da prioridade mais alta para a mais baixa, em que 0 é a mais alta.
    5. Na seção Ação, especifique se as conexões que correspondem à regra são permitidas (Permitir) ou negadas (Negar).
    6. Na seção Correspondência de sessão, especifique os critérios para corresponder à sessão. Para mais informações sobre a sintaxe de SessionMatcher, consulte a referência da linguagem de correspondência do CEL.
    7. Para ativar a inspeção de TLS, selecione Ativar inspeção de TLS.
    8. Na seção Correspondência de aplicativo, especifique os critérios para corresponder à solicitação. Se você não ativar a regra para a inspeção TLS, a solicitação só poderá corresponder ao tráfego HTTP.
    9. Clique em Criar.
  7. Clique em Adicionar regra para adicionar outra regra.

  8. Clique em Criar para criar a política.

Configurar um proxy da Web

  1. No Console do Google Cloud, acesse a página Segurança de rede.

    Acesse Segurança de rede

  2. Clique em Proxy seguro da Web.

  3. Clique na guia Proxies da Web.

  4. Clique em Configurar um proxy da Web.

  5. Insira um nome para o proxy da Web que você quer criar, como myswp.

  6. Insira uma descrição do proxy da Web, como My new swp.

  7. Na lista Regiões, selecione a região em que você quer criar o proxy da Web.

  8. Na lista Rede, selecione a rede em que você quer criar o proxy da Web.

  9. Na lista Sub-rede, selecione a sub-rede em que você quer criar o proxy da Web.

  10. Digite o endereço IP do proxy da Web.

  11. Na lista Certificado, selecione o certificado que você quer usar para criar o proxy da Web.

  12. Na lista Política, selecione a política que você criou para associar o proxy da Web.

  13. Clique em Criar.

Cloud Shell

  1. Crie o arquivo policy.yaml:

      description: basic Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
      tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    
  2. Crie a política do Secure Web Proxy:

      gcloud network-security gateway-security-policies import policy1 \
          --source=policy.yaml --location=REGION
    
  3. Crie o arquivo rule.yaml:

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-example-com
      description: Allow example.com
      enabled: true
      priority: 1
      basicProfile: ALLOW
      sessionMatcher: host() == 'example.com'
      applicationMatcher: request.path.contains('index.html')
      tlsInspectionEnabled: true
    
  4. Crie a regra da política de segurança:

      gcloud network-security gateway-security-policies rules import allow-example-com \
          --source=rule.yaml \
          --location=REGION \
          --gateway-security-policy=policy1
    
  5. Para anexar uma política de inspeção de TLS a uma política de segurança existente, crie o arquivo POLICY_FILE.yaml. Substitua POLICY_FILE pelo nome do arquivo.

      description: My Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
      tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    

A seguir