Habilitar la inspección de TLS

En esta página, se describe cómo habilitar la inspección de seguridad de la capa de transporte (TLS) para tu instancia de Secure Web Proxy. Secure Web Proxy ofrece un servicio de inspección de TLS que te permite interceptar el tráfico de TLS, inspeccionar la solicitud encriptada y aplicar políticas de seguridad. Para obtener más información sobre la inspección de TLS, consulta Descripción general de la inspección de TLS.

Antes de comenzar

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

Habilita Certificate Authority Service

Secure Web Proxy usa Certificate Authority Service para generar los certificados que se usan para la inspección de TLS.

Para habilitar el servicio de CA, usa el siguiente comando:

  gcloud services enable privateca.googleapis.com
  

Crear grupo de CA

Un grupo de autoridad certificadora (AC) es un conjunto de varias AC con una política común de emisión de certificados y la política de Identity and Access Management (IAM). Los grupos de CA ofrecen la capacidad de rotar cadenas de confianza sin interrupciones ni tiempos de inactividad en las cargas útiles.

Debes crear un grupo de CA antes de poder usar el servicio de CA para crear una CA. En esta sección, se te guiará por los permisos que necesitas para completar esta tarea y, luego, se describe cómo crear un grupo de CA.

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

Para recuperar el PROJECT_NUMBER con el PROJECT_ID del proyecto del grupo de CA, usa el siguiente comando:

gcloud projects describe PROJECT_ID
    --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

Reemplaza lo siguiente:

  • SUBORDINATE_POOL_ID: Es el nombre del grupo de CA
  • TIER: Es el nivel del grupo de CA, ya sea devops o enterprise. Te recomendamos que crees el grupo de CA en el nivel devops , ya que no es necesario hacer un seguimiento de los certificados emitidos de forma individual.
  • PROJECT_ID: Es el ID del proyecto del grupo de CA
  • REGION: Es la región en la que se creará el grupo de CA

Configura una firma de CA intermedia local

Para habilitar el LOCAL_INTERMEDIATE_CA_SIGNING modo de emisión de certificados, debes establecer el valor de isCa en true.

  1. Crea el archivo ca-issuance-policy.yaml con la siguiente configuración:

    issuancePolicy:
      baselineValues:
        caOptions:
          isCa: true
        keyUsage:
          baseKeyUsage:
            certSign: true
            crlSign: true
          extendedKeyUsage:
            serverAuth: true
    
  2. Cuando crees el grupo de CA, especifica el archivo de política de emisión.

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

    Reemplaza lo siguiente:

    • SUBORDINATE_POOL_ID: Es el nombre del grupo de CA
    • TIER: Es el nivel del grupo de CA, ya sea devops o enterprise. Te recomendamos que crees el grupo de CA en el devops nivel, ya que no es necesario hacer un seguimiento de los certificados emitidos de forma individual.
    • PROJECT_ID: Es el ID del proyecto del grupo de CA
    • REGION: Es la región en la que se creará el grupo de CA

Crea un grupo de CA subordinado

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

Para crear un grupo de CA subordinado, usa uno de los siguientes métodos.

Crea un grupo de CA subordinado con una CA raíz existente almacenada en Certificate Authority Service

Para generar una CA subordinada, haz lo siguiente:

  1. Crea un grupo de CA.
  2. Crea AC subordinadas dentro de un grupo de CA.

Crea un grupo de CA subordinado con una CA raíz existente que se encuentra de forma externa

Para generar una CA subordinada, haz lo siguiente:

  1. Crea un grupo de CA.
  2. Crea AC subordinadas firmadas por una CA raíz externa.

Crea una CA raíz

Si no existe una CA raíz, puedes crear una dentro del servicio de CA.

Para crear una CA raíz, haz lo siguiente:

  1. Crea una CA raíz.
  2. Crea un grupo de CA subordinado con una CA raíz existente almacenada en el servicio de CA.

Crea una cuenta de servicio

Una cuenta de servicio ayuda a proporcionar los permisos necesarios para la inspección de TLS sin comprometer la seguridad de tus cuentas de usuario ni la instancia de Secure Web Proxy.

Si no tienes una cuenta de servicio, debes crear una y, luego, otorgar 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, Google Cloud CLI crea una cuenta de servicio llamada service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com.

    Para recuperar el PROJECT_NUMBER con el PROJECT_ID del proyecto del grupo de CA, usa el siguiente comando:

    gcloud projects describe PROJECT_ID
        --format="value(projectNumber)"
    
  2. Para la cuenta de servicio que creaste, otorga permisos para generar certificados con tu grupo de CA.

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

Configura Secure Web Proxy para la inspección de TLS

Solo puedes continuar con las tareas de esta sección después de completar las tareas de requisitos previos 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 el campo Nombre, ingresa un nombre para la política.

  5. Opcional: En el campo Descripción, ingresa una descripción para la política.

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

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

    Si no configuraste un grupo de CA, haz clic en Nuevo grupo y sigue las instrucciones de la sección Crea un grupo de CA.

  8. Haz clic en Crear.

gcloud

  1. Crea el archivo TLS_INSPECTION_FILE.yaml. Reemplaza TLS_INSPECTION_FILE por el nombre de archivo requerido.

  2. Agrega el siguiente código al archivo YAML para configurar la TlsInspectionPolicy requerida:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto
    • REGION: La región en la que se creará la política
    • TLS_INSPECTION_NAME: El nombre de la política de inspección de TLS de Secure Web Proxy
    • CA_POOL: El nombre del grupo de CA desde el que se crean los certificados. El grupo de CA debe existir dentro de la misma región.
    • CERTIFICATE_ISSUANCE_MODE: Es el modo opcional para la emisión de certificados. Puedes especificar uno de los siguientes valores:
      • CERTIFICATE_ISSUANCE_MODE_UNSPECIFIED: Úsalo para establecer certificateIssuanceMode en su valor predeterminado de DIRECT_LEAF_PROVISIONING para Secure Web Proxy.
      • LOCAL_INTERMEDIATE_CA_SIGNING: Establece este valor para configurar Secure Web Proxy para que use el modo de emisión de certificados de firma de CA intermedia.
      • DIRECT_LEAF_PROVISIONING: Establece este valor para configurar Secure Web Proxy para que use el aprovisionamiento directo de CA de hoja para cada dominio.

Importa la política de inspección de TLS

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

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

Agrega la política de inspección de TLS a la política de seguridad

Console

Crea 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. Ingresa un nombre para la política que deseas crear, como myswppolicy.

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

  5. En la lista Regiones, selecciona la región en la que deseas crear la política de Secure Web Proxy.

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

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

  8. Si deseas crear reglas para tu política, haz clic en Continuar y, luego, en Agregar regla. Para obtener más información, consulta Crea reglas de Secure Web Proxy.

  9. Haz clic en Crear.

Crea 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ú desplegable del selector de proyectos, selecciona el ID de la organización o la carpeta que contenga la política.

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

  4. Haz clic en Agregar regla.

  5. Propaga los campos de la regla:

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

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

Configura un proxy web

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

    Ir a Proxies web

  2. Haz clic en Crear un proxy web seguro.

  3. Ingresa un nombre para el proxy web que deseas crear, como myswp.

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

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

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

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

  8. Opcional: Ingresa la dirección IP de Secure Web Proxy. Puedes ingresar una dirección IP del rango de direcciones IP de Secure Web Proxy que residen en la subred que creaste en el paso anterior. Si no ingresas la dirección IP, tu instancia de Secure Web Proxy elige automáticamente una dirección IP de la subred seleccionada.

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

  10. En la lista Política, selecciona la política que creaste 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 Secure Web Proxy:

      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 la 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 de TLS a una política de seguridad existente crea el archivo POLICY_FILE.yaml. Reemplaza POLICY_FILE por tu nombre de 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
    

Próximos pasos