En esta página, se describe cómo adjuntar etiquetas de Resource Manager a las políticas de proxy web seguro. Las etiquetas de Resource Manager son etiquetas que puedes adjuntar a varios Google Cloud recursos, como tus instancias de máquina virtual (VM). Puedes usar etiquetas para aplicar controles de acceso condicionales en toda tu red con las etiquetas organizativas existentes.
Con estas etiquetas, puedes realizar las siguientes acciones:
Segmenta las cargas de trabajo: Puedes identificar de forma única diferentes entornos, como
productionodevelopment, y tipos de servicios, comofrontendodatabase.Centraliza el control de acceso: Puedes basar tus políticas del Proxy web seguro en estas etiquetas. Por ejemplo, puedes crear una regla de política que diga: "Solo el tráfico que se origina en recursos que tienen la etiqueta
tag segment=productionpuede acceder a un conjunto específico de URLs".
Esta página te muestra cómo hacer lo siguiente:
- Crea una instancia del Proxy web seguro con una política vacía
- Crea y adjunta una etiqueta de Resource Manager a una instancia de VM
- Crea una regla del Proxy web seguro
- Prueba la conectividad de toda tu configuración de Secure Web Proxy
Antes de comenzar
Configura los pasos iniciales.
Pídele a un administrador de la organización que te otorgue el rol necesario para crear y actualizar etiquetas.
Verifica que tengas instalada la versión 406.0.0 o posterior de Google Cloud CLI:
gcloud version | head -n1Si 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
En la consola de Google Cloud , ve a la página Políticas de SWP.
Haz clic en Crear una política.
En el campo Nombre, ingresa un nombre para la política, como
myswppolicy.En el campo Descripción, ingresa una descripción para la política, como
My new swp policy.En Regiones, selecciona la región en la que deseas crear la política, como
us-central1.Haz clic en Crear.
Cloud Shell
Usa tu editor de texto preferido para crear un archivo
policy.yaml.Agrega lo siguiente al archivo
policy.yamlque creaste:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTIONReemplaza lo siguiente:
PROJECT_NAME: Nombre de tu proyectoREGION: Es la región en la que se crea tu política, comous-central1.POLICY_NAME: Nombre de la políticaPOLICY_DESCRIPTION: Descripción de tu política
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
En la consola de Google Cloud , ve a la página Proxies web.
Haz clic en Crear un proxy web seguro.
En el campo Nombre, ingresa un nombre para el proxy web, como
myswp.En el campo Descripción, ingresa una descripción para el proxy web, como
My new swp.En Modo de enrutamiento, selecciona la opción Explícito.
En Regiones, selecciona la región en la que deseas crear el proxy web, como
us-central1.En Red, selecciona la red en la que deseas crear el proxy web.
En Subred, selecciona la subred de VPC que creaste anteriormente como parte de los pasos de configuración inicial.
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.
En Certificado, selecciona el certificado que deseas usar para crear el proxy web.
En Política, selecciona la política que creaste para asociar el proxy web.
Haz clic en Crear.
Cloud Shell
Usa tu editor de texto preferido para crear un archivo
gateway.yaml.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: samplescopeReemplaza lo siguiente:
GATEWAY_NAME: Nombre de esta instancia de Secure Web ProxyGATEWAY_PORT_NUMBERS: Lista de números de puerto para esta puerta de enlace, como[80,443]CERTIFICATE_URLS: Lista de URLs de certificados SSLSUBNETWORK: Subred de VPC que creaste anteriormente como parte de los pasos de configuración inicialGATEWAY_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.
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
allowespecíficas en las próximas secciones.
Crea y adjunta etiquetas de Resource Manager
Crea claves y valores de etiquetas seguras
Ejemplo: Para crear una etiqueta para entornos restringidos, sigue estos pasos:
Crea la clave de etiqueta (
access-level) con el comandogcloud resource-manager tags keys createy el propósito establecido enGCE_FIREWALL.Recupera el ID de la clave de etiqueta desde el resultado del comando de creación o con el comando
gcloud resource-manager tags keys list. Necesitas este ID para vincular los valores de etiqueta a esta clave de etiqueta específica.Crea el valor de la etiqueta (
restricted) con el comandogcloud resource-manager tags values createy especifica el ID de la clave de la etiqueta como el elemento principal.
# Create the tag key # The output provides a unique ID, such as "tagKeys/1234567890" gcloud resource-manager tags keys create "access-level" \ --parent="organizations/1234567890" \ --purpose="GCE_FIREWALL" \ --purpose-values="execution_env=ANS" # Create the tag value and connect it to the key # The "--parent" flag identifies to which key this value belongs gcloud resource-manager tags values create "restricted" \ --parent="tagKeys/1234567890"Cómo adjuntar etiquetas a instancias de VM
Cuando adjuntas estas etiquetas, se asocia el tráfico saliente de tus instancias de VM con una identidad de etiqueta específica, lo que permite que el proxy reconozca la carga de trabajo y aplique las reglas de tu política de seguridad.
Ejemplo: Supongamos que tienes una instancia de VM llamada
internal-tool. Puedes adjuntar el valor de etiquetarestrictedainternal-toolcon el comandogcloud resource-manager tags bindings create. Esta asignación de etiquetas permite que tu proxy identifique el tráfico que se origina en la instancia de VMinternal-tool.# Attach the "restricted" tag to a specific VM instance gcloud resource-manager tags bindings create \ --parent="//[compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool](https://compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool)" \ --tag-value="tagValues/987654321"
Crea una regla del Proxy web seguro
Console
En la consola de Google Cloud , ve a la página Políticas de SWP.
Haz clic en el nombre de tu política, como
myswppolicy.Haz clic en Agregar regla.
Para cada regla, haz lo siguiente:
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
0es la prioridad más alta.En el campo Nombre, ingresa un nombre para la regla.
En el campo Descripción, ingresa una descripción para la regla.
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.
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
En la sección Session match, especifica el ID único de la etiqueta que creaste en la sección anterior. Por ejemplo:
sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"Para obtener más información sobre la sintaxis de
SessionMatcher, consulta la referencia del lenguaje del comparador de CEL.En la sección Coincidencia de la aplicación, especifica los criterios para que coincida la solicitud.
Haz clic en Agregar regla.
Cloud Shell
Usa tu editor de texto preferido para crear el archivo
rule.yaml.Para permitir el acceso a una URL desde la etiqueta requerida, agrega lo siguiente al archivo
rule.yaml:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME description: RULE_DESCRIPTION enabled: true priority: RULE_PRIORITY sessionMatcher: CEL_EXPRESSION basicProfile: ALLOWReemplaza lo siguiente:
RULE_NAME: Nombre de esta reglaRULE_DESCRIPTION: Descripción de la reglaRULE_PRIORITY: Es la prioridad de esta regla. Un número más bajo corresponde a una prioridad más alta.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.
Por ejemplo, para permitir el acceso a
example.comdesde la etiqueta obligatoria, agrega la siguiente líneasessionMatcheral archivo YAML:sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"Reemplaza
TAG_VALUEpor la etiqueta que deseas permitir. Asegúrate de que la etiqueta siga el formato del identificador de recurso numérico, por ejemplo,tagValues/567890123456.Importa las reglas que creaste con el comando
gcloud network-security gateway-security-policies rules import:gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=RULE_FILE.yaml \ --location=REGION \ --gateway-security-policy=POLICY_NAME
Prueba la configuración de la política
Puedes volver a probar la conectividad para validar que tu política de proxy web seguro, que se basa en etiquetas de Resource Manager para la identidad, funcione según lo previsto.
Para probar la conectividad, usa el comando curl desde cualquier VM asociada con la etiqueta TAG_VALUE adecuada.
curl -x https://IPv4_ADDRESS:443 http://example.com
--proxy-insecure
Reemplaza IPv4_ADDRESS por la dirección IPv4 de tu instancia de Proxy web seguro.
Si todo funciona correctamente, recibirás un código de estado 200 OK o 403 Forbidden. Estas respuestas confirman los siguientes resultados clave:
Éxito basado en etiquetas: Un código de estado
200 OKvalida que el tráfico de una VM con la etiqueta correcta de Resource Manager adjunta coincida con la regla de política y se permita a través del proxy. Esta coincidencia verificada genera una conexión exitosa.Denegación basada en etiquetas: Un código de estado
403 Forbiddenverifica que la política deniegue correctamente el acceso al tráfico de una VM que no tenga la etiqueta especificada o que tenga una etiqueta incorrecta. Esta aplicación demuestra que la segmentación y la aplicación basadas en etiquetas funcionan según lo previsto.