Configuración de red del clúster de Dataproc

En esta página, se explican los requisitos para la configuración de red de clústeres de Dataproc y opciones.

Requisitos de conectividad de Dataproc

Tu clúster de Dataproc debe estar en una red de VPC que cumpla con los requisitos y requisitos de firewall para acceder de forma segura a las APIs de Google y otros recursos.

Requisitos de la ruta

El agente de Dataproc que se ejecuta en las VMs del clúster necesita una ruta a Internet para acceder a la API de control de Dataproc y obtener trabajos y estados de informes. Cuando se crean, las redes de VPC contienen una ruta predeterminada generada por el sistema a Internet. No se recomienda borrar la ruta predeterminada a Internet. en su lugar, usa firewalls para controlar el acceso a la red. Ten en cuenta que los clústeres de solo IP interna también requieren esta ruta predeterminada a Internet para acceder a las APIs de control de Dataproc y a otros servicios de Google, como Cloud Storage, pero su tráfico no sale de los centros de datos de Google.

Requisitos del firewall

Máquinas virtuales (VMs) del clúster de Dataproc deben poder comunicarse entre sí mediante ICMP, TCP (todos los puertos) y UDP (todos los puertos).

La red de VPC de default Firewall de default-allow-internal regla cumple con los requisitos de conectividad del clúster de Dataproc y permite la entrada desde el rango de origen 10.128.0.0/9 desde todas las VMs en la red de VPC de la siguiente manera:

Regla Red Dirección Prioridad Rango de origen Protocolos:Puertos
default-allow-internal default ingress 65534 10.128.0.0/9 tcp:0-65535,udp:0-65535,icmp
  • Si borras la regla de firewall de default-allow-internal, la regla implícita de rechazo de entrada bloquea el tráfico de entrada en la red default.

  • Si borras la regla de firewall default-allow-internal o no usas la red de VPC default, debes crear tu propia regla que cumpla con los requisitos de conectividad de Dataproc y, luego, aplicarla a la red de VPC de tu clúster.

Práctica recomendada: Crea una regla de firewall de entrada para la red de VPC del clúster que permita la conectividad de entrada solo entre las VMs del clúster mediante un rango de IP de origen o identificando las VMs del clúster por etiqueta de red o cuenta de servicio.

Crea una regla de firewall de entrada

Si tú, tu administrador de red o seguridad crean una regla de firewall de entrada para aplicar a una red de VPC del clúster de Dataproc, debe tener la las siguientes características:

  • El parámetro sources especifica los orígenes de los paquetes. Todas las VMs del clúster de Dataproc deben poder comunicarse entre sí. Puedes identificar las VMs en el clúster por rango de direcciones IP, etiquetas de origen o cuentas de servicio asociadas las VMs.

  • El destino de la regla debe identificar las VMs del clúster. El destino puede ser todas las VMs en la red de VPC o puedes identificar las VMs por rango de direcciones IP, etiqueta o servicio de destino de servicio predeterminada.

  • La regla debe incluir los siguientes protocolos y puertos:

    • TCP (todos los puertos, de 0 a 65535)
    • UDP (todos los puertos, de 0 a 65535)
    • ICMP

    Dataproc usa servicios que se ejecutan en varios puertos. Especificar todos los puertos ayuda a que los servicios se ejecuten correctamente.

Diagnostica reglas de firewall de VPC

Para auditar los paquetes que no procesaron las reglas de firewall de mayor prioridad, puedes crear dos reglas de firewall de prioridad baja (65534). A diferencia de las reglas de firewall implícitas, puedes habilitar el registro de reglas de firewall en cada una de estas reglas de prioridad baja:

  1. Una regla de denegación de entrada (orígenes 0.0.0.0/0, todos los protocolos, todos los destinos de la red de VPC)

  2. Una regla de denegación de salida (destinos 0.0.0.0/0, todos los protocolos, todos los destinos de la red de VPC)

  • Con estas reglas de prioridad baja y el registro de reglas de firewall, puedes registrar no procesados por mayor prioridad, y potencialmente más específicos, reglas de firewall. Estas dos reglas de prioridad baja también se alinean con las prácticas recomendadas de seguridad mediante la implementación de una estrategia de “paquetes de descarte final”.

  • Examina los registros de reglas de firewall para estas reglas a fin de determinar si necesitas crear o modificar reglas de mayor prioridad para permitir paquetes. Por ejemplo, si se descartan los paquetes enviados entre las VMs del clúster de Dataproc, esto puede indicar que se deben ajustar tus reglas de firewall.

Crear red de VPC

En lugar de usar la red de VPC default, puedes crear una modo automático o VPC personalizada en cada red. Cuando creas el clúster, asocias tu red con el clúster.

Entorno de Assured Workloads: Cuando usas un entorno de Assured Workloads para el cumplimiento normativo, el clúster, su red de VPC y sus buckets de Cloud Storage deben estar contenidos en el entorno de Assured Workloads.

Crea un clúster que use tu red de VPC

Console

Selecciona tu red en la sección Configuración de red en el panel Personalizar clúster. Después de elegir de red, el selector Subred muestra las subredes disponibles en la región que seleccionaste para el clúster.

Google Cloud CLI

Usa gcloud dataproc clusters create con ‑‑network o ‑‑subnet marca para crear un clúster en una subred de tu red. Si usas la marca --network, el clúster usará una subred con que el de la red especificada en la región en la que se crea el clúster.

--network example. Dado que las redes automáticas se crean con subredes en cada región, y cada subred tiene el nombre de la red, puedes pasar el nombre de la red de VPC de modo automático a la marca ‑‑network. El clúster usará la subred de VPC de modo automático en la región especificada con la marca ‑‑region.

gcloud dataproc clusters create CLUSTER_NAME \
    --network NETWORK_NAME \
    --region=REGION \
    ... other args ...

--subnet example Puedes usar ‑‑subnet marca para crear un clúster que use una subred de red de VPC en modo automático o personalizado en la región del clúster. Especifica la ruta de acceso completa del recurso de la subred.

gcloud dataproc clusters create CLUSTER_NAMEW \
    --subnet projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
    --region=REGION \
    ... other args ...

API de REST

Puedes especificar el campo networkUri o subnetworkUri GceClusterConfig como parte de una solicitud clusters.create.

Ejemplo

POST /v1/projects/my-project-id/regions/us-central1/clusters/
{
  "projectId": "PROJECT_ID",
  "clusterName": CLUSTER_NAME,
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": SUBNET_NAME,
    },
    ...

Crea un clúster que use una red de VPC en otro proyecto

Un clúster de Dataproc puede usar una red de VPC compartida que se define en un proyecto host. El proyecto en el que se crea el clúster de Dataproc es denominado proyecto de servicio.

  1. Busca el número de proyecto del clúster de Dataproc:

    1. Abre la página IAM y administración Configuración en la consola de Google Cloud. Selecciona el proyecto en el que crearás el clúster de Dataproc. Copia el ID del proyecto.
  2. Un principal con la función de administrador de la VPC compartida debe realizar los siguientes pasos. Consulta las instrucciones para configurar la VPC compartida a fin de obtener información de referencia.

    1. Asegúrate de que el proyecto host de la VPC compartida esté habilitado.

    2. Adjuntar el proyecto con el clúster de Dataproc al proyecto host.

    3. Configura la cuenta de servicio del agente de servicio de Dataproc (service-[project-number]@dataproc-accounts.iam.gserviceaccount.com) para que tenga el rol de Usuario de red para el proyecto host:

      1. Abre IAM y Administrador en la consola de Google Cloud.

      2. Usa el selector de proyectos para seleccionar el nuevo proyecto host.

      3. Haz clic en Otorgar acceso.

      4. Completa el formulario de otorgamiento de acceso:

        1. Agregar principales: Ingresa la cuenta de servicio.

        2. Asignar roles: Inserta "Red de Compute" en el cuadro de filtro y, luego, selecciona el rol Usuario de la red de Compute.

        3. Haz clic en Guardar.

  3. Después de que la cuenta de servicio tenga el rol Network User para el proyecto host, crear un clúster que usa la red de VPC compartida.

Crea un clúster que use una subred de VPC en otro proyecto

Un clúster de Dataproc puede usar una Subred de VPC compartida que se define en un proyecto host. El proyecto en el que se crea el clúster de Dataproc es denominado proyecto de servicio.

  1. Busca el número de proyecto del clúster de Dataproc:

    1. Abre la página IAM y administración Configuración en la consola de Google Cloud. Selecciona el proyecto en el que crearás la clúster de Dataproc. Copia el ID del proyecto.
  2. Un principal con la función de administrador de la VPC compartida debe realizar los siguientes pasos. Consulta las instrucciones para configurar la VPC compartida a fin de obtener información de referencia.

    1. Asegúrate de que el proyecto host de la VPC compartida está habilitado.

    2. Adjuntar el proyecto con el clúster de Dataproc al proyecto host.

    3. Configura la cuenta de servicio del agente de servicio de Dataproc (service-[project-number]@dataproc-accounts.iam.gserviceaccount.com) para que tenga el rol de Usuario de red para el proyecto host:

      1. Abre las Redes de VPC. en la consola de Google Cloud.

      2. Usa el selector de proyectos para seleccionar el proyecto host.

      3. Haz clic en la red que contiene la subred que usará tu clúster de Dataproc.

      4. En la página Detalles de la red de VPC, haz clic en la casilla de verificación junto al nombre de la subred que usará tu clúster.

      5. Si el panel de información no está abierto, haz clic en Mostrar panel de información.

      6. Realiza los siguientes pasos para cada cuenta de servicio:

        1. En el panel de información, haz clic en Agregar principal.

        2. Completa el formulario Otorgar acceso:

          1. Agregar principales: Ingresa la cuenta de servicio.

          2. Asignar roles: Inserta "Red de Compute" en el cuadro de filtro y, luego, selecciona el rol Usuario de la red de Compute.

          3. Haz clic en Guardar.

  3. Una vez que la cuenta de servicio tenga el rol Network User para el proyecto host, crea un clúster que use la subred de la VPC compartida.

Crea un clúster de Dataproc solo con direcciones IP internas

Puedes crear un clúster de Dataproc que esté aislado del Internet pública cuyas instancias de VM se comunican a través de una subred de IP privada (a las VMs del clúster no se les asignan direcciones IP públicas). Para ello, el la subred debe tener Se habilitó el Acceso privado a Google para permitir que los nodos del clúster accedan a las APIs y a los servicios de Google, como Cloud Storage, desde IP internas.

Console

Puedes crear un clúster de Dataproc con el Acceso privado a Google habilitado en la página Crear un clúster de Dataproc en la consola de Google Cloud. Haz clic en Solo IP interna en la sección Personalizar clúster para habilitar esta función en tu clúster.

gcloud CLI

Puedes crear un clúster de Dataproc solo con direcciones IP internas mediante gcloud dataproc clusters create con la marca ‑‑no-address.

Usa las marcas ‐‐no-address y ‐‐network: Usa la marca ‑‑no-address con el ‑‑network para crear un clúster que usará una subred con el mismo nombre que la red en la región en la que se crea el clúster.

gcloud dataproc clusters create CLUSTER_NAME \
    --no-address \
    --network NETWORK_NAME \
    --region=REGION \
    ... other args ...

Por ejemplo, dado que las redes automáticas se crean con subredes en cada región con el mismo nombre que la red automática, puedes pasar el nombre de esta a ‑‑network flag para crear un clúster que usará la subred automática en la región del clúster.

Usa las marcas ‐‐no-address y ‐‐subnet: Usa la marca ‑‑no-address con el ‑‑subnet para crear un que usará una subred automática o personalizada en la región en la que se creará el clúster. Pasa la marca ‑‑subnet a la ruta de acceso completa del recurso de la subred.

gcloud dataproc clusters create cluster-name \
    --no-address \
    --subnet projects/project-id/regions/region/subnetworks/subnetwork-name \
    --region=region \
    ... other args ...

API de REST

Puedes configurar el campo GceClusterConfig internalIpOnly como true como parte de una solicitud clusters.create para habilitar solo las direcciones IP internas.

Ejemplo:

POST /v1/projects/my-project-id/regions/us-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "example-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "custom-subnet-1",
      "zoneUri": "us-central1-b",
      "internalIpOnly": true
    },
    ...

De forma predeterminada, los clústeres de solo IP interna no tienen acceso a Internet trabajos que descargan dependencias de Internet, como los trabajos que descargan Los paquetes de dependencia de Spark de Maven Central fallarán. Hay varias soluciones para evitar el problema:

  1. Usa Cloud NAT para habilitar el acceso del clúster a Internet.

  2. Crea una imagen personalizada que incluya las dependencias (por ejemplo, paquetes de dependencia de Spark en /usr/lib/spark/jars/).

  3. Sube las dependencias a un bucket de Cloud Storage y, luego, usa una acción de inicialización para descargar las dependencias del bucket durante la creación del clúster.

Redes de Dataproc y Controles del servicio de VPC

Los Controles del servicio de VPC permiten a los administradores definir un perímetro de seguridad alrededor de los recursos de los servicios administrados por Google para controlar la comunicación entre esos servicios.

Ten en cuenta las siguientes limitaciones y estrategias cuando uses redes de Controles del servicio de VPC con clústeres de Dataproc: