Configura el acceso a Internet y las reglas de firewall

En esta página, se explica cómo proporcionar rutas y definir tus reglas de firewall de Google Cloud para la red asociada con tus trabajos de Dataflow.

Acceso a Internet para Dataflow

Las máquinas virtuales (VM) de trabajador de Dataflow deben poder alcanzar las API y los servicios de Google Cloud. Puedes configurar las VM de trabajador con una dirección IP externa para que cumplan con los requisitos de acceso a Internet o puedes usar el Acceso privado a Google.

Con el Acceso privado a Google, las VM que solo tienen direcciones IP internas pueden acceder a IP públicas seleccionadas para Google Cloud y los servicios. Lee Configura el Acceso privado a Google para obtener más información sobre los requisitos de las reglas de firewall y el enrutamiento y los pasos de configuración.

Los trabajos que acceden a las API y los servicios fuera de Google Cloud requieren acceso a Internet. Por ejemplo, los trabajos del SDK de Python necesitan acceso al Índice de paquetes de Python (PyPI). En este caso, debes configurar VM de trabajadores con direcciones IP externas o usar una solución de traducción de direcciones de red, como Cloud NAT. Lee el artículo Managing Python Pipeline Dependencies (Administra las dependencias de canalización de Python) en el sitio web de Apache Beam para obtener más detalles.

Limitaciones del sistema de nombres de dominio (DNS)

No se admite BIND personalizado cuando se usa Dataflow. Para personalizar la resolución de DNS cuando usas Dataflow con los Controles del servicio de VPC, usa las zonas privadas de Cloud DNS en lugar de los servidores BIND personalizados. Para usar tu resolución de DNS local, considera usar un método de reenvío de DNS de Google Cloud.

Reglas de firewall

Con las reglas de firewall, puedes permitir o rechazar el tráfico hacia y desde tus VM. En esta página, suponemos que estás familiarizado con el funcionamiento de las reglas de firewall de Google Cloud como se describe en las páginas Descripción general de las reglas de firewall y Usa reglas de firewall, incluidas las reglas de firewall implícitas.

Reglas de firewall que requiere Dataflow

Dataflow requiere que las VM de trabajador se comuniquen entre sí mediante puertos TCP específicos dentro de la red de VPC que especificaste en tus opciones de canalización. Debes configurar las reglas de firewall en la red de VPC para permitir este tipo de comunicación.

Algunas redes de VPC, como la red default creada de forma automática, incluyen una regla default-allow-internal que cumple con los requisitos de firewall de Dataflow.

Dado que todas las VM de los trabajadores tienen una etiqueta de red con el valor dataflow, puedes crear una regla de firewall más específica para Dataflow. Un propietario, editor o administrador de seguridad del proyecto puede usar el siguiente comando de gcloud para crear una regla de permiso de entrada que permita el tráfico en los puertos TCP 12345 y 12346 de las VM con la etiqueta de red dataflow a las VM con la misma etiqueta:

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --network NETWORK \
    --action allow \
    --direction DIRECTION \
    --target-tags dataflow \
    --source-tags dataflow \
    --priority 0 \
    --rules tcp:12345-12346

En el ejemplo anterior, reemplaza las siguientes variables:

  • FIREWALL_RULE_NAME por un nombre para la regla de firewall
  • NETWORK por el nombre de la red que usan tus VM de trabajador
  • DIRECTION por la dirección de la regla de firewall

Para obtener orientación sobre las reglas de firewall, consulta Usa reglas de firewall. Para los puertos TCP específicos que usa Dataflow, puedes consultar el manifiesto del contenedor del proyecto. El manifiesto del contenedor especifica de manera explícita los puertos para asignar puertos de host al contenedor. También puedes ver la configuración y la actividad de red si abres una sesión SSH en uno de tus trabajadores y ejecutas iproute2. Lee la página sobre iproute2 para obtener más información.

Especifica etiquetas de red

Las etiquetas de red son atributos de texto que puedes adjuntar a las instancias de máquina virtual (VM) de Compute Engine. Las etiquetas te permiten hacer que las reglas y rutas del firewall sean aplicables a instancias de VM específicas. Dataflow admite la adición de etiquetas de red a todas las VM de trabajador que ejecutan un trabajo de Dataflow en particular.

Habilita las etiquetas de red

Solo puedes establecer etiquetas en la fase de creación del trabajo. Una vez que creas un trabajo de Dataflow, no puedes actualizar las etiquetas de una canalización de transmisión o por lotes en ejecución.

JAVA

Especifica el siguiente parámetro:

--experiments=use_network_tags=TAG-NAME

Reemplaza TAG-NAME por los nombres de las etiquetas. Si agregas más de una etiqueta, separa cada una con un “;”, como se muestra en el siguiente formato: TAG-NAME-1;TAG-NAME-2;TAG-NAME-3;....

PYTHON

Especifica el siguiente parámetro:

--experiments=use_network_tags=TAG-NAME

Reemplaza TAG-NAME por los nombres de las etiquetas. Si agregas más de una etiqueta, separa cada una con un “;”, como se muestra en el siguiente formato: TAG-NAME-1;TAG-NAME-2;TAG-NAME-3;....

Incluso si no usas este parámetro, Dataflow siempre agrega la etiqueta de red dataflow a cada VM de trabajador que creas.

Límites

Los siguientes límites se aplican a las etiquetas de red:

Límite Valor Descripción
Cantidad máxima de etiquetas por VM 64 Todas las etiquetas de una VM deben ser únicas. Debido a que Dataflow siempre agrega la etiqueta dataflow, puedes asignar hasta 63 etiquetas adicionales por VM.
Cantidad máxima de caracteres por cada etiqueta 63
Caracteres aceptables para una etiqueta letras minúsculas, números, guiones Además:
• Las etiquetas deben comenzar con una letra en minúscula.
• Las etiquetas deben finalizar con un número o una letra minúscula.

Acceso SSH a las VM de trabajador

Dataflow no requiere SSH; sin embargo, SSH es útil para la solución de problemas.

Si tu VM de trabajador tiene una dirección IP externa, puedes conectarte a la VM a través de Cloud Console o mediante la herramienta de línea de comandos de gcloud. Para conectarse mediante SSH, debes tener una regla de firewall que permita conexiones entrantes en el puerto TCP 22 desde al menos la dirección IP del sistema en el que se ejecuta gcloud o el sistema que ejecuta el navegador web que usas para acceder a Cloud Console.

Si necesitas conectarte a una VM de trabajador que solo tiene una dirección IP interna, consulta Conéctate a instancias que no tienen direcciones IP externas.