Ativar inspeção TLS

Nesta página, descrevemos como ativar a inspeção da 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 TLS, consulte Visão geral da inspeção TLS.

Antes de começar

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

Ativar o Certificate Authority Service

O Secure Web Proxy usa o Certificate Authority Service 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 ACs (autoridades certificadoras) é uma coleção de várias ACs com uma política de emissão de certificados e uma política do Identity and Access Management (IAM) comuns. Os pools de CA fornecem a capacidade de alternar as cadeias de confiança sem nenhuma interrupção ou inatividade dos payloads delas.

É preciso criar um pool de CAs antes de usar o serviço de CA. Esta seção orienta você pelas permissões necessárias para concluir essa tarefa e descreve como criar um pool de CAs.

Para gerar certificados, a inspeção TLS usa uma conta de serviço separada para cada projeto chamada service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com. Verifique se você concedeu permissões a essa conta de serviço para usar seu pool de CAs. 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 CAs, use o seguinte comando:

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

Para criar o pool, use o gcloud privateca pools create comando e especifique o ID do pool subordinado, a camada, 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 CAs
  • TIER: camada do pool de CAs, devops ou enterprise. Recomendamos que você crie o pool de CAs na camada devops , porque não é necessário rastrear certificados emitidos individualmente.
  • PROJECT_ID: ID do projeto do pool de CAs
  • REGION: região em que o pool de CAs será criado

Configurar uma assinatura de CA intermediária local

Para ativar o modo de emissão de certificados, você deve definir o valor de isCa como true.LOCAL_INTERMEDIATE_CA_SIGNING

  1. Crie o arquivo ca-issuance-policy.yaml com a seguinte configuração:

    issuancePolicy:
      baselineValues:
        caOptions:
          isCa: true
        keyUsage:
          baseKeyUsage:
            certSign: true
            crlSign: true
          extendedKeyUsage:
            serverAuth: true
    
  2. Ao criar o pool de CAs, especifique o arquivo de política de emissão.

    gcloud privateca pools create SUBORDINATE_POOL_ID \
        --tier=TIER \
        --project=PROJECT_ID \
        --location=REGION \
        --issuance-policy-file=ca-issuance-policy.yaml
    

    Substitua:

    • SUBORDINATE_POOL_ID: nome do pool de CAs
    • TIER: camada do pool de CAs, devops ou enterprise. Recomendamos que você crie o pool de CAs na camada devops , porque não é necessário rastrear certificados emitidos individualmente.
    • PROJECT_ID: ID do projeto do pool de CAs
    • REGION: região em que o pool de CAs será criado

Criar um pool de CAs subordinadas

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

Para criar um pool de CAs subordinadas, use um dos seguintes métodos.

Criar um pool de CAs subordinadas usando uma CA raiz armazenada no Certificate Authority Service

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

  1. Criar um pool de CAs
  2. Criar CAs subordinadas em um pool de CAs

Criar um pool de CAs subordinadas usando uma CA raiz armazenada externamente

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

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

Criar uma CA raiz

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

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

  1. Criar um CA raiz
  2. Criar um pool de CAs subordinadas usando uma CA raiz armazenada no serviço de CA

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 suas contas de usuário ou da 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 Google Cloud CLI 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 CAs, 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 seu pool de CAs.

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

Configurar o Secure Web Proxy para inspeção TLS

Você só poderá prosseguir 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 Google Cloud console, 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 TLS.

  4. No campo Nome, insira um nome para a política.

  5. Opcional: no campo Descrição, insira uma descrição para a política.

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

  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 CAs, clique em Novo pool e siga as instruções na seção Criar um pool de CAs.

  8. 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
    certificateIssuanceMode: CERTIFICATE_ISSUANCE_MODE
    

    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 CAs em que os certificados são criados. O pool de CAs precisa estar na mesma região.
    • CERTIFICATE_ISSUANCE_MODE: modo opcional para emissão de certificados. É possível especificar um dos seguintes valores:
      • CERTIFICATE_ISSUANCE_MODE_UNSPECIFIED: use essa opção para definir certificateIssuanceMode como o valor padrão de DIRECT_LEAF_PROVISIONING para o Secure Web Proxy
      • LOCAL_INTERMEDIATE_CA_SIGNING: defina esse valor para configurar o Secure Web Proxy para usar o modo de emissão de certificados de assinatura de CA intermediária
      • DIRECT_LEAF_PROVISIONING: defina esse valor para configurar o Secure Web Proxy para usar o provisionamento direto de CA de folha para cada domínio

Importar a política de inspeção TLS

Importe a política de inspeção 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 TLS à política de segurança

Console

Criar a política de proxy da Web

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

    Acessar políticas do SWP

  2. Clique em Criar uma política.

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

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

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

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

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

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

  9. Clique em Criar.

Criar regras do Secure Web Proxy

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

    Acessar políticas do SWP

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

  3. Clique no nome da sua política.

  4. Clique em Adicionar regra.

  5. 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 correspondência da sessão. Para mais informações sobre a sintaxe de SessionMatcher, consulte a referência da linguagem do correspondente CEL.
    7. Para ativar a inspeção TLS, selecione Ativar inspeção TLS.
    8. Na seção Correspondência de aplicativo, especifique os critérios para correspondência da solicitação. Se você não ativar a regra para inspeção TLS, a solicitação só poderá corresponder ao tráfego HTTP.
    9. Clique em Criar.
  6. Clique em Adicionar regra para adicionar outra regra.

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

Configurar um proxy da Web

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

    Acessar proxies da Web

  2. Clique em Criar um proxy da Web seguro.

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

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

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

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

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

  8. Opcional: 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.

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

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

  11. 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 de 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 TLS a uma política de segurança atual, 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