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 de Secure Web Proxy. 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 de los beneficios clave de usar listas de URLs:

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

  • Aplica un control preciso: Puedes usar una sintaxis específica para que coincidan dominios completos, subdominios o rutas de URL exactas. Esto te permite asegurarte de que tus cargas de trabajo solo puedan acceder a destinos autorizados.

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

Antes de comenzar

  • Completa los pasos iniciales de configuración.

  • 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 de Secure Web Proxy con una política vacía

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

Crea una política de seguridad vacía

Console

  1. En la Google Cloud consola de, 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: región en la que se crea tu política, como us-central1

    • POLICY_NAME: nombre de tu política

    • POLICY_DESCRIPTION: descripción de tu política

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

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

Crea un proxy web

Console

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

    • Explícito: Implementa tu instancia de Secure Web Proxy en modo de proxy explícito.
    • Próximo salto: Implementa tu instancia de Secure Web Proxy en modo de próximo salto.
  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 durante la configuración inicial.

  9. Opcional: En el campo Dirección IP del proxy web, 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.

  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
    routingMode: ROUTING_MODE
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Reemplaza lo siguiente:

  3. Crea la instancia de Secure Web Proxy con el gcloud network-services gateways import comando:

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

Probar 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 de Secure Web Proxy muestra un código de estado 403 Forbidden. Este error confirma lo siguiente:

  • La instancia de Secure Web Proxy se implementó correctamente y recibe tráfico de forma activa.

  • La política de Secure Web Proxy aplica correctamente la postura de seguridad predeterminada de rechazar todo el tráfico hasta que definas reglas allow específicas en las siguientes secciones.

Crea y configura una lista de URLs

Console

  1. En la Google Cloud consola de, ve a la página Listas de URLs.

    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 Google Cloud proyecto

    • REGION: 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 coincidan

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

    El siguiente es un ejemplo de un archivo de reglas 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 de 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 gcloud network-security url-lists import comando para que tu regla de Secure Web Proxy 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 de Secure Web Proxy

Console

  1. En la Google Cloud consola de, 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:

      • Habilitado: Para aplicar la regla en tu instancia de Secure Web Proxy
      • Inhabilitado: Para no aplicar la regla en tu instancia de Secure Web Proxy
    6. En la sección Coincidencia de sesión, 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 de comparador de CEL.

    7. En la sección Coincidencia de aplicación, especifica los criterios para que coincida 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 Google Cloud proyecto

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

    • POLICY_NAME: nombre de una política de seguridad existente que usa tu instancia de Secure Web Proxy

    • 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: una expresión de Common Expression Language (CEL). Para obtener más información, consulta la referencia del lenguaje de 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 gcloud network-security gateway-security-policies rules import comando.

        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 la lista de URLs estén configuradas correctamente y que tu instancia de Secure Web Proxy 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: 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 hace referencia la regla de política de seguridad se permite correctamente a través de tu instancia de Secure Web Proxy.

¿Qué sigue?