Auf dieser Seite werden die Anforderungen und Optionen für die Netzwerkkonfiguration von Dataproc-Clustern beschrieben.
Anforderungen an die Dataproc-Verbindung
Ihr Dataproc-Cluster muss sich in einem VPC-Netzwerk befinden, das die Routen- und Firewallanforderungen für den sicheren Zugriff auf Google APIs und andere Ressourcen erfüllt.
Anforderungen an das Routing
Der Dataproc-Agent, der auf Cluster-VMs ausgeführt wird, benötigt eine Route zum Internet, um auf die Dataproc-Steuerungs-API zuzugreifen, Jobs abzurufen und den Status zu melden. Beim Erstellen enthalten VPC-Netzwerke eine vom System generierte Standardroute zum Internet. Das Löschen der Standardroute zum Internet wird nicht empfohlen. Verwenden Sie stattdessen Firewalls, um den Netzwerkzugriff zu steuern. Beachten Sie, dass Cluster mit nur internen IP-Adressen auch diese Standardroute zum Internet benötigen, um auf Dataproc-Steuerungs-APIs und andere Google-Dienste wie Cloud Storage zuzugreifen. Der Traffic verlässt jedoch nicht die Google-Rechenzentren.
Firewallanforderungen
Die VMs eines Dataproc-Clusters müssen über die Protokolle ICMP, TCP (alle Ports) und UDP (alle Ports) miteinander kommunizieren können.
Die Firewallregel default
VPC-Netzwerk default-allow-internal
erfüllt die Anforderungen an die Konnektivität von Dataproc-Clustern und lässt eingehenden Traffic aus dem Quellbereich 10.128.0.0/9
von allen VMs im VPC-Netzwerk zu:
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
default-allow-internal
löschen, wird der eingehende Traffic im Netzwerkdefault
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 den Anforderungen für die Dataproc-Konnektivität entspricht, und sie dann auf das VPC-Netzwerk Ihres Clusters anwenden.
- Erstellen Sie eine Firewallregel für eingehenden Traffic für das VPC-Netzwerk Ihres Clusters, die eingehende Verbindungen nur zwischen Cluster-VMs zulässt. Verwenden Sie dazu einen Quell-IP-Bereich oder identifizieren Sie Cluster-VMs anhand von Netzwerk-Tags oder Dienstkonten.
- Für einen sichereren Netzwerkzugriff und eine sicherere Konnektivität sollten Sie sichere Tags anstelle von Netzwerktags verwenden, um Quellen und Ziele von Firewallregeln zu definieren.
Firewallregel für eingehenden Traffic erstellen
Wenn Sie oder Ihr Netzwerk- oder Sicherheitsadministrator eine Firewallregel für eingehenden Traffic erstellen, die auf ein VPC-Netzwerk eines Dataproc-Clusters angewendet werden soll, muss sie die folgenden Merkmale aufweisen:
Der Parameter sources gibt die Quellen für Pakete an. 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 Dienstkonten identifizieren, die mit den VMs verknüpft sind.
Das Ziel für die Regel muss die VMs des Clusters 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 die folgenden Protokolle und Ports enthalten:
- TCP (alle Ports, 0 bis 65535)
- UDP (alle Ports, 0 bis 65535)
- ICMP
Dataproc verwendet Dienste, die auf 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.
Sie können die Firewallregel-Logs für diese Regeln prüfen, um festzustellen, ob Sie Regeln mit höherer Priorität erstellen oder ändern müssen, um Pakete zuzulassen. 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
Anstelle des default
-VPC-Netzwerks können Sie ein eigenes VPC-Netzwerk im automatischen Modus oder ein benutzerdefiniertes VPC-Netzwerk erstellen. Wenn Sie den Cluster erstellen, verknüpfen Sie Ihr Netzwerk mit dem Cluster.
Assured Workloads-Umgebung:Wenn Sie eine Assured Workloads-Umgebung zur Einhaltung von Vorschriften verwenden, müssen der Cluster, das zugehörige VPC-Netzwerk und die Cloud Storage-Buckets in der Assured Workloads-Umgebung enthalten sein.
Cluster erstellen, der Ihr VPC-Netzwerk verwendet
Console
Wählen Sie im Bereich „Netzwerkkonfiguration“ des Steuerfelds Cluster anpassen Ihr Netzwerk aus. Nachdem Sie das Netzwerk ausgewählt haben, werden in der Auswahl Subnetzwerk die Subnetzwerke angezeigt, die in der Region verfügbar sind, die Sie für den Cluster ausgewählt haben.
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 erhält, können Sie den Namen des VPC-Netzwerk im automatischen Modus an das Flag ‑‑network
übergeben.
Der Cluster verwendet das VPC-Subnetzwerk im automatischen Modus in der 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 das Flag ‑‑subnet
verwenden, um einen Cluster zu erstellen, der ein Subnetzwerk im automatischen Modus oder ein benutzerdefiniertes VPC-Netzwerk-Subnetzwerk in der Clusterregion verwendet. 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, }, ...
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.
So finden Sie die Projektnummer des Dataproc-Clusters:
- Öffnen Sie in derGoogle Cloud -Konsole 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.
Verknüpfen Sie das Projekt mit dem Dataproc-Cluster mit dem Hostprojekt.
Konfigurieren Sie das Dataproc-Dienst-Agent-Dienstkonto (
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
) so, dass es die Rolle Netzwerknutzer für das Hostprojekt hat:Öffnen Sie in der Google Cloud Console die Seite IAM & Verwaltung.
Wählen Sie mit der Projektauswahl das neue Hostprojekt aus.
Klicken Sie auf Zugriff gewähren.
Füllen Sie das Formular „Zugriff gewähren“ aus:
Hauptkonten hinzufügen: Geben Sie das Dienstkonto ein.
Rollen zuweisen: Geben Sie „Compute Network“ in das Filterfeld ein und wählen Sie dann die Rolle Compute-Netzwerknutzer aus.
Klicken Sie auf Speichern.
Nachdem das Dienstkonto die Rolle
Network User
für das Hostprojekt hat, können Sie einen Cluster erstellen, der das freigegebene VPC-Netzwerk verwendet.
Cluster erstellen, der ein VPC-Subnetzwerk in einem anderen Projekt verwendet
Ein Dataproc-Cluster kann ein Subnetz für freigegebene VPC verwenden, das in einem Hostprojekt definiert ist. Das Projekt, in dem der Dataproc-Cluster erstellt wird, wird als Dienstprojekt bezeichnet.
So finden Sie die Projektnummer des Dataproc-Clusters:
- Öffnen Sie in derGoogle Cloud -Konsole 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.
Verknüpfen Sie das Projekt mit dem Dataproc-Cluster mit dem Hostprojekt.
Konfigurieren Sie das Dataproc-Dienst-Agent-Dienstkonto (
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
) so, dass es die Rolle Netzwerknutzer für das Hostprojekt hat:Öffnen Sie in der Google Cloud -Console die Seite VPC-Netzwerke.
Wählen Sie mit der Projektauswahl das Hostprojekt aus.
Klicken Sie auf das Netzwerk, das das Subnetzwerk enthält, das von Ihrem Dataproc-Cluster verwendet wird.
Klicken Sie auf der Seite VPC-Netzwerkdetails das Kästchen neben dem Namen des Subnetzwerks an, das Ihr Cluster verwenden soll.
Wenn das Infofeld nicht geöffnet ist, klicken Sie auf Infofeld ansehen.
Führen Sie die folgenden Schritte für jedes Dienstkonto 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: Geben Sie „Compute Network“ in das Filterfeld ein und wählen Sie dann die Rolle Compute-Netzwerknutzer aus.
Klicken Sie auf Speichern.
Nachdem das Dienstkonto die Rolle
Network User
für das Hostprojekt hat, können Sie einen Cluster erstellen, der das Subnetzwerk der freigegebene VPC 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. Den Cluster-VMs werden keine öffentlichen IP-Adressen zugewiesen. Dazu muss für das Subnetzwerk des Clusters der private Google-Zugriff aktiviert sein, damit Clusterknoten über interne IP-Adressen auf Google APIs und Google-Dienste wie Cloud Storage zugreifen können.
Sie können die Google Cloud Console, die gcloud CLI oder die Dataproc API verwenden, um beim Erstellen eines Clusters nur interne IP-Adressen zu aktivieren.
Console
Sie können einen Dataproc-Cluster mit aktiviertem privater Google-Zugriff über die Dataproc-Seite Cluster erstellen der Google Cloud Console erstellen. Klicken Sie im Bereich Cluster anpassen auf Nur interne IP, um diese Funktion für Ihren Cluster zu aktivieren.
gcloud-CLI
Sie können nur interne IP-Adressen über den Befehl gcloud dataproc clusters create
mit dem Flag ‑‑no-address
aktivieren.
Sie können das‑‑network
-Flag verwenden, 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 beispielsweise beim Erstellen automatischer Netzwerke die zugehörigen Subnetze in jeder Region denselben Namen wie das automatische Netzwerk haben, können Sie den Namen des automatischen Netzwerks an das Flag ‑‑network flag
übergeben. Auf diese Weise erstellen Sie einen Cluster, der das automatische Subnetzwerk in der Region des Clusters verwendet.
Sie können das Flag ‑‑subnet
verwenden, um einen Cluster zu erstellen, der ein automatisches oder benutzerdefiniertes Subnetzwerk in der Region verwendet, in der der Cluster erstellt wird. Übergeben Sie dem ‑‑subnet
-Flag 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 Feld GceClusterConfig.internalIpOnly
im Rahmen einer clusters.create
-Anfrage verwenden, 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 }, ...
Abhängigkeiten mit Clustern herunterladen, die nur interne IP-Adressen haben
Standardmäßig haben Cluster, die nur interne IP-Adressen haben, keinen Zugriff auf das Internet. Daher schlagen Jobs, die Abhängigkeiten aus dem Internet herunterladen, z. B. Jobs, die Spark-Abhängigkeitspakete von Maven Central herunterladen, fehl. Es gibt mehrere Problemumgehungen, um das Problem zu vermeiden:
Verwenden Sie Cloud NAT, um den Clusterzugriff auf das Internet zu aktivieren.
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 bei Verwendung von VPC Service Controls-Netzwerken mit Dataproc-Clustern:
Erstellen Sie zum Installieren von Komponenten außerhalb des VPC Service Controls-Bereichs ein benutzerdefiniertes Image für Dataproc, das die Komponenten vorinstalliert, und erstellen Sie dann den Cluster mit dem benutzerdefinierten Image.
Siehe Dataproc-spezifische Schritte zum Schutz mit VPC Service Controls