Usa listas de URLs para crear políticas

En esta página, se explica cómo usar listas de URLs para crear y administrar políticas de acceso detalladas para tu tráfico web saliente dentro de tu instancia del proxy web seguro. En lugar de crear reglas individuales para cada sitio web, las listas de URLs te permiten definir una colección reutilizable y centralizada de dominios, nombres de host y patrones de URL específicos.

Estos son algunos beneficios clave de usar listas de URLs:

  • Simplifica la administración de políticas: Puedes aplicar un gran conjunto de reglas allow o deny con una sola referencia en tu política de seguridad.

  • Aplicar un control preciso: Puedes usar una sintaxis específica para hacer coincidir dominios, subdominios o rutas de URL exactas completas. Esto ayuda a garantizar que tus cargas de trabajo solo puedan acceder a destinos autorizados.

  • Acceso web seguro: Puedes proteger y auditar de manera eficiente el acceso web en todo tu entorno de Google Cloud .

Antes de comenzar

  • Completa los pasos de configuración inicial.

  • Verifica que tengas instalada la versión 406.0.0 o posterior de Google Cloud CLI:

    gcloud version | head -n1
    

    Si tienes instalada una versión anterior de gcloud CLI, actualízala:

    gcloud components update --version=406.0.0
    

Crea una instancia del Proxy web seguro con una política vacía

Para crear una instancia del Proxy web seguro, primero debes crear una política de seguridad vacía y, luego, crear un proxy web que use la política.

Crea una política de seguridad vacía

Console

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

    Ir a Políticas de SWP

  2. Haz clic en Crear una política.

  3. En el campo Nombre, ingresa un nombre para la política, como myswppolicy.

  4. En el campo Descripción, ingresa una descripción para la política, como My new swp policy.

  5. En Regiones, selecciona la región en la que deseas crear la política, como us-central1.

  6. Haz clic en Crear.

Cloud Shell

  1. Usa tu editor de texto preferido para crear un archivo policy.yaml.

  2. Agrega lo siguiente al archivo policy.yaml que creaste:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    Reemplaza lo siguiente:

    • PROJECT_NAME: Nombre de tu proyecto

    • REGION: Es la región en la que se crea tu política, como us-central1.

    • POLICY_NAME: Nombre de la política

    • POLICY_DESCRIPTION: Descripción de tu política

  3. Importa la política de seguridad con el comando gcloud network-security gateway-security-policies import:

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

Crea un proxy web

Console

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

    Ir a Proxies web

  2. Haz clic en Crear un proxy web seguro.

  3. En el campo Nombre, ingresa un nombre para el proxy web, como myswp.

  4. En el campo Descripción, ingresa una descripción para el proxy web, como My new swp.

  5. En Modo de enrutamiento, selecciona la opción Explícito.

  6. En Regiones, selecciona la región en la que deseas crear el proxy web, como us-central1.

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

  8. En Subred, selecciona la subred de VPC que creaste anteriormente como parte de los pasos de configuración inicial.

  9. Opcional: En el campo Dirección IP del proxy web, ingresa la dirección IP del proxy web seguro.

    Puedes ingresar una dirección IP del rango de direcciones IP del proxy web seguro que se encuentra en la subred que creaste en el paso anterior. Si no ingresas la dirección IP, tu instancia de Secure Web Proxy elegirá automáticamente una dirección IP de la subred seleccionada.

  10. En Certificado, selecciona el certificado que deseas usar para crear el proxy web.

  11. En Política, selecciona la política que creaste para asociar el proxy web.

  12. Haz clic en Crear.

Cloud Shell

  1. Usa tu editor de texto preferido para crear un archivo gateway.yaml.

  2. Agrega lo siguiente al archivo gateway.yaml.

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Reemplaza lo siguiente:

    • GATEWAY_NAME: Nombre de esta instancia de Secure Web Proxy

    • GATEWAY_PORT_NUMBERS: Lista de números de puerto para esta puerta de enlace, como [80,443]

    • CERTIFICATE_URLS: Lista de URLs de certificados SSL

    • SUBNETWORK: Subred de VPC que creaste anteriormente como parte de los pasos de configuración inicial

    • GATEWAY_IP_ADDRESS: Es una lista opcional de direcciones IP para tus instancias de Secure Web Proxy dentro de las subredes de proxy que creaste anteriormente en los pasos de configuración inicial.

      Si decides no enumerar direcciones IP, omite el campo para permitir que el proxy web elija una dirección IP por ti.

  3. Crea la instancia del Proxy web seguro con el comando gcloud network-services gateways import:

    gcloud network-services gateways import GATEWAY_NAME \
        --source=gateway.yaml \
        --location=REGION
    

Prueba la conectividad

Para probar la conectividad, usa el comando curl desde cualquier instancia de máquina virtual (VM) dentro de tu red de nube privada virtual (VPC):

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure

Si todo funciona correctamente, tu instancia del proxy web seguro devolverá un código de estado 403 Forbidden. Este error confirma lo siguiente:

  • La instancia del Proxy web seguro se implementó correctamente y recibe tráfico de forma activa.

  • La política de Proxy web seguro aplica correctamente la postura de seguridad predeterminada de rechazar todo el tráfico hasta que definas reglas allow específicas en las próximas secciones.

Crea y configura una lista de URLs

Console

  1. En la consola de Google Cloud , ve a la página URL Lists.

    Ir a Listas de URLs

  2. Haz clic en Crear una lista de URLs. Se abrirá la página Crear lista de URLs.

  3. En el campo Nombre, ingresa un nombre para la lista de URLs, como example-org-allowed-list.

  4. En el campo Descripción, ingresa una descripción para la lista de URLs, como My new URL list.

  5. En Regiones, selecciona la región en la que deseas crear la lista de URLs, como us-central1.

  6. Para agregar la lista de hosts, URLs o patrones que coincidan, en el campo Lista de URLs, ingresa los detalles o haz clic en Subir lista para subir una lista personalizada de URLs. Para obtener más información, consulta la referencia de sintaxis de UrlList.

  7. Haz clic en Crear.

Cloud Shell

  1. Usa tu editor de texto preferido para crear el archivo url_list.yaml.

  2. Agrega lo siguiente al archivo url_list.yaml.

      name: projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME
      values: URL_LIST
    

    Reemplaza lo siguiente:

    • PROJECT_ID: ID único de tu proyecto de Google Cloud

    • REGION: Es la región en la que se crea tu lista de URLs, como us-central1.

    • URL_LIST_NAME: Nombre de la lista de URLs

    • URL_LIST: Lista de hosts, URLs o patrones que se deben hacer coincidir

    Para obtener más información, consulta la referencia de sintaxis de UrlList.

    El siguiente es un ejemplo de un archivo de regla de lista de URLs:

    name: projects/PROJECT_ID/locations/REGION/urlLists/example-org-allowed-list
    values:
      - www.example.com
      - about.example.com
      - "*.google.com"
      - "github.com/example-org/*"
    

    El carácter asterisco (*) tiene un significado especial en YAML. Debes agregar comillas alrededor de las URLs que incluyan un carácter *.

  3. Importa la lista de URLs que creaste con el comando gcloud network-security url-lists import para que tu regla del proxy web seguro pueda hacer referencia a ella.

    gcloud network-security url-lists import URL_LIST_NAME \
        --location=REGION \
        --project=PROJECT_ID \
        --source=url_list.yaml
    

Agrega una regla del Proxy web seguro

Console

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

    Ir a Políticas de SWP

  2. Haz clic en el nombre de tu política, como myswppolicy.

  3. Haz clic en Agregar regla.

  4. Para cada regla, haz lo siguiente:

    1. En Prioridad, ingresa un orden de evaluación numérico para la regla. Las reglas se evalúan de mayor a menor prioridad, en la que 0 es la prioridad más alta.

    2. En el campo Nombre, ingresa un nombre para la regla, como allow-org-url-list.

    3. En el campo Descripción, ingresa una descripción para la regla.

    4. En Acción, selecciona una de las siguientes opciones:

      • Permitir: Para permitir las solicitudes de conexión que coinciden con la regla
      • Rechazar: Para rechazar las solicitudes de conexión que coinciden con la regla.
    5. En el campo Estado, selecciona una de las siguientes opciones para la aplicación de la regla:

      • Habilitada: Para aplicar la regla en tu instancia de Proxy web seguro
      • Inhabilitado: Para no aplicar la regla en tu instancia de Proxy web seguro
    6. En la sección Session Match, especifica el nombre único de la lista de URLs que creaste en la sección anterior. Por ejemplo:

        sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME)"
      

      Para obtener más información sobre la sintaxis de SessionMatcher, consulta la referencia del lenguaje del comparador de CEL.

    7. En la sección Application Match, especifica los criterios para hacer coincidir la solicitud.

    8. Haz clic en Agregar regla.

Cloud Shell

  1. Usa tu editor de texto preferido para crear un archivo rule.yaml.

  2. Agrega lo siguiente al archivo rule.yaml.

    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    basicProfile: ALLOW
    enabled: true
    priority: RULE_PRIORITY
    description: RULE_DESCRIPTION
    sessionMatcher: SESSION_CEL_EXPRESSION
    applicationMatcher: APPLICATION_CEL_EXPRESSION
    

    Reemplaza lo siguiente:

    • PROJECT_ID: ID único de tu proyecto de Google Cloud

    • REGION: Es la región a la que se aplica esta regla.

    • POLICY_NAME: Nombre de una política de seguridad existente que usa tu instancia de Proxy web seguro

    • RULE_NAME: Nombre de la regla

    • PRIORITY_VALUE: prioridad de la regla; un número más bajo corresponde a una prioridad más alta

    • RULE_DESCRIPTION: Descripción de la regla

    • SESSION_CEL_EXPRESSION: Es una expresión de Common Expression Language (CEL). Para obtener más información, consulta la referencia del lenguaje del comparador de CEL.

    • APPLICATION_CEL_EXPRESSION: Una expresión de CEL para tu aplicación

    El siguiente es un ejemplo de un archivo de reglas:

    name: projects/PROJECT_ID/locations/REGION/urlLists/allow-repos
    basicProfile: ALLOW
    enabled: true
    priority: 100
    description: Allow access to our list of known code repos.
    sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"
    

  3. Importa la regla que creaste con el comando gcloud network-security gateway-security-policies rules import.

        gcloud network-security gateway-security-policies rules import RULE_NAME \
          --location=REGION \
          --project=PROJECT_ID \
          --source=rule.yaml \
          --gateway-security-policy=POLICY_NAME
    

Prueba la configuración de la política

Puedes volver a probar la conectividad para validar que las reglas de acceso basadas en listas de URLs estén configuradas correctamente y que tu instancia de Proxy web seguro las aplique de forma activa.

Para probar la conectividad, usa el siguiente comando curl:

curl -x https://SWP_IP_ADDRESS:SWP_PORT_NUMBER HTTP_TEST_ADDRESS
--proxy-insecure

Reemplaza lo siguiente:

  • SWP_IP_ADDRESS: Dirección IP de tu instancia de Secure Web Proxy

  • SWP_PORT_NUMBER: Número de puerto de tu proxy web, como 443

  • HTTP_TEST_ADDRESS: Es una dirección para probar, como https://www.example.com. Coincide con una entrada de host o URL en tu url_list.

Si todo funciona correctamente, recibirás una respuesta 200 OK. Esta respuesta confirma que el tráfico saliente a una URL que aparece en tu lista de URLs y a la que se hace referencia en la regla de la política de seguridad se permite correctamente a través de tu instancia de Proxy web seguro.

¿Qué sigue?