Netzwerkkonfiguration eines Dataproc-Clusters

Beschreibung: Netzwerkkonfiguration von Dataproc-Clustern VPC-Routen, Firewallregeln, privater Google-Zugriff und freigegebene VPC für sichere Bereitstellungen mit ausschließlich internen IP-Adressen implementieren

Auf dieser Seite werden die Anforderungen und Optionen für die Netzwerkkonfiguration von Dataproc-Clustern erläutert.

Anforderungen an die Dataproc-Verbindung

Ihr Dataproc-Cluster muss sich in einem VPC-Netzwerk (Virtual Private Cloud) befinden, das die Anforderungen an Routen und Firewalls erfüllt, um sicher auf Google APIs und andere Ressourcen zuzugreifen.

Anforderungen an Routen

Um die Kommunikation zwischen dem Dataproc-Agent, der auf Cluster-VMs ausgeführt wird, und der Dataproc Control API herzustellen, muss das VPC-Netzwerk des Dataproc-Clusters eine Route zum Internetgateway haben. Dies ist auch für Cluster mit ausschließlich internen IP-Adressen erforderlich.

Standardmäßig werden bei Clustern mit Dataproc-Image-Version 2.2 und höher VMs mit ausschließlich internen IP-Adressen bereitgestellt. Dataproc aktiviert automatisch den privater Google-Zugriff, PGA) im Cluster-Subnetz, damit Cluster-VMs mit internen IP-Adressen über eine vom System generierte Standardroute zum Standard-Internetgateway auf Google APIs und ‑Dienste zugreifen können.

Regel Typ Ziel-IP-Bereich Priorität Bereichseinschränkungen Nächster Hop
default-route-[id] Statisch 0.0.0.0/0 1000 - Standard-Internetgateway

PGA sorgt dafür, dass der Cluster-Traffic nicht das öffentliche Internet durchläuft und die Google-Rechenzentren nicht verlässt (siehe das PGA-Beispieldiagramm).

Das Löschen der Standardroute zum Internetgateway wird nicht empfohlen. Wenn Sie den Netzwerkzugriff auf das Internet steuern möchten, verwenden Sie stattdessen Firewallregeln oder ‑richtlinien.

Wenn Sie die Standardroute zum Internetgateway gelöscht haben, müssen Sie eine Standardroute hinzufügen. Der Ziel-IP-Bereich muss 0.0.0.0/0 sein, da die IP-Bereiche für die Dataproc Control API nicht statisch sind.

Firewallanforderungen

Im VPC-Netzwerk Ihres Dataproc-Clusters muss der folgende Traffic explizit zugelassen werden:

  • Traffic, der von Dataproc-Cluster-VMs zur Dataproc Control API und zu anderen Dataproc-Cluster-VMs initiiert wird. Dieser Traffic wird standardmäßig durch die implizierte Regel zum Zulassen von ausgehendem Traffic des VPC-Netzwerk zugelassen. Wenn Sie überschreibende Firewallregeln zum Ablehnen von ausgehendem Traffic hinzugefügt haben, erstellen Sie eine Firewallregel zum Zulassen von ausgehendem Traffic.

  • Antwort-Traffic von der Dataproc Control API zu den Dataproc-Cluster-VMs ist standardmäßig zulässig, da die VPC-Netzwerk-Firewall zustandsorientiert ist.

  • Traffic, der von anderen Dataproc-Cluster-VMs an Dataproc-Cluster-VMs gesendet wird. Dieser Traffic wird standardmäßig durch die implizierte Firewallregel zum Ablehnen von eingehendem Traffic des VPC-Netzwerks abgelehnt. Sie müssen eine Firewallregel zum Zulassen von eingehendem Traffic erstellen.

Best Practices:

  • Verwenden Sie Netzwerk-Tags für Ihre Dataproc-Cluster-VMs, damit Sie die Anwendbarkeit der erforderlichen Firewallregeln auf Dataproc-Cluster-VMs beschränken können. Wenn Sie keine Netzwerk-Tags verwenden, können Sie Ziele anhand des Dienstkontos angeben, das für die Cluster-VMs verwendet wird. Andernfalls können Sie Firewallregeln so konfigurieren, dass sie auf alle VMs im VPC-Netzwerk angewendet werden.
  • Für einen sichereren Netzwerkzugriff und eine sicherere Verbindung, verwenden Sie sichere Tags anstelle von Netzwerk-Tags, um Quellen und Ziele von Firewallregeln zu definieren.

Firewallregel zum Zulassen von eingehendem 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:

  • Mit dem Parameter „Quellen“ werden die Quellen für Pakete angegeben. Alle Dataproc-Cluster-VMs müssen miteinander kommunizieren können. Sie können die VMs im Cluster anhand des IP-Adressbereichs (der primäre Bereich des Dataproc-Cluster-Subnetzes), der Netzwerk-Tags oder der Dienstkonten identifizieren, die mit den VMs verknüpft sind.

  • Die Ziele für die Regel müssen die Cluster-VMs identifizieren. Die Ziele können alle VMs im VPC-Netzwerk sein oder Sie können VMs anhand von Zielnetzwerk-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, können die Dienste erfolgreich ausgeführt werden.

  • Die Priorität der Regel muss höher sein als die Priorität aller Firewallregeln zum Ablehnen von eingehendem Traffic, die auf dieselben Quellen und Ziele angewendet werden.

Firewallregel zum Zulassen von ausgehendem Traffic erstellen

Wenn Sie oder Ihr Netzwerk- oder Sicherheitsadministrator eine Firewallregel für ausgehenden Traffic erstellen, die auf ein VPC-Netzwerk eines Dataproc-Clusters angewendet werden soll, muss sie die folgenden Merkmale aufweisen:

  • Mit dem Parameter „Ziele“ werden die Ziele für Pakete angegeben. Alle Dataproc-Cluster-VMs müssen Traffic zueinander und zur Dataproc Control API initiieren können. Da die IP-Adressen der Control API nicht statisch sind, muss das Ziel mit dem IP-Bereich 0.0.0.0/0 angegeben werden.

  • Die Ziele für die Regel müssen die Cluster-VMs identifizieren. Die Ziele können alle VMs im VPC-Netzwerk sein oder Sie können VMs anhand von Zielnetzwerk-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, können die Dienste erfolgreich ausgeführt werden.

  • Die Priorität der Regel muss höher sein als die Priorität aller Firewallregeln zum Ablehnen von ausgehendem Traffic, die auf dieselben Ziele und Ziele angewendet werden.

VPC-Netzwerk-Firewallregeln diagnostizieren

Für Pakete, die nicht von Firewallregeln mit höherer Priorität verarbeitet werden, können Sie die folgenden 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:

  1. Eine Regel zum Ablehnen von eingehendem Traffic (Quellen 0.0.0.0/0, alle Protokolle, alle Ziele im VPC-Netzwerk)

  2. 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 für diese Regeln, 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

Anstatt das default VPC-Netzwerk zu verwenden, können Sie ein eigenes VPC-Netzwerk im automatischen oder benutzerdefinierten Modus erstellen. Wenn Sie den Cluster erstellen, verknüpfen Sie Ihr Netzwerk mit dem Cluster.

Assured Workloads-Umgebung: Wenn Sie eine Assured Workloads-Umgebung für die Einhaltung von Vorschriften verwenden, müssen der Cluster, das 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, zeigt die Subnetzwerk -Auswahl die Subnetze an, 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 Subnetzwerk den Namen des Netzwerks erhält, können Sie den Namen des VPC-Netzwerk im automatischen Modus an das ‑‑network Flag übergeben. Der Cluster verwendet das VPC-Subnetzwerk im automatischen Modus in der Region, die mit dem Flag ‑‑region angegeben wurde.

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

--subnet example: Sie können das ‑‑subnet Flag verwenden, um einen Cluster zu erstellen, der ein Subnetzwerk eines VPC-Netzwerk im automatischen oder benutzerdefinierten Modus 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 ...
Google Cloud Google Cloud

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,
    },
    ...
Google Cloud Google Cloud

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.

  1. Suchen Sie die Projektnummer des Dataproc-Clusters:

    1. Ö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.
  2. 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.

    1. Das freigegebene VPC-Hostprojekt muss aktiviert sein.

    2. Verknüpfen Sie das Projekt mit dem Dataproc-Cluster mit dem Hostprojekt.

    3. Konfigurieren Sie das Dienstkonto des Dataproc-Dienst-Agents (service-[project-number]@dataproc-accounts.iam.gserviceaccount.com) so, dass es die Rolle „Netzwerknutzer“ für das Hostprojekt hat:

      1. Öffnen Sie in der Google Cloud Console die Seite IAM & Verwaltung.

      2. Wählen Sie mit der Projektauswahl das neue Hostprojekt aus.

      3. Klicken Sie auf Zugriff gewähren.

      4. Füllen Sie das Formular „Zugriff gewähren“ aus:

        1. Hauptkonten hinzufügen: Geben Sie das Dienstkonto ein.

        2. Rollen zuweisen: Geben Sie „Compute-Netzwerk“ in das Filterfeld ein und wählen Sie dann die Rolle Compute-Netzwerknutzer aus.

        3. Klicken Sie auf Speichern.

  3. Nachdem das Dienstkonto die Rolle Network User für das Hostprojekt hat, erstellen Sie einen Cluster der das freigegebene VPC-Netzwerk verwendet.

Cluster erstellen, der ein VPC-Subnetzwerk in einem anderen Projekt verwendet

Ein Dataproc-Cluster kann ein freigegebenes VPC-Subnetzwerk verwenden, das in einem Hostprojekt definiert ist. Das Projekt, in dem der Dataproc-Cluster erstellt wird, wird als Dienstprojekt bezeichnet.

  1. Suchen Sie die Projektnummer des Dataproc-Clusters:

    1. Ö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.
  2. 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.

    1. Das freigegebene VPC-Hostprojekt muss aktiviert sein.

    2. Verknüpfen Sie das Projekt mit dem Dataproc-Cluster mit dem Hostprojekt.

    3. Konfigurieren Sie das Dienstkonto des Dataproc-Dienst-Agents (service-[project-number]@dataproc-accounts.iam.gserviceaccount.com) so, dass es die Rolle „Netzwerknutzer“ für das Hostprojekt hat:

      1. Öffnen Sie in der Google Cloud Console die VPC-Netzwerke Seite.

      2. Wählen Sie mit der Projektauswahl das Hostprojekt aus.

      3. Klicken Sie auf das Netzwerk, das das Subnetzwerk enthält, das Ihr Dataproc-Cluster verwenden soll.

      4. Klicken Sie auf der Seite VPC-Netzwerkdetails das Kästchen neben dem Namen des Subnetzwerks an, das Ihr Cluster verwenden soll.

      5. Wenn das Infofeld nicht geöffnet ist, klicken Sie auf Infofeld ansehen.

      6. Führen Sie die folgenden Schritte für jedes Dienstkonto aus:

        1. Klicken Sie im Infofeld auf Hauptkonto hinzufügen.

        2. Füllen Sie das Formular „Zugriff gewähren“ aus:

          1. Hauptkonten hinzufügen: Geben Sie das Dienstkonto ein.

          2. Rollen zuweisen: Geben Sie „Compute-Netzwerk“ in das Filterfeld ein und wählen Sie dann die Rolle Compute-Netzwerknutzer aus.

          3. Klicken Sie auf Speichern.

  3. Nachdem das Dienstkonto die Rolle Network User für das Hostprojekt hat, erstellen Sie einen Cluster der das freigegebene VPC-Subnetzwerk verwendet.

Cluster mit ausschließlich internen IP-Adressen erstellen

Dieser Abschnitt gilt für Cluster mit Image-Versionen vor 2.2. Cluster-VMs mit ausschließlich internen IP-Adressen sind standardmäßig aktiviert, wenn Dataproc Cluster mit Image-Version 2.2 und höher erstellt werden.

Sie können die Google Cloud Console, die gcloud CLI oder die Dataproc API verwenden, um einen Cluster mit ausschließlich internen IP-Adressen zu erstellen. Beachten Sie, dass Dataproc automatisch den privaten Google-Zugriff im regionalen Subnetz des Clusters aktiviert, wenn nur interne IP-Adressen aktiviert sind, um Verbindungen zu Google APIs und ‑Diensten zu ermöglichen.

Console

Sie können einen Dataproc-Cluster mit ausschließlich internen IP-Adressen über die Dataproc Seite „Cluster erstellen“ in der Google Cloud Console erstellen. Klicken Sie im Bereich Cluster anpassen auf Nur interne IP-Adresse , um dieses Feature für Ihren Cluster zu aktivieren.

gcloud CLI

Sie können einen Cluster mit ausschließlich internen IP-Adressen erstellen über den gcloud dataproc clusters create Befehl mit dem ‑‑no-address Flag.

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

Da automatische Netzwerke mit Subnetzen in jeder Region erstellt werden und jedes Subnetzwerk den Namen des Netzwerks erhält, können Sie den Namen des automatischen Netzwerks an das ‑‑network flag übergeben. Auf diese Weise erstellen Sie einen Cluster, der das automatische Subnetzwerk in der Region des Clusters verwendet.

Alternativ können Sie 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 ...

Google Cloud Google Cloud

REST API

Sie können das GceClusterConfig.internalIpOnly Feld im Rahmen einer clusters.create Anfrage verwenden, um einen Cluster zu erstellen, der nur interne IP-Adressen verwendet.

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
    },
    ...

Google Cloud Google Cloud

Abhängigkeiten mit Clustern mit ausschließlich internen IP-Adressen herunterladen

Standardmäßig haben Cluster mit ausschließlich internen IP-Adressen keinen Zugriff auf das Internet. Daher schlagen Jobs fehl, die Abhängigkeiten aus dem Internet herunterladen, z. B. Jobs, die Spark-Abhängigkeitspakete von Maven Central herunterladen. Es gibt mehrere Problemumgehungen, um das Problem zu vermeiden:

  1. Verwenden Sie Cloud NAT um den Clusterzugriff auf das Internet zu aktivieren.

  2. Erstellen Sie ein benutzerdefiniertes Image das die Abhängigkeiten enthält (z. B. Spark-Abhängigkeitspakete in /usr/lib/spark/jars/).

  3. 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:

Nächste Schritte