En esta página se describe cómo conectarse a aplicaciones de software como servicio (SaaS), como Salesforce, y a servicios en la nube de terceros, como Amazon S3, desde una instancia privada de Cloud Data Fusion al desarrollar una canalización.
En esta guía se usan los términos salida y control de salida:
Salida se refiere al tráfico de red que sale Google Cloud por la red pública de Internet. Normalmente, la salida se produce cuando creas una canalización que lee o escribe en un servicio SaaS, como Salesforce, o en un servicio de nube pública, como Amazon S3.
El control de salida define las protecciones del tráfico de salida mediante una VM proxy, que permite que el tráfico de salida se dirija a un conjunto de dominios preconfigurados y que falle en el resto. Permite un perímetro de seguridad más alto para el tráfico de salida y puede evitar la salida no deseada de una instancia privada.
En el siguiente diagrama de arquitectura del sistema se muestra cómo se conecta una instancia privada de Cloud Data Fusion a Internet público cuando desarrollas una canalización:
Cuando diseñas tu flujo de procesamiento en este caso, Cloud Data Fusion enruta el tráfico de salida a través de tu proyecto de cliente en la vista previa o Wrangler de Cloud Data Fusion. Este proceso utiliza los siguientes recursos:
Ruta de red de VPC personalizada: una ruta de red de VPC personalizada dirige el tráfico a través de una ruta personalizada importada a las VMs de la puerta de enlace, que se exportan a una VPC de proyecto de inquilino mediante el emparejamiento de VPCs.
Una máquina virtual de pasarela: una máquina virtual de pasarela enruta el tráfico saliente desde el proyecto de inquilino de Cloud Data Fusion a un SaaS o a una nube de terceros a través de Internet público. Google Cloud Gestionas esta VM en el proyecto de tu cliente. Puedes configurarlo en un entorno de alta disponibilidad (HA) mediante un balanceador de carga interno (ILB). Te recomendamos que reutilices la máquina virtual para varias instancias privadas de Cloud Data Fusion en la misma VPC.
Para obtener información sobre cómo configurar el control de salida en tus entornos de diseño y ejecución, consulta Controlar la salida en una instancia privada.
Antes de empezar
Puedes conectarte a una fuente pública desde una instancia privada en Cloud Data Fusion 6.4 o versiones posteriores. Para usar una de esas versiones, puedes crear una instancia privada de Cloud Data Fusion o actualizar una instancia a la versión 6.4.0.
Cuando crees una conexión de emparejamiento de redes de VPC para tu instancia, selecciona Exportar rutas.
Configurar la conectividad a Internet
En los siguientes pasos se describe cómo acceder a un segmento de Amazon S3 desde una instancia privada de Cloud Data Fusion en Wrangler. Los mismos pasos se aplican para acceder a cualquier fuente de datos a través de Internet público al diseñar una canalización en Vista Previa o Wrangler.
En esta guía solo se usa una VM, pero, para las aplicaciones críticas, te recomendamos que crees VMs con balanceo de carga. Para obtener más información, consulta Configurar una VM de alta disponibilidad.
Crear una pasarela de NAT
Crea una puerta de enlace Cloud NAT en la misma región y red de VPC que tu instancia privada de Cloud Data Fusion.
Crear una instancia de VM de pasarela y reglas de cortafuegos
Consola
Ve a la página Instancias de VM.
Haz clic en Crear instancia. Se recomienda usar una VM sin IP externa.
Usa la misma VPC que tiene configurado el emparejamiento de redes con la instancia privada de Cloud Data Fusion. Para obtener más información sobre el emparejamiento entre redes de VPC en este caso, consulta la sección Antes de empezar.
Habilita el reenvío de IP para la instancia en la misma red que la instancia de Cloud Data Fusion.
En el campo Secuencia de comandos de inicio, introduce la siguiente secuencia de comandos:
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j MASQUERADE echo net.ipv4.ip_forward=1 > /etc/sysctl.d/11-gce-network-security.conf iptables-save
Para obtener más información, consulta Ejecutar secuencias de comandos de inicio.
Para obtener el intervalo de IPs asignado a la instancia de Cloud Data Fusion, ve a la página Detalles de la instancia de Cloud Data Fusion.
gcloud
Para crear la VM de la pasarela y las reglas de cortafuegos, ejecuta la siguiente secuencia de comandos en la CLI de Google Cloud:
export CDF_PROJECT=CDF_PROJECT export GATEWAY_VM=GATEWAY_VM_NAME export ZONE=VM_ZONE export SUBNET=SUBNET export VPC_NETWORK=VPC_NETWORK export COMPUTE_ENGINE_SA=COMPUTE_ENGINE_SA gcloud beta compute --project=$CDF_PROJECT instances create $GATEWAY_VM --zone=$ZONE --machine-type=e2-medium --subnet=$SUBNET --network-tier=PREMIUM --metadata=startup-script=\#\!\ /bin/bash$'\n'echo\ 1\ \>\ /proc/sys/net/ipv4/ip_forward$'\n'iptables\ -t\ nat\ -A\ POSTROUTING\ -s\ 0.0.0.0/0\ -j\ MASQUERADE$'\n'echo\ net.ipv4.ip_forward=1\ \>\ /etc/sysctl.d/11-gce-network-security.conf$'\n'iptables-save --can-ip-forward --no-address --maintenance-policy=MIGRATE --service-account=$COMPUTE_ENGINE_SA --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append --tags=http-server,https-server --image=debian-10-buster-v20210316 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-balanced --boot-disk-device-name=$GATEWAY_VM --no-shielded-secure-boot --shielded-vtpm --shielded-integrity-monitoring --reservation-affinity=any gcloud compute --project=$CDF_PROJECT firewall-rules create egress-allow-http --direction=INGRESS --priority=1000 --network=$VPC_NETWORK --action=ALLOW --rules=tcp:80 --source-ranges=CDF_IP_RANGE --target-tags=http-server gcloud compute --project=$CDF_PROJECT firewall-rules create egress-allow-https --direction=INGRESS --priority=1000 --network=$VPC_NETWORK --action=ALLOW --rules=tcp:443 --source-ranges=CDF_IP_RANGE --target-tags=https-server
Haz los cambios siguientes:
- CDF_PROJECT: identificador único personalizable de tu proyecto.
- GATEWAY_VM: el nombre de la VM que quieres configurar
- ZONE: la zona de tu VM
- SUBNET: la subred
- VPC_NETWORK: el nombre de tu VM
- COMPUTE_ENGINE_SA: el nombre de tu cuenta de servicio de Compute Engine
- CDF_IP_RANGE: el intervalo de IPs asignado a la instancia de Cloud Data Fusion
Usar una VPC compartida
Si utilizas una VPC compartida para conectar tu instancia privada de Cloud Data Fusion a fuentes de Internet públicas, crea una máquina virtual de pasarela en el proyecto host en el que se haya configurado el emparejamiento de redes de VPC con el proyecto de inquilino.
Crear una ruta personalizada
Crea una ruta personalizada para conectarte a la instancia de VM de pasarela que has creado.
Consola
Para crear tu ruta en la consola Google Cloud , consulta Añadir una ruta estática.
Cuando configures la ruta, haz lo siguiente:
- Asigna al campo Prioridad un valor igual o superior a
1001
. Defina el destino en el intervalo de IPs asignado a la instancia de Cloud Data Fusion. - Usa el mismo proyecto y la misma VPC que la instancia privada de Cloud Data Fusion.
- Asegúrate de que la configuración del emparejamiento de redes de VPC permita exportar rutas para que la VPC del proyecto de inquilino de Cloud Data Fusion importe esta ruta personalizada mediante el emparejamiento de redes de VPC.
gcloud
Para crear tu ruta en la CLI de gcloud, haz lo siguiente:
export ROUTE=ROUTE gcloud beta compute routes create $ROUTE --project=$CDF_PROJECT \ --network=$VPC_NETWORK --priority=1001 \ --destination-range=0.0.0.0/0 \ --next-hop-instance=$GATEWAY_VM \ --next-hop-instance-zone=$ZONE
Haz los cambios siguientes:
- ROUTE: el nombre de la ruta personalizada.
Verificar la configuración
Después de seguir los pasos anteriores, comprueba que puedes acceder a los servicios del bucket de S3 (u otro servicio de SaaS o de nube pública) en Vista Previa y Wrangler.
Configurar una pasarela de alta disponibilidad
Recomendación: Para las aplicaciones esenciales, te recomendamos que crees máquinas virtuales con balanceo de carga.
Crear reglas de cortafuegos para comprobaciones del estado
Crea reglas de cortafuegos para permitir lo siguiente:
- Puertos 80 (HTTP) y 443 (HTTPS) de todos los intervalos de origen.
Tráfico TCP, UDP e ICMP de las direcciones IP de sondeo de comprobación del estado. Por ejemplo:
130.211.0.0/22,35.191.0.0/16
.
Consola
Crea reglas de cortafuegos para permitir puertos de todos los intervalos de origen y reglas de cortafuegos para permitir el tráfico TCP, UDP e ICMP de las direcciones IP de los verificadores de comprobación del estado, como 130.211.0.0/22,35.191.0.0/16
.
Consulta Crear comprobaciones del estado.
gcloud
Crea una regla de cortafuegos para las comprobaciones del estado:
export CDF_PROJECT=PROJECT_ID export VPC_NETWORK=VPC_NETWORK gcloud compute --project=$CDF_PROJECT firewall-rules create vpc-allow-http \ --direction=INGRESS --priority=1000 \ --network=$VPC_NETWORK \ --action=ALLOW --rules=tcp:80 \ --source-ranges=CDF_IP_RANGE \ --target-tags=http-server gcloud compute --project=$CDF_PROJECT firewall-rules create vpc-allow-https \ --direction=INGRESS --priority=1000 --network=$VPC_NETWORK \ --action=ALLOW --rules=tcp:443 --source-ranges=CDF_IP_RANGE \ --target-tags=https-server gcloud compute --project=$CDF_PROJECT firewall-rules create allow-health-checks \ --network=$VPC_NETWORK \ --action=allow --direction=ingress \ --target-tags=allow-health-checks \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp,udp,icmp
Haz los cambios siguientes:
- PROJECT_ID: identificador único personalizable de tu proyecto.
- VPC_NETWORK: el nombre de tu red de VPC.
- CDF_IP_RANGE: el intervalo de direcciones IP asignado a Cloud Data Fusion.
Crear una plantilla de instancia de VM de pasarela
Consola
Cuando creas una plantilla de instancia en la consola, ocurre lo siguiente:
- Crea la instancia en la misma VPC que la instancia de Cloud Data Fusion.
- Recomendación: usa una VM con una dirección IP privada.
- Habilita los puertos HTTP/HTTPS.
- Habilitar el reenvío de IP
En el campo Secuencia de comandos de inicio, introduce la siguiente secuencia de comandos:
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j MASQUERADE echo net.ipv4.ip_forward=1 > /etc/sysctl.d/11-gce-network-security.conf iptables-save
Para obtener más información, consulta Ejecutar secuencias de comandos de inicio.
Para obtener el intervalo de IPs asignado a la instancia de Cloud Data Fusion, ve a la página Detalles de la instancia de Cloud Data Fusion.
gcloud
Crea una plantilla de instancia:
export TEMPLATE_NAME=TEMPLATE_NAME export REGION=REGION export SUBNET=SUBNET export SERVICE_ACCOUNT=SERVICE_ACCOUNT gcloud beta compute --project=$CDF_PROJECT instance-templates create $TEMPLATE_NAME \ --machine-type=e2-medium \ --subnet=projects/$CDF_PROJECT/regions/$REGION/subnetworks/$SUBNET \ --network-tier=PREMIUM --metadata=startup-script=sudo\ bash\ -c\ \"echo\ 1\ \>\ /proc/sys/net/ipv4/ip_forward\"$'\n'sudo\ iptables\ -t\ nat\ -A\ POSTROUTING\ -s\ 0.0.0.0/0\ -j\ MASQUERADE$'\n'sudo\ bash\ -c\ \"echo\ net.ipv4.ip_forward=1\ \>\ /etc/sysctl.d/11-gce-network-security.conf\"$'\n'sudo\ iptables-save \ --can-ip-forward --no-address --maintenance-policy=MIGRATE \ --service-account=$SERVICE_ACCOUNT \ --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append \ --region=$REGION --tags=http-server,https-server,allow-health-checks \ --image=debian-10-buster-v20210316 \ --image-project=debian-cloud --boot-disk-size=10GB \ --boot-disk-type=pd-balanced \ --boot-disk-device-name=$TEMPLATE_NAME \ --no-shielded-secure-boot --no-shielded-vtpm \ --no-shielded-integrity-monitoring \ --reservation-affinity=any
Crear una comprobación del estado
No se ejecuta ningún servicio en esta instancia de VM de pasarela, por lo que puedes usar el puerto 22
para tu comprobación del estado.
Consola
Consulta Crear comprobaciones del estado.
gcloud
Crea una comprobación del estado:
export HEATH_CHECK=HEALTH_CHECK_NAME gcloud beta compute health-checks create tcp $HEATH_CHECK --project=$CDF_PROJECT \ --port=22 --proxy-header=NONE --no-enable-logging \ --check-interval=5 --timeout=5 \ --unhealthy-threshold=2 --healthy-threshold=2
Crear un grupo de instancias
Con la comprobación del estado que has creado en el paso anterior, crea un grupo de instancias:
Consola
Consulta Crear grupos de instancias gestionadas.
gcloud
Crea un grupo de instancias:
export INSTANCE_GROUP=INSTANCE_GROUP gcloud beta compute --project=$CDF_PROJECT instance-groups managed create $INSTANCE_GROUP \ --base-instance-name=$INSTANCE_GROUP \ --template=$TEMPLATE_NAME --size=1 --zone=$ZONE \ --health-check=test --initial-delay=300 gcloud beta compute --project "$CDF_PROJECT" instance-groups managed set-autoscaling "$INSTANCE_GROUP" \ --zone "$ZONE" --cool-down-period "60" \ --max-num-replicas "10" --min-num-replicas "1" \ --target-cpu-utilization "0.6" --mode "on"
Crear un balanceador de carga
Crea un balanceador de carga TCP (ILB) a partir del grupo de instancias creado en el paso anterior.
Añadir la ruta personalizada al balanceador de carga
Añade la ruta personalizada al balanceador de carga interno (ILB) de la misma VPC que la instancia de Cloud Data Fusion.
Consola
Ve a la página Red de VPC.
En la pestaña Rutas, haz clic en Crear ruta.
gcloud
Añade la ruta personalizada al balanceador de carga interno:
export ROUTE=ROUTE_NAME export ILB_FRONTEND=<ip_of_ilb_frontend> gcloud beta compute routes create $ROUTE --project=$CDF_PROJECT \ --network=$VPC_NETWORK --priority=1001 \ --destination-range=0.0.0.0/0 \ --next-hop-ilb=$ILB_FRONTEND \ --next-hop-ilb-region=$REGION
Solución de problemas
Recibir errores de tiempo de espera de conexión en Vista previa o Wrangler
Al configurar los controles de salida, puede que se produzca un error Connection Timeout
.
Para solucionar el problema, comprueba que se cumplen los siguientes requisitos:
- El emparejamiento de redes de VPC entre el proyecto de propietario y el proyecto del cliente está presente.
- El emparejamiento de redes de VPC tiene habilitada la opción Exportar rutas.
- La ruta personalizada a la VM de la pasarela o al ILB no falta.
- Las reglas de cortafuegos que permiten el tráfico
HTTP
yHTTPS
no faltan.
Las comprobaciones del estado del grupo de instancias no se realizan correctamente
Comprueba que haya reglas de cortafuegos
para permitir el tráfico TCP, UDP e ICMP desde el
intervalo de origen 130.211.0.0/22,35.191.0.0/16
.
El flujo de procesamiento falla al ejecutarse en Dataproc
Para acceder a Internet pública en tiempo de ejecución, habilita Cloud NAT en la misma región y red que el clúster de Dataproc.
Siguientes pasos
- Consulta cómo controlar el tráfico saliente en una instancia privada de Cloud Data Fusion para que solo se dirija a un conjunto específico de dominios.
- Consulta más información sobre las redes en Cloud Data Fusion.