VPC Service Controls konfigurieren

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

Mit VPC Service Controls können Organisationen einen Perimeter fürGoogle Cloud -Ressourcen definieren, um das Risiko einer Daten-Exfiltration zu minimieren.

Managed Airflow-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 Managed Airflow nutzen.

Die Unterstützung von VPC Service Controls für Managed Airflow bedeutet:

  • Managed Airflow kann jetzt als sicherer Dienst innerhalb von VPC Service Controls-Perimetern ausgewählt werden.
  • Alle von Managed Airflow 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 Managed Airflow-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 autorisierteGoogle Cloud -Ressourcen kopieren oder dass externe Angreifer über das Internet aufGoogle Cloud -Ressourcen zugreifen.

VPC Service Controls in Managed Airflow

  • Alle Netzwerkeinschränkungen der VPC Service Controls gelten auch für Ihre Managed Airflow-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, auf denen Managed Airflow Version 1.12.0 oder höher und die Airflow-Version 1.10.9 oder höher ausgeführt werden.

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

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

  • Wenn eine Managed Airflow-Umgebung durch einen Perimeter geschützt ist, ist der Zugriff auf öffentliche PyPI-Repositories eingeschränkt. Weitere Informationen finden Sie unter PyPI-Pakete in VPC Service Controls installieren.

  • Wenn in Ihrer Umgebung Private IP networking verwendet wird, wird der gesamte interne Traffic an Ihr VPC-Netzwerk weitergeleitet, mit Ausnahme des Traffics zu Google APIs, Diensten und Domains, die für Umgebungen mit privaten IP-Adressen über den privater Google-Zugriff verfügbar sind.

  • Je nach Konfiguration Ihres VPC-Netzwerks kann eine Umgebung mit privaten IP-Adressen über Ihr VPC-Netzwerk auf das Internet zugreifen.

  • Im VPC Service Controls-Modus führt Managed Airflow zwei Instanzen des Airflow-Webservers aus. Der Identity-Aware Proxy verteilt den Traffic zwischen diesen Instanzen auf den Load-Balancer. Airflow-Webserver werden im schreibgeschützten Modus ausgeführt, d. h.:

    • Die DAG-Serialisierung ist aktiviert. Daher parst der Airflow-Webserver keine DAG-Dateien.

    • Plug-ins werden nicht mit dem Webserver synchronisiert. Daher können Sie die Webserver-Funktionsweise nicht mit Plug-ins ändern oder erweitern.

    • Der Airflow-Webserver verwendet ein Container-Image, das vom Managed Airflow-Dienst vorinstalliert ist. Wenn Sie PyPI-Images in Ihrer Umgebung installieren, werden diese Images nicht auf dem Webserver-Container-Image installiert.

Perimeter für Umgebungen mit freigegebene VPC und CMEK

Wenn Ihre Umgebung durch einen Dienstperimeter geschützt ist und gemeinsam genutzte VPC, vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) oder beides verwendet, müssen die folgenden Projekte sich im selben Dienstperimeter befinden:

  • Dienstprojekt: Das Projekt mit der Managed Airflow-Umgebung.
  • Hostprojekt: Das Projekt mit dem freigegebene VPC-Netzwerk.
  • Projekt, in dem die Cloud Key Management Service-Schlüssel gehostet werden.

Umgebungen in einem Perimeter erstellen

Die folgenden Schritte sind erforderlich, um Managed Airflow in einem Perimeter bereitzustellen:

  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. Achten Sie darauf, dass Ihr Dienstperimeter die folgenden über VPC zugänglichen Dienste enthält. Andernfalls kann die Umgebung möglicherweise nicht erstellt werden:

    • Cloud Composer API (composer.googleapis.com)
    • Compute Engine API (compute.googleapis.com)
    • Kubernetes Engine API (container.googleapis.com)
    • Container Registry API (containerregistry.googleapis.com)
    • Artifact Registry API (artifactregistry.googleapis.com)
    • Cloud Storage API (storage.googleapis.com)
    • Cloud SQL Admin API (sqladmin.googleapis.com)
    • Cloud Logging API (logging.googleapis.com)
    • Cloud Monitoring API (monitoring.googleapis.com)
    • Cloud Pub/Sub API (pubsub.googleapis.com)
    • Cloud Resource Manager API (cloudresourcemanager.googleapis.com)
    • Service Directory API (servicedirectory.googleapis.com)
    • Cloud Key Management Service API (cloudkms.googleapis.com), wenn Sie Cloud KMS- oder CMEK-Schlüssel verwenden.
    • Secret Manager API (secretmanager.googleapis.com), wenn Sie Secret Manager als Secret-Backend verwenden.
  3. Erstellen Sie eine neue Managed Airflow-Umgebung mit aktivierter privater IP. Beachten Sie, dass diese Einstellung während der Erstellung der Umgebung konfiguriert werden muss.

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

    • Achten Sie darauf, dass die DAG-Serialisierung aktiviert ist. Wenn Ihre Umgebung Managed Airflow Version 1.15.0 und höher verwendet, ist die Serialisierung standardmäßig aktiviert.

    • Denken Sie beim Erstellen Ihrer Umgebung daran, den Zugriff auf den Airflow-Webserver zu konfigurieren. Für mehr Sicherheit sollten Sie den Zugriff auf den Webserver nur von bestimmten IP-Bereichen zulassen. Weitere Informationen finden Sie unter Netzwerkzugriff für Webserver konfigurieren.

Vorhandene Umgebung dem Perimeter hinzufügen

PyPI-Pakete in VPC Service Controls installieren

In der standardmäßigen VPC Service Controls-Konfiguration unterstützt Managed Airflow nur die Installation von PyPI-Paketen aus privaten Repositories, die über den internen IP-Adressbereich des VPC-Netzwerk erreichbar sind.

Aus einem privaten Repository installieren

Die empfohlene Konfiguration besteht darin, ein privates PyPI-Repository einzurichten:

  1. Füllen Sie es mit geprüften Paketen, die von Ihrer Organisation verwendet werden, und konfigurieren Sie dann Managed Airflow so, dass Python-Abhängigkeiten aus einem privaten Repository installiert werden.

  2. Gewähren Sie dem Dienstkonto Ihrer Umgebung zusätzliche Berechtigungen zum Installieren von Paketen aus privaten Repositorys, wie unter Zugriffssteuerung beschrieben.

Aus einem öffentlichen Repository installieren

Remote-Repository

Dies ist die empfohlene Methode zum Installieren von Paketen aus einem öffentlichen Repository.

So installieren Sie PyPI-Pakete aus Repositories außerhalb des privaten IP-Bereichs:

  1. Erstellen Sie ein Artifact Registry-Remote-Repository.
  2. Gewähren Sie diesem Repository Zugriff auf Upstream-Quellen.
  3. Airflow so konfigurieren, dass Pakete aus einem Artifact Registry-Repository installiert werden.
  4. Gewähren Sie dem Dienstkonto Ihrer Umgebung zusätzliche Berechtigungen zum Installieren von Paketen aus Artifact Registry-Repositories, wie unter Zugriffssteuerung beschrieben.

Externe Verbindungen

So installieren Sie PyPI-Pakete aus Repositories außerhalb des privaten IP-Bereichs:

  1. Konfigurieren Sie Cloud NAT so, dass Managed Airflow 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.

Verbindung zu Google APIs und Google-Diensten konfigurieren

Wenn Sie den Netzwerkverkehr in einer VPC Service Controls-Konfiguration steuern möchten, konfigurieren Sie den Zugriff auf Google APIs und Google-Dienste über die restricted.googleapis.com. Diese Domain blockiert den Zugriff auf Google APIs und Google-Dienste, die VPC Service Controls nicht unterstützen.

In Managed Airflow-Umgebungen werden die folgenden Domains verwendet:

  • *.googleapis.com wird für den Zugriff auf andere Google-Dienste verwendet.

  • *.pkg.dev wird verwendet, um Umgebungsbilder abzurufen, z. B. beim Erstellen oder Aktualisieren einer Umgebung.

  • *.gcr.io Für GKE ist unabhängig von der Managed Airflow-Version eine Verbindung zur Container Registry-Domain erforderlich.

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

Domain DNS-Name CNAME-Eintrag A-Eintrag
*.googleapis.com googleapis.com. DNS-Name: *.googleapis.com.
Ressourceneintragstyp: CNAME
Kanonischer Name: googleapis.com.
Ressourceneintragstyp: A
IPv4-Adressen: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
*.pkg.dev pkg.dev. DNS-Name: *.pkg.dev.
Ressourceneintragstyp: CNAME
Kanonischer Name: pkg.dev.
Ressourceneintragstyp: A
IPv4-Adressen: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
*.gcr.io gcr.io. DNS-Name: *.gcr.io.
Ressourceneintragstyp: CNAME
Kanonischer Name: gcr.io.
Ressourceneintragstyp: A
IPv4-Adressen: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

So erstellen Sie eine DNS-Regel:

  1. Erstellen Sie eine neue DNS-Zone und verwenden Sie DNS-Name als DNS-Namen dieser Zone.

    Beispiel: pkg.dev.

  2. Fügen Sie einen Datensatz für den CNAME-Eintrag hinzu.

    Beispiel:

    • DNS-Name: *.pkg.dev.
    • Ressourceneintragstyp: CNAME
    • Kanonischer Name: pkg.dev.
  3. Fügen Sie einen Datensatz für A-Eintrag hinzu:

    Beispiel:

    • Ressourceneintragstyp: A
    • IPv4-Adressen: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

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

Firewallregeln konfigurieren

Wenn Ihr Projekt nicht standardmäßige Firewallregeln hat, z. B. Regeln, die implizite Firewallregeln überschreiben oder vorkonfigurierte Regeln im Standardnetzwerk ändern, prüfen Sie, ob die folgenden Firewallregeln konfiguriert sind.

Beispiel: In Managed Airflow kann möglicherweise keine Umgebung erstellt werden, wenn Sie eine Firewallregel haben, die den gesamten ausgehenden Traffic ablehnt. Um Probleme zu vermeiden, definieren Sie selektive allow-Regeln, die der Liste entsprechen und eine höhere Priorität als die globale deny-Regel haben.

Konfigurieren Sie Ihr VPC-Netzwerk so, dass Traffic aus Ihrer Umgebung zugelassen wird:

  • Unter Firewallregeln verwenden erfahren Sie, wie Sie Regeln für VPC-Netzwerk prüfen, hinzufügen und aktualisieren.
  • Verwenden Sie das Konnektivitätstool, um die Konnektivität zwischen IP-Bereichen zu prüfen.
  • Mit Netzwerktags können Sie den Zugriff weiter einschränken. Sie können diese Tags beim Erstellen einer Umgebung festlegen.
Beschreibung Richtung Aktion Quelle oder Ziel Protokolle Ports
DNS

Konfigurieren Sie den DNS-Dienst wie unter VPC Service Controls-Unterstützung für Cloud DNS beschrieben.
- -
Google APIs und Google-Dienste Ausgehender Traffic Zulassen IPv4-Adressen von restricted.googleapis.com, die Sie für Google APIs und Google-Dienste verwenden. TCP 443
Knoten des Clusters der Umgebung Ausgehender Traffic Zulassen Primärer IP-Adressbereich des Subnetzwerks der Umgebung TCP, UDP Alle
Cluster-Pods der Umgebung Ausgehender Traffic Zulassen Sekundärer IP-Adressbereich für Pods im Subnetzwerk der Umgebung TCP, UDP Alle
Steuerungsebene des Clusters der Umgebung Ausgehender Traffic Zulassen IP-Bereich der GKE-Steuerungsebene TCP, UDP Alle
Webserver Ausgehender Traffic Zulassen IP-Bereich des Webservernetzwerks TCP 3306, 3307

So rufen Sie die IP-Bereiche des Umgebungsclusters ab:

  • Pod-, Dienst- und Steuerungsebenen-Adressbereiche sind auf der Seite Cluster des Clusters Ihrer Umgebung verfügbar:

    1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

      Zur Seite Umgebungen

    2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

    3. Rufen Sie den Tab Umgebungskonfiguration auf.

    4. Klicken Sie auf den Link Clusterdetails aufrufen.

  • Den IP-Bereich des Webservers der Umgebung finden Sie auf dem Tab Umgebungskonfiguration.

  • Die Netzwerk-ID der Umgebung finden Sie auf dem Tab Umgebungskonfiguration. Wenn Sie IP-Bereiche für ein Subnetzwerk abrufen möchten, rufen Sie die Seite VPC-Netzwerke auf und klicken Sie auf den Namen des Netzwerks, um die Details aufzurufen:

    Zur Seite VPC-Netzwerke

VPC Service Controls-Logs

Wenn Sie Probleme bei der Umgebungserstellung beheben, können Sie Audit-Logs analysieren, die von VPC Service Controls generiert wurden.

Neben anderen Logmeldungen können Sie Logs auf Informationen zu cloud-airflow-prod@system.gserviceaccount.com- und service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com-Dienstkonten prüfen, mit denen Komponenten Ihrer Umgebungen konfiguriert werden.

Der Managed Airflow-Dienst verwendet das Dienstkonto cloud-airflow-prod@system.gserviceaccount.com, um Mandantenprojektkomponenten Ihrer Umgebungen zu verwalten.

Das Dienstkonto service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com, auch als Composer-Dienst-Agent-Dienstkonto bezeichnet, verwaltet Umgebungskomponenten in Dienst- und Hostprojekten.

Nächste Schritte