Usar una lista de URLs para crear políticas

En esta guía se muestra cómo usar listas de URLs para definir las URLs a las que pueden acceder tus usuarios.

Antes de empezar

  • Completa los pasos de configuración inicial.

  • Comprueba que tienes instalada la versión 406.0.0 o una posterior de la CLI de Google Cloud:

    gcloud version | head -n1
    

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

    gcloud components update --version=406.0.0
    

Crear una instancia de proxy web seguro con una política vacía

Para crear una instancia de proxy web seguro, primero crea una política de seguridad vacía y, a continuación, crea un proxy web.

Crear una política de seguridad vacía

Consola

  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.

  6. Haz clic en Crear.

Cloud Shell

  1. Usa el editor de texto que prefieras para crear el archivo POLICY_FILE.yaml. Sustituye POLICY_FILE por el nombre que quieras darle al archivo de la política.

  2. Añade lo siguiente al archivo YAML que has creado:

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

    Haz los cambios siguientes:

    • PROJECT_NAME: el nombre de tu proyecto
    • REGION: la región a la que se aplica esta política
    • POLICY_NAME: el nombre de la política que vas a crear
    • POLICY_DESCRIPTION: la descripción de la política que vas a crear
  3. Importa la política de seguridad:

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

Crear un proxy web

Consola

  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. Usa el editor de texto que prefieras para crear el archivo GATEWAY_FILE.yaml. Sustituye GATEWAY_FILE por el nombre de archivo que quieras para el archivo de proxy web.

  2. Añade lo siguiente al archivo YAML que has creado:

    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/SUBNET_NAME
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Haz los cambios siguientes:

    • GATEWAY_NAME: el nombre de esta instancia
    • GATEWAY_PORT_NUMBERS: una lista de números de puerto de esta pasarela, como [80,443]
    • CERTIFICATE_URLS: una lista de URLs de certificados SSL
    • SUBNET_NAME: el nombre de la subred que contiene GATEWAY_IP_ADDRESS

    • GATEWAY_IP_ADDRESS: una lista opcional de direcciones IP de tus instancias de Secure Web Proxy en las subredes de proxy que has creado anteriormente en los pasos de configuración inicial

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

  3. Crea una instancia de proxy web seguro:

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

Probar la conectividad

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

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

Se espera un error 403 Forbidden.

Crear una lista de URLs

Para crear una lista de URLs y añadir una regla, completa las tareas que se indican en las siguientes secciones.

Crear y configurar una lista de URLs

Consola

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

    Ir a listas de URLs

  2. Haz clic en Crear una lista de URLs.

  3. Introduce un nombre para la lista de URLs que quieras crear, como myurllist.

  4. Introduce una descripción de la lista de URLs, como My new URL list.

  5. En la lista Regiones, selecciona la región en la que quieras crear la lista de URLs.

  6. Haga clic en Subir listas para subir la lista de hosts, URLs o patrones que quiere que coincidan. Para obtener más información, consulta la referencia de sintaxis de UrlList.

  7. Haz clic en Crear.

Cloud Shell

  1. Usa el editor de texto que prefieras para crear el archivo URL_LIST_FILE.yaml. ReplaceURL_LIST_FILE` con el nombre que quieras.

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

    Haz los cambios siguientes:

    • PROJECT_ID: tu número de proyecto
    • REGION: la región a la que se aplica esta lista de URLs
    • URL_LIST_NAME: el nombre de la lista de URLs que va a crear
    • URL_LIST: la lista de hosts, URLs o patrones que deben coincidir.

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

    A continuación, se muestra un ejemplo de 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 asterisco (*) tiene un significado especial en YAML. Por lo tanto, debes entrecomillar las URLs que incluyan el carácter *.

  2. Añade la lista de URLs para que se pueda hacer referencia a ella en una regla de Secure Web Proxy:

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

Añadir una regla

Consola

  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ú del selector 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 Coincidencia de sesión, especifique el nombre de la lista de URLs que ha creado anteriormente. Por ejemplo:

        sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"
      
    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.

    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.

Cloud Shell

  1. Usa el editor de texto que prefieras para crear el archivo RULE_FILE.yaml. Sustituye RULE_FILE por el nombre de archivo que quieras.

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

    Haz los cambios siguientes:

    • PROJECT_ID: tu número de proyecto
    • REGION: la región a la que se aplica esta regla
    • POLICY_NAME: el nombre de un GatewaySecurityPolicy que ya se haya usado en tu instancia de Secure Web Proxy
    • RULE_NAME: un nombre para el GatewaySecurityPolicyRule que vas a crear
    • PRIORITY_VALUE: valor de prioridad de esta regla. Los números más bajos corresponden a prioridades más altas.
    • RULE_DESCRIPTION: una descripción de la política que vas a crear
    • SESSION_CEL_EXPRESSION: una expresión de lenguaje de expresión común (CEL) para la sesión
    • APPLICATION_CEL_EXPRESSION: una expresión CEL de la aplicación

    A continuación, se muestra un ejemplo de 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')"
    

  2. Añade una regla de proxy web seguro con la lista de URLs que has creado anteriormente:

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

Probar la conectividad

Para probar la conectividad, usa el siguiente comando curl:

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

Haz los cambios siguientes:

  • SWP_IP_ADDRESS: la dirección IP de tu proxy web

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

  • HTTP_TEST_ADDRESS: una dirección que se va a probar, como https://www.example.com, que coincida con una entrada de host o URL de tu URL_LIST

La solicitud debe devolver una respuesta correcta.

Siguientes pasos