VPC Service Controls konfigurieren

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

Cloud Composer-Umgebungen können in einem Dienstperimeter 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 Folgendes:

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

Durch die Bereitstellung von Cloud Composer-Umgebungen mit VPC Service Controls erhalten Sie folgende Möglichkeiten:

  • Geringes Risiko einer 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

Unter Dienstperimeter erstellen erfahren Sie, wie Sie Dienstperimeter erstellen und konfigurieren. Wählen Sie Cloud Composer als einen der Dienste aus, die im Perimeter gesichert sind.

Umgebungen in einem Perimeter erstellen

Für die Bereitstellung von Cloud Composer innerhalb eines Perimeters sind einige zusätzliche Schritte erforderlich. 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 Sie unter APIs aktivieren.

  2. Fügen Sie die folgenden Dienstkonten auf die weiße Liste, indem Sie sie zu einem AccessLevel hinzufügen und sie an den Dienstperimeter anhängen:

    • PROJECT_NUMBER@cloudservices.gserviceaccount.com: Dieses Dienstkonto führt interne Google-Prozesse für Sie aus und ist nicht im Abschnitt "Dienstkonten" der Cloud Console aufgelistet. Weitere Informationen dazu finden Sie auf dieser Seite.
    • cloud-logs@system.gserviceaccount.com: Mit diesem Dienstkonto kann Cloud Composer Logs im Cloud Monitoring-Dienst Ihres Projekts speichern.
  3. Fügen Sie dem Perimeter die folgenden Dienste hinzu, um Ihre Umgebung bestmöglich zu schützen: Cloud SQL, Pub/Sub, Monitoring, Cloud Storage, Kubernetes Engine, Container Registry.

  4. Verwenden Sie Version composer-1.10.4 oder höher.

  5. Aktivieren Sie die DAG-Serialisierung in der Airflow-Datenbank. Fügen Sie dazu beim Erstellen einer Umgebung im Abschnitt core die Konfigurationsüberschreibung [core] store_serialized_dags=True und [core] store_dag_code=True hinzu. Weitere Informationen finden Sie unter DAG-Serialisierung.

  6. Erstellen Sie eine neue Cloud Composer-Umgebung mit aktivierter privater IP. Beachten Sie, dass diese Einstellung während der Erstellung der Umgebung konfiguriert werden muss.

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

Vorhandene Umgebungen mit VPC Service Controls konfigurieren

Wenn Ihre Umgebung bestimmte Bedingungen erfüllt, können Sie Cloud Composer für die Arbeit in einem Perimeter konfigurieren:

  1. Die Umgebung wurde mit der Composer Beta API erstellt, wobei private IP-Adressen aktiviert sind.

  2. Die DAG-Serialisierung ist aktiviert.

Wenn diese Bedingungen erfüllt sind, können Sie das Projekt mit Ihrer Umgebung zum Perimeter hinzufügen, vorausgesetzt, der Perimeter wurde wie im Abschnitt oben beschrieben erstellt.

PyPI-Pakete installieren

In der Standardkonfiguration für VPC Service Controls (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 ist die Einrichtung eines privaten PyPI-Repositorys, das mit den von Ihrer Organisation verwendeten geprüften Paketen gefüllt wird. Cloud Composer so konfigurieren, dass Python-Abhängigkeiten aus einem privaten Repository installiert werden.

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 ausgeführt wird, um die Verbindung zu externen PyPI-Repositories herzustellen.
  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 für die Netzwerkkonfiguration

Ihr VPC-Netzwerk muss ordnungsgemäß konfiguriert sein, um Cloud Composer-Umgebungen innerhalb eines Perimeters zu erstellen. Achten Sie darauf, die unten aufgeführten Konfigurationsanforderungen zu erfüllen.

  • Gehen Sie in der Cloud Console zum Abschnitt VPC-Netzwerk > Firewall und überprüfen Sie, ob die folgenden 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)
    • Erlauben Sie Sie eingehenden Traffic von GCP-Systemdiagnosen 130.211.0.0/22,35.191.0.0/16 an den Knoten-IP-Bereich. TCP-Ports 80 und 443
    • Erlauben Sie ausgehenden Traffic vom Knoten-IP-Bereich an GCP-Systemdiagnosen. TCP-Ports 80 und 443.

    Weitere Informationen zum Überprüfen, Hinzufügen und Aktualisieren von Regeln für Ihr VPC-Netzwerk finden Sie unter Firewallregeln verwenden.

  • Konfigurieren Sie die Konnektivität zum restricted.googleapis.com-Endpunkt.

    • DNS-Zuordnung von *.googleapis.com zu restricted.googleapis.com überprüfen
    • Das DNS *.gcr.io sollte ähnlich wie der Endpunkt googleapis.com in 199.36.153.4/30 aufgelöst werden. Erstellen Sie dazu eine neue Zone: CNAME *.gcr.io -> gcr.io. A gcr.io. -> 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

    Weitere Informationen finden Sie unter Private Verbindungen zu Google APIs und Google-Diensten einrichten.

Beschränkungen

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

  • Durch Aktivieren der DAG-Serialisierung wird verhindert, dass Airflow eine gerenderte Vorlage mit Funktionen in der Web-UI anzeigt. Dieses Problem kann in einer zukünftigen Version von Airflow und Cloud Composer behoben werden.

  • Das Festlegen des Flags async_dagbag_loader auf True wird nicht unterstützt, solange die DAG-Serialisierung aktiviert ist.

  • Durch das 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 hat keinen Einfluss auf das Verhalten von Planer- oder Worker-Plug-ins, einschließlich Airflow-Operatoren, Sensoren usw.

  • 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 Sie unter Python-Abhängigkeiten installieren.