Auf dieser Seite werden die Anforderungen an die Netzwerkkonfiguration von Dataproc-Clustern erläutert und Optionen.
Dataproc-Konnektivitätsanforderungen
Ihr Dataproc-Cluster muss sich in einem VPC-Netzwerk befinden, das die Routing- und Firewallanforderungen für den sicheren Zugriff auf Google APIs und andere Ressourcen erfüllt.
Anforderungen an Routen
Der Dataproc-Agent, der auf Cluster-VMs ausgeführt wird, benötigt eine Route zum Internet, um auf die Dataproc Control API zuzugreifen und Jobs abzurufen und den Status zu melden. VPC-Netzwerke, deren Erstellung eine vom System generierte Standardroute enthalten mit dem Internet verbunden sind. Das Löschen der Standardroute zum Internet wird nicht empfohlen. Verwenden Sie stattdessen Firewalls, um den Netzwerkzugriff zu steuern. Beachten Sie, dass reine interne IP-Cluster ebenfalls Diese Standardroute zum Internet für den Zugriff auf Dataproc Control APIs voraussetzen und andere Google-Dienste wie Cloud Storage nutzen, deren Traffic die Google-Rechenzentren verlassen.
Firewallanforderungen
Die VMs (virtuellen Maschinen) des Dataproc-Clusters müssen über ICMP-, TCP- (alle Ports) und UDP-Protokolle (alle Ports) miteinander kommunizieren können.
Das VPC-Netzwerk default
default-allow-internal
-Firewall
Regel erfüllt die Anforderungen an die Verbindungsanforderungen von Dataproc-Clustern
und lässt eingehenden Traffic aus dem Quellbereich 10.128.0.0/9
von
alle VMs im VPC-Netzwerk so:
Regel | Netzwerk | Richtung | Priorität | Quellbereich | Protokolle:Ports |
---|---|---|---|---|---|
default-allow-internal |
default |
Eingehend | 65534 |
10.128.0.0/9 |
tcp:0-65535 ,udp:0-65535 ,icmp |
Wenn Sie die Firewallregel für
default-allow-internal
löschen, wird der eingehende Traffic imdefault
-Netzwerk durch die implizierte Regel zum Ablehnen von eingehendem Traffic blockiert.Wenn Sie die Firewallregel
default-allow-internal
löschen oder das VPC-Netzwerkdefault
nicht verwenden, müssen Sie eine eigene Regel erstellen, die Dataproc-Konnektivitätsanforderungen erfüllt, das VPC-Netzwerk Ihres Clusters.
Best Practice: Firewallregel für eingehenden Traffic erstellen für Ihr Cluster-VPC-Netzwerk, das eingehende Verbindungen nur zwischen indem Sie einen Quell-IP-Bereich verwenden oder Cluster-VMs anhand Netzwerk-Tag oder Dienstkonto.
Firewallregel für eingehenden Traffic erstellen
Wenn Sie oder Ihr Netzwerk- oder Sicherheitsadministrator Firewallregel für eingehenden Traffic auf das VPC-Netzwerk eines Dataproc-Clusters angewendet werden soll, die folgenden Merkmale:
Der Parameter sources gibt an, die Quellen für Pakete. Alle Dataproc-Cluster-VMs müssen miteinander kommunizieren können. Sie können die VMs im Cluster anhand des IP-Adressbereichs, der Quell-Tags oder der Dienstkonten identifizieren, die mit den VMs verknüpft sind.
Das Ziel für die Regel muss die Cluster-VMs identifizieren. Das Ziel kann alle VMs im VPC-Netzwerk sein oder Sie können VMs anhand von IP-Adressbereichen, Ziel-Tags oder Zieldienstkonten identifizieren.
Die Regel muss Folgendes enthalten: Protokolle und Ports:
- TCP (alle Ports, 0 bis 65535)
- UDP (alle Ports, 0 bis 65535)
- ICMP
Dataproc verwendet Dienste, die an mehreren Ports ausgeführt werden. Wenn Sie alle Ports angeben, werden die Dienste erfolgreich ausgeführt.
VPC-Firewallregeln diagnostizieren
Für Pakete, die nicht von Firewallregeln mit höherer Priorität verarbeitet werden, können Sie zwei Firewallregeln mit niedriger Priorität (65534) ablehnen. Im Gegensatz zu den implizierten Firewallregeln können Sie das Logging von Firewallregeln für jede dieser Regeln mit niedriger Priorität aktivieren:
Eine Regel zum Ablehnen von eingehendem Traffic (Quellen
0.0.0.0/0
, alle Protokolle, alle Ziele im VPC-Netzwerk)Regel für Ablehnen von ausgehenden Traffic (Ziele
0.0.0.0/0
, alle Protokolle, alle Ziele im VPC-Netzwerk)
Mit diesem Logging und Regeln-Logging mit niedriger Priorität können Sie Pakete protokollieren, die nicht von Firewallregeln mit höherer Priorität (und möglicherweise spezifischeren) verarbeitet werden. Diese beiden Regeln mit niedriger Priorität entsprechen auch den Best Practices für die Sicherheit, indem sie eine Strategie für das endgültige Verwerfen von Paketen implementieren.
Prüfen Sie die Firewallregel-Logs auf diese Regeln, ob Sie Regeln mit höherer Priorität erstellen oder ändern müssen, Pakete. Wenn beispielsweise Pakete, die zwischen Dataproc-Cluster-VMs gesendet werden, verworfen werden, kann dies darauf hindeuten, dass Ihre Firewallregeln angepasst werden müssen.
VPC-Netzwerk erstellen
Anstatt das VPC-Netzwerk default
zu verwenden, können Sie Ihr eigenes erstellen
automatischer Modus
oder benutzerdefinierte VPC
Netzwerk. Wenn Sie den Cluster erstellen, verknüpfen Sie Ihr Netzwerk mit dem Cluster.
Assured Workloads-Umgebung: Wenn Sie eine Assured Workloads-Umgebung für Einhaltung gesetzlicher Vorschriften, des Clusters, seines VPC-Netzwerk und seiner Buckets müssen in der Assured Workloads-Umgebung enthalten sein.
Cluster erstellen, der Ihr VPC-Netzwerk verwendet
Google Cloud CLI
Verwenden Sie gcloud dataproc clusters create
mit dem Flag ‑‑network
oder ‑‑subnet
, um einen Cluster in einem Subnetzwerk in Ihrem Netzwerk zu erstellen.
Wenn Sie das Flag ‑‑network verwenden, verwendet der Cluster ein Subnetzwerk mit demselben Namen wie das angegebene Netzwerk in der Region, in der der Cluster erstellt wird.
--network example
. Da automatische Netzwerke mit Subnetzen in jeder Region erstellt werden und jedes Subnetz den Netzwerknamen hat, können Sie den Namen des VPC-Netzwerks im automatischen Modus an das Flag ‑‑network
übergeben.
Der Cluster verwendet das VPC-Subnetzwerk im automatischen Modus im
Region, die mit dem Flag ‐‐region angegeben wird.
gcloud dataproc clusters create CLUSTER_NAME \ --network NETWORK_NAME \ --region=REGION \ ... other args ...
--subnet example
Sie können die ‑‑subnet
Flag zum Erstellen eines Clusters, der einen automatischen Modus oder ein benutzerdefiniertes VPC-Netzwerksubnetz in der
Clusterregion. Geben Sie den vollständigen Ressourcenpfad des Subnetzes an.
gcloud dataproc clusters create CLUSTER_NAMEW \ --subnet projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --region=REGION \ ... other args ...
REST API
Sie können das Feld networkUri oder subnetworkUri von GceClusterConfig
im Rahmen einer clusters.create-Anfrage angeben.
Beispiel
POST /v1/projects/my-project-id/regions/us-central1/clusters/ { "projectId": "PROJECT_ID", "clusterName": CLUSTER_NAME, "config": { "configBucket": "", "gceClusterConfig": { "subnetworkUri": SUBNET_NAME, }, ...
Console
Wählen Sie Ihr Netzwerk im Netzwerk aus. im Bereich Cluster anpassen. Nachdem Sie die zeigt die Auswahl Subnetzwerk die im Region, die Sie für den Cluster ausgewählt haben.
Cluster erstellen, der ein VPC-Netzwerk in einem anderen Projekt verwendet
Ein Dataproc-Cluster kann ein freigegebenes VPC-Netzwerk verwenden, das in einem Hostprojekt definiert ist. Das Projekt, in dem der Dataproc-Cluster erstellt wird, wird als Dienstprojekt bezeichnet.
Projektnummer des Dataproc-Clusters ermitteln:
- Öffnen Sie in der Google Cloud Console die Seite IAM & Verwaltung Einstellungen. Wählen Sie das Projekt aus, in dem Sie den Dataproc-Cluster erstellen möchten. Kopieren Sie die Projekt-ID.
Ein Hauptkonto mit der Rolle "Administrator für freigegebene VPC" muss die folgenden Schritte ausführen. Weitere Informationen finden Sie in der Anleitung unter Freigegebene VPC einrichten.
Das freigegebene VPC-Hostprojekt muss aktiviert sein.
Projekt an den Dataproc-Cluster anhängen zum Hostprojekt.
Folgen Sie der Anleitung in diesem Teilschritt, um beide der folgenden Dienstkonten so zu konfigurieren, dass sie die Rolle Netzwerknutzer für das Hostprojekt haben:
- Dienstkonto des Dataproc-Dienst-Agents:
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
- Google APIs-Dienstkonto:
[project-number]@cloudservices.gserviceaccount.com
Öffnen Sie das IAM & Administrator in der Google Cloud Console.
Verwenden Sie die Projektauswahl, um das neue Hostprojekt auszuwählen.
Klicken Sie auf Zugriff gewähren.
Füllen Sie das Formular „Zugriff gewähren“ aus. Wiederholen Sie diese Schritte, um beide Dienstkonten hinzuzufügen:
Hauptkonten hinzufügen: Geben Sie das Dienstkonto ein.
Rollen zuweisen: Fügen Sie „Compute Network“ ein. Wählen Sie im Filterfeld Rolle Compute-Netzwerknutzer
Klicken Sie auf Speichern.
- Dienstkonto des Dataproc-Dienst-Agents:
Nachdem beide Dienstkonten die Rolle
Network User
für das Hostprojekt haben, Cluster erstellen das das freigegebene VPC-Netzwerk verwendet.
Cluster erstellen, der ein VPC-Subnetzwerk in einem anderen Projekt verwendet
Ein Dataproc-Cluster kann ein freigegebenes VPC-Subnetz verwenden, das in einem Hostprojekt definiert ist. Das Projekt, in dem der Dataproc-Cluster erstellt wird, wird als Dienstprojekt bezeichnet.
Projektnummer des Dataproc-Clusters ermitteln:
- Öffnen Sie in der Google Cloud Console die Seite IAM & Verwaltung Einstellungen. Wählen Sie das Projekt aus, in dem Sie die Dataproc-Cluster Kopieren Sie die Projekt-ID.
Ein Hauptkonto mit der Rolle "Administrator für freigegebene VPC" muss die folgenden Schritte ausführen. Weitere Informationen finden Sie in der Anleitung unter Freigegebene VPC einrichten.
Prüfen Sie, ob das freigegebene VPC-Hostprojekt aktiviert ist.
Verknüpfen Sie das Projekt mit dem Dataproc-Cluster mit dem Hostprojekt.
Folgen Sie der Anleitung in diesem Schritt, um beide der folgenden Dienstkonten so zu konfigurieren, dass sie die Rolle Netzwerknutzer für das Hostprojekt haben:
- Dataproc-Dienst-Agent-Dienstkonto:
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
- Google APIs-Dienstkonto:
[project-number]@cloudservices.gserviceaccount.com
Öffnen Sie die VPC-Netzwerke. in der Google Cloud Console.
Wählen Sie mit der Projektauswahl das Hostprojekt aus.
Klicken Sie auf das Netzwerk mit dem Subnetzwerk, Dataproc-Cluster verwendet.
Klicken Sie auf der Seite VPC-Netzwerkdetails auf das Kästchen neben dem Namen des Subnetzes, das Ihr Cluster verwenden soll.
Wenn das Infofeld nicht geöffnet ist, klicken Sie auf Infofeld ansehen.
Führe für jedes Dienstkonto die folgenden Schritte aus:
Klicken Sie im Infofeld auf Hauptkonto hinzufügen.
Füllen Sie das Formular „Zugriff gewähren“ aus:
Hauptkonten hinzufügen: Geben Sie das Dienstkonto ein.
Rollen zuweisen: Fügen Sie „Compute Network“ ein. Wählen Sie im Filterfeld Rolle Compute-Netzwerknutzer
Klicken Sie auf Speichern.
- Dataproc-Dienst-Agent-Dienstkonto:
Nachdem beide Dienstkonten die Rolle
Network User
für das Hostprojekt haben, Cluster erstellen das das freigegebene VPC-Subnetzwerk verwendet.
Dataproc-Cluster nur mit internen IP-Adressen erstellen
Sie können einen Dataproc-Cluster erstellen, der vom öffentlichen Internet isoliert ist und dessen VM-Instanzen über ein privates IP-Subnetzwerk kommunizieren. Cluster-VMs werden keine öffentlichen IP-Adressen zugewiesen. Zu diesem Zweck Subnetzwerk muss Privater Google-Zugriff aktiviert damit Clusterknoten auf Google APIs und Google-Dienste zugreifen können, z. B. Cloud Storage von internen IP-Adressen
gcloud-CLI
Sie können einen Dataproc-Cluster mit ausschließlich internen IP-Adressen über den Befehl gcloud dataproc clusters create
mit dem Flag ‑‑no-address
erstellen.
Flags ‑‑no-address und ‑‑network verwenden: Verwenden Sie das Flag ‑‑no-address
mit dem Flag ‑‑network
, um einen Cluster zu erstellen, der ein Subnetzwerk mit demselben Namen wie das Netzwerk in der Region verwendet, in der der Cluster erstellt wird.
gcloud dataproc clusters create CLUSTER_NAME \ --no-address \ --network NETWORK_NAME \ --region=REGION \ ... other args ...
Da automatische Netzwerke z. B. mit Subnetzen in jedem
mit demselben Namen wie das automatische Netzwerk hat, können Sie das automatische
in ‑‑network flag
ändern
um einen Cluster zu erstellen, der das automatische Subnetzwerk in der Region des Clusters verwendet.
Verwenden Sie die Flags ‐‐no-address und ‐‐subnet:
Verwenden Sie das Flag ‑‑no-address
mit dem
‑‑subnet
-Flags zum Erstellen eines
Cluster, der ein automatisches oder benutzerdefiniertes Subnetzwerk in der Region verwendet
in dem der Cluster erstellt wird. Flag ‑‑subnet
übergeben
den vollständigen Ressourcenpfad des Subnetzes.
gcloud dataproc clusters create cluster-name \ --no-address \ --subnet projects/project-id/regions/region/subnetworks/subnetwork-name \ --region=region \ ... other args ...
REST API
Sie können das internalIpOnly-Feld von GceClusterConfig
im Rahmen einer clusters.create-Anfrage auf true
setzen, um nur interne IP-Adressen zu aktivieren.
Beispiel:
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 }, ...
Console
Sie können einen Dataproc-Cluster mit aktiviertem privatem Google-Zugriff über die Dataproc-Seite Cluster erstellen der Google Cloud Console erstellen. Klicken Sie auf Nur interne IP das Tool Cluster anpassen um diese Funktion für Ihren Cluster zu aktivieren.
Da rein interne IP-Cluster standardmäßig keinen Zugriff auf das Internet haben, Jobs, die Abhängigkeiten aus dem Internet herunterladen, z. B. Jobs, die Spark-Abhängigkeitspakete von Maven Central schlagen fehl. Es gibt mehrere Problemumgehungen, um das Problem zu vermeiden:
Cloud NAT verwenden um den Clusterzugriff auf das Internet zu ermöglichen.
Erstellen Sie ein benutzerdefiniertes Image, das die Abhängigkeiten enthält (z. B. Spark-Abhängigkeitspakete in
/usr/lib/spark/jars/
).Laden Sie die Abhängigkeiten in einen Cloud Storage-Bucket hoch und verwenden Sie dann eine Initialisierungsaktion, um die Abhängigkeiten während der Clustererstellung aus dem Bucket herunterzuladen.
Dataproc- und VPC Service Controls-Netzwerke
Mit VPC Service Controls können Administratoren einen Sicherheitsbereich für Ressourcen aus von Google verwalteten Diensten festlegen, um die Kommunikation mit und zwischen diesen Diensten zu steuern.
Beachten Sie die folgenden Einschränkungen und Strategien, wenn Sie VPC Service Controls-Netzwerke mit Dataproc-Cluster:
Erstellen Sie einen Dataproc, um Komponenten außerhalb des VPC Service Controls-Perimeters zu installieren benutzerdefinierten Image, das Die Komponenten werden vorinstalliert und dann der Cluster mit dem benutzerdefinierten Image erstellt.
Siehe Dataproc-spezifische Schritte zum Schutz mit VPC Service Controls