Habilitar la inspección TLS

En esta página se describe cómo habilitar la inspección de Seguridad en la capa de transporte (TLS) en tu instancia de proxy web seguro. El proxy web seguro ofrece un servicio de inspección TLS que te permite interceptar el tráfico de TLS, inspeccionar la solicitud cifrada y aplicar políticas de seguridad. Para obtener más información sobre la inspección TLS, consulta el resumen de la inspección TLS.

Antes de empezar

Antes de configurar tu instancia de Secure Web Proxy para la inspección TLS, completa las tareas que se indican en las siguientes secciones.

Habilitar el servicio de autoridad de certificación

El proxy web seguro usa el servicio de autoridades de certificación para generar los certificados que se utilizan en la inspección TLS.

Para habilitar el Servicio de Autoridades de Certificación, usa el siguiente comando:

  gcloud services enable privateca.googleapis.com
  

Crear un grupo de autoridades de certificación

Un grupo de autoridades de certificación (ACs) es una colección de varias ACs con una política de emisión de certificados y una política de gestión de identidades y accesos (IAM) comunes. Los grupos de AC permiten rotar las cadenas de confianza sin que se produzcan interrupciones ni tiempos de inactividad en sus cargas útiles.

Debes crear un grupo de autoridades de certificación para poder usar CA Service y crear una autoridad de certificación. En esta sección se explican los permisos que necesitas para completar esta tarea y se describe cómo crear un grupo de CAs.

Para generar certificados, la inspección TLS usa una cuenta de servicio independiente para cada proyecto llamada service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com. Asegúrate de que has concedido permisos a esta cuenta de servicio para usar tu grupo de CAs. Si se revoca este acceso, la inspección TLS dejará de funcionar.

Para recuperar el PROJECT_NUMBER mediante el PROJECT_ID del proyecto del grupo de CAs, usa el siguiente comando:

gcloud projects describe <var>PROJECT_ID</var>
    --format="value(projectNumber)"

Para crear el grupo, usa el comando gcloud privateca pools create y especifica el ID del grupo subordinado, el nivel, el ID del proyecto y la ubicación.

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

Haz los cambios siguientes:

  • SUBORDINATE_POOL_ID: nombre del grupo de autoridades de certificación
  • TIER: nivel de CA, devops o enterprise

    Te recomendamos que crees el grupo de CAs en el nivel devops, ya que no es necesario hacer un seguimiento de los certificados emitidos individualmente.

  • PROJECT_ID: ID del proyecto del grupo de ACs

  • REGION: ubicación del grupo de autoridades de certificación

Crear un grupo de ACs subordinadas

Si tienes varios casos de emisión de certificados, puedes crear una AC subordinada para cada uno de ellos. Puedes crear una AC subordinada en un grupo de ACs y la AC raíz firma todas las ACs de ese grupo. Estos certificados se usan para firmar certificados de servidor que se generan para la inspección TLS.

Para crear un grupo de CAs subordinadas, utiliza uno de los siguientes métodos.

Crear un grupo de ACs subordinadas usando una AC raíz almacenada en el servicio de autoridad de certificación

Para generar una autoridad de certificación subordinada, sigue estos pasos:

  1. Crear un grupo de autoridades de certificación
  2. Crear ACs subordinadas en un grupo de ACs

Crear un grupo de ACs subordinadas usando una AC raíz externa

Para generar una autoridad de certificación subordinada, sigue estos pasos:

  1. Crear un grupo de autoridades de certificación
  2. Crear ACs subordinadas firmadas por una AC raíz externa

Crear una CA raíz

Si no existe ninguna CA raíz, puedes crear una en el servicio de CA.

Para crear una CA raíz, siga estos pasos:

  1. Crear una AC raíz
  2. Crear un grupo de ACs subordinadas usando una AC raíz almacenada en el servicio de ACs

Crear una cuenta de servicio

Una cuenta de servicio ayuda a proporcionar los permisos necesarios para la inspección TLS sin poner en riesgo la seguridad de tus cuentas de usuario ni la de tu instancia de proxy web seguro.

Si no tienes una cuenta de servicio, debes crear una y, a continuación, conceder los permisos necesarios a esa cuenta de servicio.

  1. Crea una cuenta de servicio.

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

    En respuesta, la CLI de Google Cloud crea una cuenta de servicio llamada service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com.

    Para recuperar el PROJECT_NUMBER mediante el PROJECT_ID del proyecto del grupo de CAs, usa el siguiente comando:

    gcloud projects describe PROJECT_ID
        --format="value(projectNumber)"
    
  2. En la cuenta de servicio que has creado, concede permisos para generar certificados con tu grupo de ACs.

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

Configurar Secure Web Proxy para la inspección TLS

Solo puedes continuar con las tareas de esta sección después de haber completado las tareas de requisitos previos 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 para 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 has configurado un grupo de autoridades de certificación, haz clic en New Pool (Nuevo grupo) y sigue las instrucciones de Crear un grupo de autoridades de certificación.

  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, selecciona una de las siguientes opciones:

    • Solo ACs 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 cifrado, selecciona los paquetes de cifrado que admite el perfil personalizado.

  11. Haz clic en Crear.

gcloud

  1. Crea el archivo 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 el elemento TlsInspectionPolicy necesario:

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

    Haz los cambios siguientes:

    • PROJECT_ID: ID del proyecto
    • REGION: región en la que se va a crear la política
    • TLS_INSPECTION_NAME: nombre de la política de inspección TLS del proxy web seguro
    • CA_POOL: nombre del grupo de autoridades de certificación a partir del cual se van a crear los certificados

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

Importar la política de inspección TLS

Importa la política de inspección TLS que has creado en el paso anterior:

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

Añadir la política de inspección de TLS a la política de seguridad

Consola

Crear la política de proxy web

  1. En la Google Cloud consola, ve a la página Políticas de SWP.

    Ir a las políticas de SWP

  2. Haz clic en Crear una política.

  3. Introduce el nombre de la política que quieras crear, como myswppolicy.

  4. Introduce una descripción de la política, como My new swp policy.

  5. En la lista Regiones, selecciona la región en la que quieras crear la política de proxy web seguro.

  6. Para configurar la inspección TLS, selecciona Configurar inspección TLS.

  7. En la lista Política de inspección TLS, selecciona la política de inspección TLS que has creado.

  8. Si quiere crear reglas para su política, haga clic en Continuar y, a continuación, en Añadir regla. Para obtener más información, consulta el artículo Crear reglas de proxy web seguro.

  9. Haz clic en Crear.

Crear reglas de Secure Web Proxy

  1. En la Google Cloud consola, ve a la página Políticas de SWP.

    Ir a las políticas de SWP

  2. En el menú de selección de proyectos, selecciona el ID de tu organización o la carpeta que contenga tu política.

  3. Haz clic en el nombre de la política.

  4. Haz clic en Añadir regla.

  5. Rellena los campos de la regla:

    1. Nombre
    2. Descripción
    3. Status
    4. Prioridad: el orden de evaluación numérico de la regla. Las reglas se evalúan de mayor a menor prioridad, donde 0 es la prioridad más alta.
    5. En la sección Acción, especifica si las conexiones que coincidan con la regla se permiten (Permitir) o se deniegan (Denegar).
    6. En la sección Concordancia de sesión, especifique los criterios para que la sesión coincida. Para obtener más información sobre la sintaxis de SessionMatcher, consulta la referencia del lenguaje de coincidencia de CEL.
    7. Para habilitar la inspección TLS, selecciona Habilitar inspección TLS.
    8. En la sección Coincidencia de aplicación, especifica los criterios para que coincida la solicitud. Si no habilitas la regla para la inspección de TLS, la solicitud solo podrá coincidir con el tráfico HTTP.
    9. Haz clic en Crear.
  6. Haz clic en Añadir regla para añadir otra regla.

  7. Haz clic en Crear para crear la política.

Configurar un proxy web

  1. En la Google Cloud consola, ve a la página Proxies web.

    Ve a Proxies web.

  2. Haz clic en Crear un proxy web seguro.

  3. Introduce el nombre del proxy web que quieras crear, como myswp.

  4. Introduce una descripción del proxy web, como My new swp.

  5. En la lista Regiones, selecciona la región en la que quieras crear el proxy web.

  6. En la lista Red, selecciona la red en la que quieras crear el proxy web.

  7. En la lista Subred, selecciona la subred en la que quieras crear el proxy web.

  8. Opcional: Introduce la dirección IP del proxy web seguro. Puedes introducir una dirección IP del intervalo de direcciones IP de Secure Web Proxy que se encuentre en la subred que has creado en el paso anterior. Si no introduces la dirección IP, tu instancia de Secure Web Proxy elegirá automáticamente una dirección IP de la subred seleccionada.

  9. En la lista Certificado, selecciona el certificado que quieras usar para crear el proxy web.

  10. En la lista Política, seleccione la política que ha creado para asociar el proxy web.

  11. Haz clic en Crear.

Cloud Shell

  1. Crea el archivo 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. Crea la política de proxy web seguro:

      gcloud network-security gateway-security-policies import policy1 \
          --source=policy.yaml --location=REGION
    
  3. Crea el archivo 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. Crea la regla de política de seguridad.

      gcloud network-security gateway-security-policies rules import allow-example-com \
          --source=rule.yaml \
          --location=REGION \
          --gateway-security-policy=policy1
    
  5. Para adjuntar una política de inspección TLS a una política de seguridad, crea el archivo POLICY_FILE.yaml. Sustituye POLICY_FILE por el nombre de tu archivo.

      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
    

Siguientes pasos