VPC Service Controls konfigurieren

Mit Virtual Private Cloud Service Controls (VPC Service Controls) können Organisationen Perimeter für Google Cloud-Ressourcen definieren, um das Risiko einer Daten-Exfiltration zu minimieren.

Cloud Composer-Umgebungen können innerhalb eines Dienstperimeters bereitgestellt werden. Durch die Konfiguration Ihrer Umgebung mit VPC Service Controls können Sie vertrauliche Daten schützen und gleichzeitig die vollständig verwalteten Workflow-Orchestrierungsfunktionen von Cloud Composer nutzen.

Die VPC Service Controls-Unterstützung für Cloud Composer bedeutet:

  • Cloud Composer kann jetzt als sicherer Dienst innerhalb von VPC Service Controls-Perimetern ausgewählt werden.
  • Alle von Cloud Composer verwendeten unterliegenden Ressourcen sind so konfiguriert, dass sie die VPC Service Controls-Architektur unterstützen und den relevanten Regeln entsprechen.

Ihre Vorteile bei der Bereitstellung von Cloud Composer-Umgebungen mit VPC Service Controls sind:

  • Geringeres Risiko der Daten-Exfiltration.
  • Schutz vor Datenweitergabe aufgrund falsch konfigurierter Zugriffskontrollen.
  • Reduziertes Risiko, dass böswillige Nutzer Daten in nicht autorisierte Google Cloud-Ressourcen kopieren oder dass externe Angreifer über das Internet auf Google Cloud-Ressourcen zugreifen.

Dienstperimeter erstellen

Informationen zum Erstellen und Konfigurieren von Dienstperimetern finden sich unter Dienstperimeter erstellen. Wählen Sie Cloud Composer als einen der im Perimeter gesicherten Dienste aus.

Umgebungen in einem Perimeter erstellen

Es sind einige zusätzliche Schritte erforderlich, um Cloud Composer in einem Perimeter bereitzustellen. Beim Erstellen einer Cloud Composer-Umgebung gilt Folgendes:

  1. Aktivieren Sie die Access Context Manager API und die Cloud Composer API für Ihr Projekt. Weitere Informationen finden sich unter APIs aktivieren.

  2. Fügen Sie dem Perimeter die folgenden Dienste hinzu, um den Schutz Ihrer Umgebung zu optimieren: Cloud SQL, Pub/Sub, Monitoring, Cloud Storage, Kubernetes Engine, Container Registry, Artifact Registry und Compute Engine.

  3. Verwenden Sie die Version composer-1.10.4 oder höher.

  4. Achten Sie darauf, dass die DAGs-Serialisierung aktiviert ist. Wenn in Ihrer Umgebung Cloud Composer Version 1.15.0 und höher verwendet wird, ist die Serialisierung standardmäßig aktiviert.

  5. Erstellen Sie eine neue Cloud Composer-Umgebung mit aktivierter privater IP-Adresse. Beachten Sie, dass diese Einstellung bei der Erstellung der Umgebung konfiguriert werden muss.

  6. Denken Sie beim Erstellen Ihrer Umgebung daran, den Zugriff auf den Airflow-Webserver zu konfigurieren. Für maximale Sicherheit sollten Sie den Zugriff auf den Webserver nur von bestimmten IP-Bereichen zulassen. Weitere Informationen finden sich in Schritt 5 unter Neue Umgebung erstellen.

Vorhandene Umgebungen mit VPC Service Controls konfigurieren

Damit Cloud Composer in einem Perimeter konfiguriert werden kann, muss die DAG-Serialisierung aktiviert sein und die Umgebung im privaten IP-Modus erstellen.

Wenn diese Bedingung erfüllt ist, können Sie das Projekt, in dem Ihre Umgebung enthalten ist, dem Perimeter hinzufügen. Dabei wird vorausgesetzt, dass der Perimeter wie im vorherigen Abschnitt beschrieben erstellt wurde.

PyPI-Pakete installieren

In der standardmäßigen VPC Service Controls-Konfiguration (siehe oben) unterstützt Cloud Composer nur die Installation von PyPI-Paketen aus privaten Repositories, die über den privaten IP-Adressbereich des VPC-Netzwerks erreichbar sind. Die empfohlene Konfiguration für diesen Prozess besteht darin, ein privates PyPI-Repository einzurichten, es mit geprüften Paketen zu versehen, die von Ihrer Organisation verwendet werden und anschließend Cloud Composer zu konfigurieren, um Python-Abhängigkeiten aus einem privaten Repository zu installieren.

Es ist auch möglich, PyPI-Pakete aus Repositories außerhalb des privaten IP-Bereichs zu installieren. Gehen Sie so vor:

  1. Konfigurieren Sie Cloud NAT so, dass Composer im privaten IP-Bereich eine Verbindung zu externen PyPI-Repositories herstellen kann.
  2. Konfigurieren Sie Ihre Firewallregeln so, dass ausgehende Verbindungen vom Composer-Cluster zum Repository zugelassen werden.

Wenn Sie diese Einrichtung verwenden, stellen Sie sicher, dass Sie die Risiken der Verwendung externer Repositories verstehen und mit ihnen vertraut sind. Vergewissern Sie sich, dass Sie dem Inhalt und der Integrität aller externen Repositories vertrauen, da diese Verbindungen möglicherweise als Exfiltration-Vektor verwendet werden können.

Checkliste zur Netzwerkkonfiguration

Ihr VPC-Netzwerk muss korrekt konfiguriert sein, um Cloud Composer-Umgebungen innerhalb eines Perimeters zu erstellen. Befolgen Sie dabei die unten aufgeführten Konfigurationsanforderungen.

  • Gehen Sie in der Cloud Console zum Abschnitt VPC-Netzwerk > Firewall und prüfen Sie, ob folgende Firewallregeln konfiguriert sind:

    • Erlauben Sie ausgehenden Traffic vom IP-Bereich des GKE-Knotens nach überall, Port 53
    • Erlauben Sie ausgehenden Traffic vom IP-Bereich des GKE-Knotens an den GKE-Knoten-IP-Bereich, alle Ports
    • Erlauben Sie ausgehenden Traffic vom GKE-Knoten-IP-Bereich zum GKE-Master-IP-Bereich, alle Ports
    • Erlauben Sie ausgehenden Traffic vom IP-Bereich des GKE-Knotens an 199.36.153.4/30, Port 443 (restricted.googleapis.com)
    • Lassen Sie eingehenden Traffic von GCP-Systemdiagnosen aus den Bereichen 130.211.0.0/22,35.191.0.0/16 zum Knoten-IP-Bereich zu. TCP-Ports 80 und 443.
    • Lassen Sie ausgehendn Traffic vom Knoten-IP-Bereich zu GCP-Systemdiagnosen zu. TCP-Ports 80 und 443.
    • Ausgehenden IP-Bereich von GKE-Knoten zum IP-Bereich des Webservers, die TCP-Ports 3306 und 3307 zulassen.

    Unter Firewallregeln verwenden erfahren Sie, wie Sie Regeln für VPC-Netzwerke prüfen, hinzufügen und aktualisieren.

  • Konfigurieren Sie die Verbindung zum restricted.googleapis.com-Endpunkt.

    • Prüfen Sie das Vorhandensein der DNS-Zuordnung von *.googleapis.com zu restricted.googleapis.com
    • Das DNS *.gcr.io sollte ähnlich wie der Endpunkt googleapis.com in 199.36.153.4/30 aufgelöst werden. Dazu erstellen Sie eine neue Zone als CNAME *.gcr.io -> gcr.io. A gcr.io. -> 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
    • Das DNS *.pkg.dev sollte ähnlich wie der Endpunkt googleapis.com in 199.36.153.4/30 aufgelöst werden. Dazu erstellen Sie eine neue Zone als CNAME *.pkg.dev -> pkg.dev. A pkg.dev. -> 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

    Weitere Informationen finden sich unter Private Verbindung zu Google APIs und -Diensten einrichten.

Beschränkungen

  • Alle Netzwerkeinschränkungen der VPC Service Controls gelten auch für Ihre Cloud Composer-Umgebungen. Weitere Informationen finden sich in der Dokumentation zu VPC Service Controls.

  • Das Anzeigen einer gerenderten Vorlage mit Funktionen in der Web-UI mit aktivierter DAG-Serialisierung wird für Umgebungen unterstützt, in denen die Composer-Version 1.12.0 oder höher und Airflow-Version 1.10.9 oder höher ausgeführt wird.

  • Das Flag async_dagbag_loader kann nicht auf True gesetzt werden, wenn die DAG-Serialisierung aktiviert ist.

  • Durch Aktivieren der DAG-Serialisierung werden alle Airflow-Webserver-Plug-ins deaktiviert, da sie die Sicherheit des VPC-Netzwerks beeinträchtigen können, in dem Cloud Composer bereitgestellt wird Dies wirkt sich nicht auf das Verhalten von Planer- oder Worker-Plug-ins, einschließlich Airflow-Operatoren und Sensoren, aus.

  • Wenn Cloud Composer innerhalb eines Perimeters ausgeführt wird, ist der Zugriff auf öffentliche PyPI-Repositories eingeschränkt. Informationen zum Installieren von PyPi-Modulen im privaten IP-Modus finden sich unter Python-Abhängigkeiten installieren.