Configurar la inspección de TLS

En esta página, se describe cómo configurar la inspección de seguridad de la capa de transporte (TLS) para Cloud Next Generation Firewall.

Antes de comenzar

Antes de configurar la inspección de TLS, completa las tareas de las siguientes secciones.

Habilita Certificate Authority Service

Cloud NGFW usa Certificate Authority Service para generar autoridades certificadas (CA) intermedias. Cloud NGFW usa estas CA intermedias a fin de generar los certificados que se usan para la inspección de TLS.

Puedes habilitar la API de CA Service con la consola: Google Cloud

Roles necesarios para habilitar las APIs

Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

Habilitar la API

Para habilitar el servicio de AC con Google Cloud CLI, usa el siguiente comando:

   gcloud services enable privateca.googleapis.com
  

Habilita el Administrador de certificados

Cloud NGFW usa el Administrador de certificados para crear archivos de configuración de confianza. Si no deseas usar los parámetros de configuración de confianza, omite este paso.

Puedes habilitar la API de Certificate Manager con la Google Cloud consola:

Roles necesarios para habilitar las APIs

Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

Habilitar la API

Para habilitar el Administrador de certificados con Google Cloud CLI, usa el siguiente comando:

   gcloud services enable certificatemanager.googleapis.com
  

Crea una configuración de confianza

Este paso es opcional. Para crear una configuración de confianza, sigue los pasos de esta sección.

  1. Crea un grupo de CA.

    El grupo de CA que creas en este paso es diferente del que creas para configurar la política de inspección de TLS.

  2. Crea una CA raíz mediante el grupo de CA que creaste antes.

    Como alternativa, usa una CA raíz externa existente mediante la creación de una CA subordinada dentro del servicio de CA. La CA raíz externa debe firmar esta CA subordinada. Para que Cloud NGFW use la CA, las CA raíz y subordinada del grupo de CA deben tener una longitud de ruta de acceso de al menos uno. El campo pathLenConstraint de un certificado de la AC especifica la longitud de la ruta de acceso. Este campo define la cantidad máxima de certificados de AC subordinados que pueden existir en una ruta de certificación debajo del certificado de la AC actual.

  3. Crea un certificado con una clave generada automáticamente. Usa el mismo nombre de grupo de CA que creaste antes.

  4. Obtén el certificado público de la CA a partir del certificado creado.

    $PEM-CERT=$(gcloud privateca roots describe ROOT_CA_NAME \
       --location LOCATION \
       --project PROJECT_ID \
       --pool CA_POOL \
       --format "value(pemCaCertificates)")
    

    Reemplaza lo siguiente:

    • ROOT_CA_NAME: el nombre de la CA raíz
    • LOCATION: la ubicación de la CA raíz
    • PROJECT_ID: el ID del proyecto de la CA raíz
    • CA_POOL: el nombre del grupo de CA desde el que se crearán los certificados
  5. Crea e importa una configuración de confianza con el PEM-CERT que se obtuvo en el paso anterior. Si usas tu propia CA, usa el certificado público que se obtuvo de tu CA.

Usa esta configuración de confianza para crear una política de inspección de TLS.

Crear grupo de CA

Debes crear un grupo de CA antes de poder usar el servicio de CA para crear una CA.

Para crear un grupo de CA, sigue las instrucciones en Crea grupos de CA.

Usa este grupo de CA para crear una política de inspección de TLS.

Crea una AC raíz:

Si no tienes una CA raíz existente, puedes crear una dentro del servicio de CA. Para crear una CA raíz, sigue las instrucciones en Cómo crear una CA raíz, y usa el mismo grupo de CA que creaste antes (consulta la sección Crea un grupo de CA).

Para usar una CA raíz externa existente, crea una CA subordinada dentro del servicio de CA, firmada por tu CA raíz externa.

En NGFW Enterprise, los certificados subordinados requieren una restricción de longitud de ruta de acceso de no menos de 1 para poder generar una CA intermedia. De forma predeterminada, el certificado subordinado y la CSR se generan con una restricción de longitud de ruta de acceso de 0. Esto debe cambiarse. Por el momento, esto no se puede hacer a través de la consola y solo a través de los comandos de Google Cloud CLI proporcionados por CAS con algunas de las siguientes marcas

  • Marca --extended-key-usages: Especifica los usos de clave extendidos para el certificado.

  • Marca --key-usages: Especifica los usos de clave para el certificado.

  • Marca --max-chain-length: Define la profundidad máxima de las AC subordinadas permitidas en esta AC para un certificado de la AC.

gcloud

gcloud privateca subordinates create SUBORDINATE_CA_ID \
    --pool=SUBORDINATE_POOL_ID \
    --location=LOCATION \
    --create-csr --csr-output-file=FILE_NAME \
    --key-algorithm="ec-p256-sha256" \
    --subject="CN=Example Server TLS CA, O=Example LLC
    --key-algorithm=rsa-pss-4096-sha256 \
    --key-usages=cert_sign,crl_sign \
    --extended-key-usages=server_auth \
    --max-chain-length=1"
  

Reemplaza lo siguiente:

  • SUBORDINATE_CA_ID: Es el identificador único de la CA subordinada.
  • SUBORDINATE_POOL_ID: Es el nombre del grupo de CA.
  • LOCATION: Es la ubicación del grupo de CA.
  • FILE_NAME: Es el nombre del archivo en el que se escribe la CSR codificada en PEM.

Esto crea la CSR y devuelve lo siguiente

    Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID] and saved CSR to FILE_NAME.
    

Para activar la CA subordinada, debes firmar la CSR después de crearla.

Crea una cuenta de servicio

Si no tienes una cuenta de servicio, debes crear una y otorgar los permisos necesarios.

  1. Crear una cuenta de servicio:

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

    Reemplaza PROJECT_ID por el ID del proyecto de la cuenta de servicio.

    Google Cloud CLI crea una cuenta de servicio llamada service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com. Aquí, PROJECT_NUMBER es el identificador único del PROJECT_ID que proporcionaste en el comando anterior.

  2. Otorga permiso a tu cuenta de servicio para generar certificados que usen tu grupo de CA:

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

    Reemplaza lo siguiente:

    • CA_POOL: el nombre del grupo de CA desde el que se crearán los certificados
    • SERVICE_ACCOUNT: el nombre de la cuenta de servicio que creaste en el paso anterior
    • LOCATION: la región del grupo de CA

Configurar la inspección de TLS

Antes de continuar con las tareas de esta sección, asegúrate de haber configurado tus certificados o de haber completado los requisitos que se indican en la sección Antes de comenzar.

Para configurar la inspección de TLS, completa las tareas de las siguientes secciones.

Crea una política de inspección de TLS

Console

  1. En la Google Cloud consola de, ve a la página Políticas de inspección de TLS.

    Ir a las políticas de inspección de TLS

  2. En el menú de selección de proyectos, selecciona tu organización.

  3. Haz clic en Crear política de inspección de TLS.

  4. En Nombre, ingresa un nombre.

  5. Opcional: en el campo Descripción, ingresa una descripción.

  6. En la lista Región, selecciona la región en la que deseas crear la política de inspección de TLS.

  7. En la lista Grupo de CA, selecciona el grupo de CA desde el que deseas crear los certificados.

    Si no tienes un grupo de CA configurado, haz clic en Nuevo grupo y sigue las instrucciones en Crea un grupo de CA.

  8. Opcional: En la lista Versión mínima de TLS, selecciona la versión mínima de TLS que admite la política.

  9. Para la Configuración de confianza, selecciona una de las siguientes opciones:

    • Solo en CA públicas: Selecciona esta opción si quieres confiar en los servidores con certificados firmados de forma pública.
    • Solo CA privadas: Selecciona esta opción si quieres confiar en los servidores con certificados firmados de forma privada.

      En la lista Configuración de confianza privada, selecciona la configuración de confianza con el almacén de confianza configurado que se usará para certificados de servidor ascendentes de confianza. Para obtener más información sobre cómo crear una configuración de confianza, consulta Crea una configuración de confianza.

    • CA públicas y privadas: selecciona esta opción si deseas usar CA públicas y privadas.

  10. Opcional: En la lista Perfil del paquete de Cisco, selecciona el tipo de perfil TLS. Puedes elegir uno de los siguientes valores:

    • Compatible: permite que el conjunto más amplio de clientes, incluidos aquellos que solo admitan características de TLS desactualizadas, para negociar TLS.
    • Moderno: compatible con un amplio conjunto de funciones de TLS, lo que permite que los clientes modernos negocien TLS.
    • Restringido: admite un conjunto reducido de funciones SSL destinadas a acatar los requisitos de cumplimiento más estrictos.
    • Personalizado: te permite seleccionar las funciones TLS de forma individual.

      En la lista Conjuntos de algoritmos de cifrado, selecciona el nombre de los conjuntos de algoritmos de cifrado compatibles con el perfil personalizado.

  11. Haz clic en Crear.

gcloud

  1. Crea un archivo YAML TLS_INSPECTION_FILE.yaml. Reemplaza TLS_INSPECTION_FILE por una contraseña de tu elección.

  2. Agrega el siguiente código al archivo YAML para configurar la política de inspección de TLS.

    name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL
    minTlsVersion: TLS_VERSION
    tlsFeatureProfile: PROFILE_TYPECIPHER_NAME
    excludePublicCaSet: `TRUE`|`FALSE`
    trustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME
    

    Reemplaza lo siguiente:

    • PROJECT_ID: es el ID del proyecto de la política de inspección de TLS
    • REGION: es la región en la que se crea la política de inspección de TLS.
    • TLS_INSPECTION_NAME: es el nombre de la política de inspección de TLS
    • CA_POOL: el nombre del grupo de CA desde el que se crearán los certificados

      El grupo de CA debe existir dentro de la misma región.

    • TLS_VERSION: es un argumento opcional que especifica la versión mínima de TLS compatible con Cloud NGFW

      Puedes seleccionar uno de los siguientes valores:

      • TLS_1_0
      • TLS_1_1
      • TLS_1_2
    • PROFILE_TYPE: es un argumento opcional que especifica el tipo de perfil de TLS

      Puedes seleccionar uno de los siguientes valores:

      • PROFILE_COMPATIBLE: permite que el conjunto más amplio de clientes, incluidos aquellos que solo admitan características de TLS desactualizadas, para negociar TLS.
      • PROFILE_MODERN: compatible con un amplio conjunto de funciones de TLS, lo que permite que los clientes modernos negocien TLS.
      • PROFILE_RESTRICTED: admite un conjunto reducido de funciones SSL destinadas a acatar los requisitos de cumplimiento más estrictos.
      • PROFILE_CUSTOM: te permite seleccionar las funciones TLS de forma individual.
    • CIPHER_NAME: es un argumento opcional para especificar el nombre del conjunto de algoritmos de cifrado compatible con el perfil personalizado

      Especificas este argumento solo cuando el tipo de perfil se establece en PROFILE_CUSTOM.

    • excludePublicCaSet: es una marca opcional para incluir o excluir un conjunto de CA públicas. De forma predeterminada, esta marca se configura con el valor "falso". Cuando esta marca se establece como verdadera, las conexiones TLS no confían en servidores de CA públicas. En este caso, Cloud NGFW solo puede realizar conexiones TLS con servidores mediante certificados firmados por CA en la configuración de confianza.

    • TRUST_CONFIG_NAME: es un argumento opcional para especificar el nombre del recurso de configuración de confianza

  3. Importa la política de inspección de TLS que creaste en la sección Crea una política de inspección de TLS.

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

    Reemplaza lo siguiente:

    • TLS_INSPECTION_NAME: es el nombre de la política de inspección de TLS
    • TLS_INSPECTION_FILE: el nombre del archivo YAML de la política de inspección de TLS.

Agrega una política de inspección de TLS a una asociación de extremos de firewall

Para agregar la política de inspección de TLS a una asociación de extremo de firewall, sigue los pasos que se mencionan en Crea asociaciones de extremos de firewall.

Configura reglas de políticas de firewall con inspección de TLS

A fin de habilitar la inspección de TLS para la red de nube privada virtual (VPC), establece la marca --tls-inspect en la regla de política de firewall. Esta marca indica que la inspección de TLS se puede realizar cuando se aplica el grupo de perfil de seguridad.

Para obtener más información sobre cómo habilitar la marca --tls-inspect en las reglas de políticas de firewall jerárquicas, consulta Crea una regla.

Para obtener más información sobre cómo habilitar la marca --tls-inspect en las reglas de políticas de firewall de red globales, consulta Crea una regla.

Próximos pasos