Wenn Sie ein VPC-Netzwerk (Virtual Private Cloud) für Managed Service for Apache Spark konfigurieren, können Sie Arbeitslasten sicher mit internen Projektressourcen und Google APIs verbinden. Diese Subnetzwerk- und Firewalleinstellungen ermöglichen es Spark-Treibern und ‑Executoren, direkt miteinander zu kommunizieren, während die Sicherheitsrichtlinien Ihrer Organisation eingehalten werden.
Anforderungen an VPC-Netzwerk
In diesem Dokument werden die VPC-Netzwerkanforderungen für Batcharbeitslasten und interaktive Sitzungen von Managed Service for Apache Spark beschrieben.
Privater Google-Zugriff
Batcharbeitslasten und interaktive Sitzungen von Managed Service for Apache Spark werden auf VMs mit ausschließlich internen IP-Adressen und in einem regionalen Subnetz ausgeführt, für das der privater Google-Zugriff-Zugriff automatisch aktiviert ist.
Wenn Sie kein Subnetz angeben, wählt Managed Service for Apache Spark das Subnetz default in der Region der Batcharbeitslast oder Sitzung als Subnetz für eine Batcharbeitslast oder Sitzung aus.
Wenn Ihre Arbeitslast Zugriff auf ein externes Netzwerk oder das Internet benötigt, z. B. um Ressourcen wie ML-Modelle von PyTorch Hub oder Hugging Face herunterzuladen, können Sie Cloud NAT einrichten, um ausgehenden Traffic über interne IP-Adressen in Ihrem VPC-Netzwerk zuzulassen.
Offene Subnetzkonnektivität
Das VPC-Subnetz für die Region, die für die Batcharbeitslast oder interaktive Sitzung des Managed Service for Apache Spark ausgewählt wurde, muss die interne Kommunikation auf allen Ports zwischen VM-Instanzen im Subnetz zulassen.
Damit schädliche Skripts in einer Arbeitslast keine anderen Arbeitslasten beeinträchtigen, stellt Managed Service for Apache Spark Standardsicherheitsmaßnahmen bereit.
Mit dem folgenden Google Cloud CLI-Befehl wird eine Netzwerk-Firewall an ein Subnetz angehängt, die die interne eingehende Kommunikation zwischen VMs über alle Protokolle und Ports zulässt:
gcloud compute firewall-rules create allow-internal-ingress \ --network=NETWORK_NAME \ --source-ranges=SUBNET_RANGES \ --destination-ranges=SUBNET_RANGES \ --direction=ingress \ --action=allow \ --rules=all
Hinweise:
SUBNET_RANGES: Siehe Interne eingehende Verbindungen zwischen VMs zulassen. Das VPC-Netzwerk
defaultin einem Projekt mit der Firewallregeldefault-allow-internal, die eingehende Kommunikation auf allen Ports (tcp:0-65535,udp:0-65535undicmp protocols:ports) zulässt, erfüllt die Anforderung für die Verbindung mit offenen Subnetzen. Diese Regel lässt jedoch auch eingehenden Traffic von jeder VM-Instanz im Netzwerk zu.
Automatisch erstellte regionale System-Firewallrichtlinie
Um die Anforderung für die Konnektivität offener Subnetze zu erfüllen, erstellen Batcharbeitslasten und interaktive Sitzungen von Managed Service for Apache Spark, die die Laufzeitversion 3.0 oder höher verwenden, automatisch eine regionale System-Firewallrichtlinie dataproc-firewall-policy-[network-id]-region oder dataproc-fw-[network-id]-region im VPC-Subnetz für den Batch oder die Sitzung.
Diese Richtlinie enthält die folgenden Regeln für eingehenden und ausgehenden Traffic.
| Name | Zweck | Priorität | Richtung | Aktion | Quelle und Ziel | Protokoll und Ports |
|---|---|---|---|---|---|---|
dataproc-allow-internal-ingress-rule-[subnetworkId] |
Ermöglicht die gesamte erforderliche interne Kommunikation nur von anderen getaggten Managed Service for Apache Spark-VMs im selben Subnetz. | 4 | EINGEHEND | ZULASSEN |
srcSecureTag: Sicherer Tag-Wert für dieses Subnetz.targetSecureTags:Wert des sicheren Tags für dieses Subnetz. |
tcp:0-65535, udp:0-65535, icmp protocols:ports |
dataproc-allow-internal-egress-rule-[subnetworkId] |
Ermöglicht Managed Service for Apache Spark-VMs, Pakete wie pip und apt-get herunterzuladen und über den privater Google-Zugriff auf Google APIs zuzugreifen. | 5 | AUSGEHEND | ZULASSEN |
destIpRanges: 0.0.0.0/0.targetSecureTags:Wert des sicheren Tags für dieses Subnetz. |
tcp:0-65535, udp:0-65535, icmp protocols:ports |
Hinweise:
Managed Service for Apache Spark stellt ein Mandantenprojekt bereit, das mit dem Nutzerprojekt verknüpft ist, um sichere Tags zu speichern. Managed Service for Apache Spark erstellt ein sicheres Tag für das Subnetz im Mandantenprojekt und hängt es an Managed Service for Apache Spark-VMs an. Dadurch wird sichergestellt, dass die erstellte System-Firewallrichtlinie nur für Managed Service for Apache Spark-VMs gilt.
Automatisch erstellte System-Firewallrichtlinien werden für gemeinsam genutzte VPCs nicht unterstützt.
Managed Service for Apache Spark und VPC-SC-Netzwerke
Mit VPC Service Controls können Netzwerkadministratoren einen Sicherheitsbereich für Ressourcen aus von Google verwalteten Diensten festlegen, um die Kommunikation mit und zwischen diesen Diensten zu steuern.
Berücksichtigen Sie die folgenden Strategien, wenn Sie VPC-SC-Netzwerke mit Managed Service for Apache Spark verwenden:
Erstellen Sie ein benutzerdefiniertes Container-Image, in dem Abhängigkeiten außerhalb des VPC-SC-Perimeters vorinstalliert sind, und senden Sie dann eine Spark-Batcharbeitslast, die Ihr benutzerdefiniertes Container-Image verwendet.
Weitere Informationen finden Sie unter VPC Service Controls – Managed Service for Apache Spark.