Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Mit VPC Service Controls können Organisationen Perimeter für Google 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 VPC Service Controls-Unterstützung 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 autorisierte Google Cloud Ressourcen kopieren oder dass externe Angreifer über das Internet auf Google 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_loaderkann nicht aufTruegesetzt 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 Ihre Umgebung privates IP-Networking verwendet, wird der gesamte interne Traffic an Ihr VPC-Netzwerk weitergeleitet, mit Ausnahme des Traffics zu Google APIs, Google-Diensten und Google-Domains, die für private IP-Umgebungen über den privater Google-Zugriff verfügbar sind.
Je nachdem, wie Sie Ihr VPC-Netzwerk konfigurieren, kann eine private IP-Umgebung ü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.
Umgebungen in einem Perimeter erstellen
Die folgenden Schritte sind erforderlich, um Managed Airflow innerhalb eines Perimeters bereitzustellen:
Aktivieren Sie die Access Context Manager API und die Cloud Composer API für Ihr Projekt. Weitere Informationen finden sich unter APIs aktivieren.
Prüfen Sie, ob Ihr Dienstperimeter die folgenden über VPC zugänglichen Dienste enthält. Andernfalls kann Ihre 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-Back-End verwenden.
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 auf Webserver konfigurieren.
Vorhandene Umgebung zum Perimeter hinzufügen
- Sie haben den Perimeter wie im vorherigen Abschnitt beschrieben bereits erstellt oder konfiguriert.
- Ihre Umgebung verwendet eine private IP-Adresse.
- In Ihren Umgebungen ist die DAG-Serialisierung aktiviert.
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:
Erteilen Sie dem Dienstkonto Ihrer Umgebung zusätzliche Berechtigungen zum Installieren von Paketen aus privaten Repositories, wie unter Zugriffssteuerung beschrieben.
Aus einem öffentlichen Repository installieren
Remote-Repository
Dies ist der empfohlene Ansatz zum Installieren von Paketen aus einem öffentlichen Repository.
So installieren Sie PyPI-Pakete aus Repositories außerhalb des privaten IP-Bereichs:
- Erstellen Sie ein Artifact Registry-Remote-Repository.
- Gewähren Sie diesem Repository Zugriff auf Upstream-Quellen.
- Konfigurieren Sie Airflow so, dass Pakete aus einem Artifact Registry-Repository installiert werden.
- Erteilen 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:
Konfigurieren Sie Cloud NAT so, dass Managed Airflow im privaten IP-Bereich eine Verbindung zu externen PyPI Repositories herstellen kann.
Konfigurieren Sie Ihre Firewallregeln so, dass ausgehende Verbindungen vom Composer-Cluster zum Repository zugelassen werden.
Verbindung zu Google APIs und Google-Diensten konfigurieren
In einer VPC Service Controls-Konfiguration können Sie den Netzwerkverkehr steuern, indem Sie den Zugriff auf Google APIs und Google-Dienste über restricted.googleapis.com konfigurieren. Diese Domain blockiert den Zugriff auf Google APIs und Google-Dienste, die VPC Service Controls nicht unterstützen.
Managed Airflow-Umgebungen verwenden die folgenden Domains:
*.googleapis.comwird für den Zugriff auf andere Google-Dienste verwendet.*.pkg.devwird verwendet, um Umgebungs-Images abzurufen, z. B. beim Erstellen oder Aktualisieren einer Umgebung.*.gcr.ioGKE erfordert unabhängig von der Managed Airflow-Version eine Verbindung zur Container Registry-Domain.
Konfigurieren Sie die Verbindung zum Endpunkt restricted.googleapis.com:
| Domain | DNS-Name | CNAME-Eintrag | A-Eintrag |
|---|---|---|---|
*.googleapis.com
|
googleapis.com. |
DNS-Name: *.googleapis.com.Ressourceneintragstyp: CNAMEKanonischer Name: googleapis.com. |
Ressourceneintragstyp: AIPv4-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: CNAMEKanonischer Name: pkg.dev. |
Ressourceneintragstyp: AIPv4-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: CNAMEKanonischer Name: gcr.io. |
Ressourceneintragstyp: AIPv4-Adressen: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
|
So erstellen Sie eine DNS-Regel:
Erstellen Sie eine neue DNS-Zone und verwenden Sie DNS-Name als DNS-Namen dieser Zone.
Beispiel:
pkg.dev.Fügen Sie einen Eintragssatz hinzu für CNAME-Eintrag.
Beispiel:
- DNS-Name:
*.pkg.dev. - Ressourceneintragstyp:
CNAME - Kanonischer Name:
pkg.dev.
- DNS-Name:
Fügen Sie einen Eintragssatz 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
- Ressourceneintragstyp:
Weitere Informationen finden Sie unter Private Verbindung zu Google APIs und -Diensten einrichten.
Firewallregeln konfigurieren
Wenn Ihr Projekt nicht standardmäßige Firewallregeln enthält, z. B. Regeln, die implizite Firewallregeln überschreiben oder vorab ausgefüllte Regeln im Standardnetzwerk ändern, prüfen Sie, ob die folgenden Firewallregeln konfiguriert sind.
Beispielsweise kann Managed Airflow möglicherweise keine Umgebung erstellen, wenn Sie eine Firewallregel haben, die den gesamten ausgehenden Traffic ablehnt. Um Probleme zu vermeiden, definieren Sie selektive allow-Regeln, die der Liste folgen 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 Connectivity Tool um die Verbindung zwischen IP-Bereichen zu prüfen.
- Sie können Netzwerktags verwenden, um den Zugriff weiter einzuschränken. Sie können diese Tags beim Erstellen einer Umgebung festlegen.
| Beschreibung | Richtung | Aktion | Quelle oder Ziel | Protokolle | Ports |
|---|---|---|---|---|---|
| DNS Konfigurieren Sie die DNS-Regeln 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 |
| Clusterknoten der Umgebung | Ausgehender Traffic | Zulassen | Primärer IP-Adressbereich des Subnetzes der Umgebung | TCP, UDP | Alle |
| Cluster-Pods der Umgebung | Ausgehender Traffic | Zulassen | Sekundärer IP-Adressbereich für Pods im Subnetz der Umgebung | TCP, UDP | Alle |
| Steuerungsebene des Clusters der Umgebung | Ausgehender Traffic | Zulassen | IP-Bereich der GKE-Steuerungsebene | TCP, UDP | Alle |
| Web server | Ausgehender Traffic | Zulassen | IP-Bereich des Webservernetzwerks | TCP | 3306, 3307 |
So rufen Sie die IP-Bereiche des Umgebungsclusters ab:
Die Adressbereiche für Pods, Dienste und die Steuerungsebene sind auf der Seite Cluster des Clusters Ihrer Umgebung verfügbar:
Rufen Sie in der Google Cloud Console die Umgebungen Seite auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab Umgebungskonfiguration auf.
Folgen Sie dem Link Clusterdetails ansehen.
Den IP-Bereich des Webservers der Umgebung finden Sie auf dem Tab Umgebungskonfiguration.
Die Netzwerk-ID der Umgebung finden Sie auf dem Tab Umgebungskonfiguration. Um IP-Bereiche für ein Subnetz abzurufen, rufen Sie die Seite VPC-Netzwerke auf und klicken Sie auf den Namen des Netzwerks, um Details zu sehen:
VPC Service Controls-Logs
Bei der Fehlerbehebung bei Problemen mit der Umgebungserstellung können Sie Audit-Logs analysieren, die von VPC Service Controls generiert wurden.
Neben anderen Logmeldungen können Sie Logs nach Informationen zu
cloud-airflow-prod@system.gserviceaccount.com und
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
Dienstkonten suchen, die Komponenten Ihrer Umgebungen konfigurieren.
Der Managed Airflow-Dienst verwendet das
cloud-airflow-prod@system.gserviceaccount.com Dienstkonto, um
Mandantenprojektkomponenten Ihrer Umgebungen zu verwalten.
Das
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
Dienstkonto, auch als Composer Service Agent-Dienstkonto bezeichnet, verwaltet
Umgebungskomponenten in
Dienst- und Hostprojekten.