Configurar la inspección TLS

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

Antes de empezar

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

Habilitar el servicio de autoridad de certificación

Cloud NGFW usa el servicio de autoridades de certificación para generar autoridades de certificación (CAs) intermedias. Cloud NGFW usa estas CAs intermedias para generar los certificados que se utilizan en la inspección TLS.

Puedes habilitar la API de servicio de CA mediante la consola de Google Cloud :

Roles required to enable APIs

To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

Enable the API

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

   gcloud services enable privateca.googleapis.com
  

Habilitar Gestor de certificados

Cloud NGFW usa Certificate Manager para crear configuraciones de confianza. Si no quieres usar configuraciones de confianza, sáltate este paso.

Puedes habilitar la API Certificate Manager mediante la consola: Google Cloud

Roles required to enable APIs

To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

Enable the API

Para habilitar Certificate Manager con la CLI de Google Cloud, usa el siguiente comando:

   gcloud services enable certificatemanager.googleapis.com
  

Crear una configuración de confianza

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

  1. Crea un grupo de autoridades de certificación.

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

  2. Crea una AC raíz con el grupo de ACs que has creado anteriormente.

    También puedes usar una AC raíz externa creando una AC subordinada en el servicio de AC. La CA raíz externa debe firmar esta CA subordinada. Para que Cloud NGFW use la CA, las CAs raíz y subordinada del grupo de CAs deben tener una longitud de ruta de al menos uno. El campo pathLenConstraint de un certificado de CA especifica la longitud de la ruta. Este campo define el número máximo de certificados de AC subordinados que pueden existir en una ruta de certificación por debajo del certificado de AC actual.

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

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

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

    Haz los cambios siguientes:

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

Esta configuración de confianza se usa para crear una política de inspección TLS.

Crear un grupo de autoridades de certificación

Debes crear un grupo de autoridades de certificación para poder usar el servicio de AC y crear una AC.

Para crear un grupo de autoridades de certificación, siga las instrucciones que se indican en el artículo Crear grupos de autoridades de certificación.

Este grupo de ACs se usa para crear una política de inspección TLS.

Crear una CA raíz

Si no tienes una CA raíz, puedes crearla en el servicio de CA. Para crear una AC raíz, sigue las instrucciones de Crear una AC raíz y usa el mismo grupo de ACs que has creado antes (consulta la sección Crear un grupo de ACs).

Para usar una CA raíz externa, crea una CA subordinada en el 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 al menos 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 0. Esto tiene que cambiar. Por el momento, esto no se puede hacer a través de la consola, sino solo mediante los comandos de CLI de Google Cloud proporcionados por CAS con algunas de las siguientes marcas:

  • Marca --extended-key-usages: especifica los usos mejorados de la clave del certificado.

  • --key-usages: especifica los usos de la clave del certificado.

  • Marca --max-chain-length: define la profundidad máxima de las ACs subordinadas permitidas en esta AC para un certificado de 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"
  

Haz los cambios siguientes:

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

De esta forma, se crea la CSR y se 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 AC subordinada, debes firmar la CSR después de crearla.

Crear una cuenta de servicio

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

  1. Crea una cuenta de servicio:

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

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

    La CLI de Google Cloud crea una cuenta de servicio llamada service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com. En este caso, PROJECT_NUMBER es el identificador único de la PROJECT_ID que ha proporcionado en el comando anterior.

  2. Concede permiso a tu cuenta de servicio para generar certificados que usen tu grupo de ACs:

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

    Haz los cambios siguientes:

    • CA_POOL: el nombre del grupo de AC del que se van a crear los certificados
    • SERVICE_ACCOUNT: el nombre de la cuenta de servicio que has creado en el paso anterior
    • LOCATION: la región del grupo de autoridades de certificación

Configurar la inspección TLS

Antes de realizar las tareas de esta sección, asegúrate de haber configurado tus certificados o de haber completado las tareas previas que se indican en la sección Antes de empezar.

Para configurar la inspección TLS, completa las tareas que se indican en las siguientes secciones.

Crear una política de inspección TLS

Consola

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

    Ir a las políticas de inspección TLS

  2. En el menú de selección de proyectos, elige el tuyo.

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

  4. En Name (Nombre), escribe un nombre.

  5. Opcional: En el campo Descripción, escribe una descripción.

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

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

    Si no tienes configurado ningún grupo de ACs, haz clic en Nuevo grupo y sigue las instrucciones de Crear un grupo de ACs.

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

  9. En Configuración de confianza, seleccione una de las siguientes opciones:

    • Solo CAs públicas: selecciona esta opción si quieres confiar en servidores con certificados firmados públicamente.
    • Solo ACs privadas: selecciona esta opción si quieres confiar en 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 quieras usar para confiar en los certificados de servidor upstream. Para obtener más información sobre cómo crear una configuración de confianza, consulta Crear una configuración de confianza.

    • Autoridades de certificación públicas y privadas: selecciona esta opción si quieres usar autoridades de certificación públicas y privadas.

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

    • Compatible: permite que la mayor variedad de clientes, incluidos los que solo admiten funciones de TLS obsoletas, negocien TLS.
    • Moderna: admite un amplio conjunto de funciones de TLS, lo que permite a los clientes modernos negociar TLS.
    • Restringido: admite un conjunto reducido de funciones de TLS destinado a satisfacer requisitos de cumplimiento más estrictos.
    • Personalizado: te permite seleccionar funciones de TLS de forma individual.

      En la lista Paquetes de algoritmos de cifrado, selecciona el nombre de los paquetes de algoritmos de cifrado que admite el perfil personalizado.

  11. Haz clic en Crear.

gcloud

  1. Crea un archivo YAML TLS_INSPECTION_FILE.yaml. Sustituye TLS_INSPECTION_FILE por el nombre de archivo que quieras.

  2. Añade el siguiente código al archivo YAML para configurar la política de inspección 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
    

    Haz los cambios siguientes:

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

      El pool de CAs debe estar en la misma región.

    • TLS_VERSION: 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: argumento opcional que especifica el tipo de perfil de TLS.

      Puedes seleccionar uno de los siguientes valores:

      • PROFILE_COMPATIBLE: permite que la cartera de clientes más amplia, incluidos los clientes que solo admiten funciones TLS obsoletas, negocie TLS.
      • PROFILE_MODERN: admite un amplio conjunto de funciones de TLS, lo que permite a los clientes modernos negociar TLS.
      • PROFILE_RESTRICTED: admite un conjunto reducido de funciones de TLS destinado a satisfacer requisitos de cumplimiento más estrictos.
      • PROFILE_CUSTOM: te permite seleccionar funciones de TLS de forma individual.
    • CIPHER_NAME: argumento opcional para especificar el nombre del paquete de cifrado que admite el perfil personalizado

      Este argumento solo se especifica cuando el tipo de perfil es PROFILE_CUSTOM.

    • excludePublicCaSet: una marca opcional para incluir o excluir un conjunto de CAs públicas. De forma predeterminada, esta marca tiene el valor "false". Si esta marca se define como true, las conexiones TLS no confían en los servidores de CA públicos. En este caso, Cloud NGFW solo puede establecer conexiones TLS con servidores que tengan certificados firmados por ACs en la configuración de confianza.

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

  3. Importa la política de inspección TLS que has creado en la sección Crear una política de inspección TLS.

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

    Haz los cambios siguientes:

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

Ver los detalles de una política de inspección TLS

Puede ver información sobre la política de inspección TLS que ha creado en su proyecto.

Consola

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

    Ir a las políticas de inspección TLS

  2. En el menú de selección de proyectos, elige el tuyo.

  3. Las políticas de inspección TLS se muestran en la sección Inspecciones TLS.

  4. Para ver los detalles, haz clic en el nombre de tu política de inspección de TLS.

Añadir una política de inspección TLS a una asociación de endpoint de cortafuegos

Para añadir la política de inspección TLS a una asociación de endpoint de cortafuegos, sigue los pasos que se indican en Crear asociaciones de endpoint de cortafuegos.

Configurar reglas de política de cortafuegos con inspección TLS

Para habilitar la inspección de TLS en tu red de nube privada virtual (VPC), define la marca --tls-inspect en la regla de tu política de cortafuegos. Esta marca indica que la inspección TLS se puede realizar cuando se aplica el grupo de perfiles de seguridad.

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

Para obtener más información sobre cómo habilitar la marca --tls-inspect en las reglas de políticas de cortafuegos de red globales, consulte Crear reglas de cortafuegos de red globales.

Gestionar la política de inspección TLS

Puede enumerar, actualizar y eliminar políticas de inspección de TLS en su proyecto.

Listar todas las políticas de inspección TLS

Puedes enumerar todas las políticas de inspección de TLS de un proyecto.

Consola

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

    Ir a las políticas de inspección TLS

  2. En el menú de selección de proyectos, elige el tuyo.

  3. Las políticas de inspección TLS se muestran en la sección Inspecciones TLS.

gcloud

Para ver una lista de todas las políticas de inspección TLS, usa el comando gcloud network-security tls-inspection-policies list:

gcloud network-security tls-inspection-policies list \
    --project PROJECT_ID \
    --location REGION

Haz los cambios siguientes:

  • PROJECT_ID: el ID de proyecto de la política de inspección TLS
  • REGION: el nombre de la región para la que quiere listar la política de inspección de TLS

Editar una política de inspección TLS

Puedes modificar una política de inspección TLS de tu proyecto.

Consola

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

    Ir a las políticas de inspección TLS

  2. En el menú de selección de proyectos, elige el tuyo.

  3. Las políticas de inspección TLS se muestran en la sección Inspecciones TLS.

  4. Para editar una política, haz clic en el nombre de la política de inspección TLS.

  5. Haz clic en Editar.

  6. Modifica los campos obligatorios. Para obtener más información sobre cada campo, consulta Crear una política de inspección TLS.

  7. Haz clic en Guardar.

Eliminar una política de inspección TLS

Puedes eliminar una política de inspección de TLS de tu proyecto. Sin embargo, si la política de inspección de TLS se hace referencia en una asociación de endpoint de cortafuegos, no se puede eliminar.

Consola

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

    Ir a las políticas de inspección TLS

  2. En el menú de selección de proyectos, elige el tuyo.

  3. Las políticas de inspección TLS se muestran en la sección Inspecciones TLS.

  4. Para eliminar una política de inspección de TLS, marque la casilla situada junto a su nombre.

  5. Haz clic en Eliminar.

  6. Vuelve a hacer clic en Eliminar.

gcloud

Para eliminar una política de inspección TLS, usa el comando gcloud network-security tls-inspection-policies delete:

gcloud network-security tls-inspection-policies delete \
    projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME \
    --location REGION

Haz los cambios siguientes:

  • PROJECT_ID: el ID de proyecto de la política de inspección TLS
  • TLS_INSPECTION_NAME: el nombre de la inspección TLS
  • REGION: región en la que se crea la política de inspección TLS

Siguientes pasos