Managed Airflow (3. Generation) | Managed Airflow (2. Generation) | Managed Airflow (1. Generation)
Mit VPC Service Controls können Organisationen einen Perimeter umGoogle Cloud -Ressourcen definieren, um das Risiko einer Daten-Exfiltration zu minimieren.
Managed Airflow-Umgebungen können in einem Dienstperimeter bereitgestellt werden. Wenn Sie Ihre Umgebung mit VPC Service Controls konfigurieren, können Sie sensible 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 Folgendes:
- Managed Airflow kann jetzt als gesicherter Dienst innerhalb eines VPC Service Controls-Perimeters ausgewählt werden.
- Alle zugrunde liegenden Ressourcen, die von Managed Airflow verwendet werden, sind so konfiguriert, dass sie die VPC Service Controls-Architektur unterstützen und deren Regeln befolgen.
Wenn Sie Managed Airflow-Umgebungen mit VPC Service Controls bereitstellen, haben Sie folgende Vorteile:
- Geringeres Risiko der Daten-Exfiltration.
- Schutz vor Datenpannen aufgrund falsch konfigurierter Zugriffssteuerungen.
- Geringeres Risiko, dass böswillige Nutzer Daten auf nicht autorisierteGoogle Cloud -Ressourcen kopieren oder externe Angreifer über das Internet aufGoogle Cloud -Ressourcen zugreifen.
VPC Service Controls in Managed Airflow
- Alle Netzwerkeinschränkungen von VPC Service Controls gelten auch für Ihre Managed Airflow-Umgebungen. Weitere Informationen finden sich in der Dokumentation zu VPC Service Controls.
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. Ausgenommen ist der Traffic zu Google APIs, Diensten und Domains, die für Private IP-Umgebungen über den privater Google-Zugriff verfügbar sind.
Je nach Konfiguration Ihres VPC-Netzwerks kann eine Umgebung mit privater IP-Adresse über Ihr VPC-Netzwerk auf das Internet zugreifen.
Managed Airflow unterstützt die Verwendung von Drittanbieteridentitäten in Regeln für ein- und ausgehenden Traffic nicht, um Vorgänge der Apache Airflow-UI zuzulassen. Sie können jedoch den Identitätstyp
ANY_IDENTITYin Regeln für ein- und ausgehenden Traffic verwenden, um den Zugriff auf alle Identitäten, einschließlich Drittanbieteridentitäten, zu ermöglichen. Weitere Informationen zum IdentitätstypANY_IDENTITYfinden Sie unter Regeln für eingehenden und ausgehenden Traffic.Im VPC Service Controls-Modus ist der Zugriff auf den Webserver durch den Perimeter geschützt und der Zugriff von außerhalb des Perimeters wird blockiert. Wenn Sie den Zugriff von außerhalb des Dienstperimeters zulassen möchten, konfigurieren Sie nach Bedarf Zugriffsebenen oder Regeln für ein- und ausgehenden Traffic. Außerdem können Sie den Zugriff auf den Webserver auf bestimmte IP-Bereiche beschränken.
Konnektivität zu Google APIs und Google-Diensten in VPC Service Controls
Bei Managed Airflow (Gen 3) wird der Traffic zu Google-Diensten über restricted.googleapis.com weitergeleitet. Dadurch ist der Zugriff auf Google APIs, Dienste und Domains möglich, die von diesem Bereich unterstützt werden.
Weitere Informationen und die Liste der Dienste und Domains, die über restricted.googleapis.com verfügbar sind, finden Sie in der Virtual Private Cloud-Dokumentation unter Netzwerkkonfiguration.
In Managed Airflow-Umgebungen (3. Generation) werden Aufrufe von Google-APIs, ‑Diensten und ‑Domains, die nicht in der Liste der erforderlichen APIs und Dienste enthalten sind, blockiert. Wenn Sie eine API über einen DAG aufrufen möchten, gehen Sie so vor:
- Prüfen Sie, ob der Dienst VPC Service Controls unterstützt.
- Fügen Sie den Dienst zu den eingeschränkten Diensten hinzu.
- Fügen Sie den Dienst zu den über VPC zugänglichen Diensten hinzu.
Wenn Sie beispielsweise einen Vertex AI-Operator verwenden, fügen Sie aiplatform.googleapis.com sowohl zu eingeschränkten Diensten als auch zu über VPC zugänglichen Diensten hinzu.
Weitere Informationen zum Hinzufügen von Diensten zu einem Perimeter finden Sie in der Dokumentation zu VPC Service Controls unter Dienstperimeter verwalten.
In Managed Airflow (3. Generation) kann nicht auf Dienste zugegriffen werden, die VPC Service Controls nicht unterstützen und nicht über restricted.googleapis.com verfügbar sind, wenn sie in Umgebungen ausgeführt werden, die mit VPC Service Controls geschützt sind. Diese Einschränkung wurde in Managed Airflow (Gen 3) hinzugefügt, um die Sicherheit der Umgebung zu erhöhen. In Managed Airflow (Gen 2) kann der Zugriff auf solche nicht unterstützten Dienste konfiguriert werden. Wir empfehlen jedoch dringend, dies in keiner Umgebung zu tun, die durch VPC Service Controls geschützt ist.
Perimeter für Umgebungen mit freigegebene VPC und CMEK
Wenn Ihre Umgebung durch einen Dienstperimeter geschützt ist und gemeinsam genutzte VPC, kundenverwaltete Verschlüsselungsschlüssel (CMEK) oder beides verwendet, müssen die folgenden Projekte sich im selben Dienstperimeter befinden:
- Dienstprojekt: Das Projekt, das die Managed Airflow-Umgebung enthält.
- Hostprojekt: Das Projekt mit dem gemeinsam genutzten 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 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.
Erstellen Sie einen Perimeter, indem Sie der Anleitung zum Konfigurieren von Perimetern in der Dokumentation zu VPC Service Controls folgen. Achten Sie darauf, dass die Liste der durch den Perimeter geschützten Dienste alle von Managed Airflow verwendeten Dienste sowie andere Dienste enthält, die Sie einschränken möchten:
- Cloud Composer API (composer.googleapis.com)
- Artifact Registry API (artifactregistry.googleapis.com)
- Compute Engine API (compute.googleapis.com)
- Kubernetes Engine API (container.googleapis.com)
- Container File System API (containerfilesystem.googleapis.com)
- Cloud DNS API (dns.googleapis.com)
- Sicherung für GKE API (gkebackup.googleapis.com)
- Service Account Credentials API (iamcredentials.googleapis.com)
- Cloud Logging API (logging.googleapis.com)
- Cloud Monitoring API (monitoring.googleapis.com)
- Cloud Pub/Sub API (pubsub.googleapis.com)
- Cloud SQL Admin API (sqladmin.googleapis.com)
Cloud Storage API (storage.googleapis.com)
Für alle anderen Dienste, die von Ihren DAGs verwendet werden:
- Fügen Sie den Dienst zu den eingeschränkten Diensten hinzu.
- Fügen Sie den Dienst zu den über VPC zugänglichen Diensten hinzu.
Wenn Ihr Dienstperimeter den API-Zugriff mit Über VPC zugängliche Dienste einschränkt, muss die Liste der zulässigen Dienste alle von Managed Airflow verwendeten Dienste enthalten.
So erstellen Sie eine neue Managed Airflow-Umgebung:
- Erstellen Sie die Umgebung mit der Google Cloud CLI.
- Aktivieren Sie die private IP-Adresse mit dem Argument
--enable-private-environment. - Geben Sie Zugriffsparameter für den Webserver mit den Argumenten
--web-server-allow-all,--web-server-allow-ipoder--web-server-deny-allan. Weitere Informationen zur Verwendung dieser Argumente finden Sie unter Umgebungen erstellen. Um den Schutz zu verbessern, sollten Sie den Zugriff auf den Webserver nur über bestimmte IP-Bereiche zulassen. Verhindern Sie die Installation von Paketen aus öffentlichen Internet-Repositories mit dem Argument
--enable-private-builds-only.Beispiel:
gcloud composer environments create example-environment \ --location us-central1 \ --enable-private-environment \ --web-server-allow-all \ --enable-private-builds-only
Standardmäßig ist der Zugriff auf die Airflow-Benutzeroberfläche und ‑API nur innerhalb des Sicherheitsperimeters zulässig. Wenn Sie sie außerhalb des Sicherheitsperimeters verfügbar machen möchten, konfigurieren Sie Zugriffsebenen oder Regeln für eingehenden und ausgehenden Traffic.
Standardmäßig kann Ihre Umgebung nicht auf Ressourcen außerhalb des Perimeters zugreifen, auch wenn eine entsprechende API der Liste der über VPC zugänglichen Dienste hinzugefügt wird. Wenn Sie den Zugriff auf Ressourcen außerhalb des Perimeters zulassen möchten, konfigurieren Sie eine Perimeter-Bridge, Regeln für ausgehenden und eingehenden Traffic oder verschieben Sie die Ressourcen in denselben Perimeter.
Angenommen, Sie haben einen Cloud KMS-Schlüssel in Perimeter A und eine Managed Airflow-Umgebung in Perimeter B. Auch wenn Sie die Cloud Key Management Service API in Perimeter B mit über VPC zugänglichen Diensten zulassen, kann Ihre Umgebung nicht auf den Schlüssel zugreifen. Außerdem müssen Sie die Kommunikation über die Perimetergrenze hinweg konfigurieren.
Vorhandene Umgebung dem Perimeter hinzufügen
Sie können das Projekt, das Ihre Umgebung enthält, einem Perimeter hinzufügen, wenn Ihre Umgebungen private IP-Adressen verwenden und die Installation von PyPI-Paketen aus öffentlichen Repositories deaktiviert ist.
So aktualisieren Sie eine vorhandene Managed Airflow-Umgebung (Gen 3) auf diese Konfiguration:
- Achten Sie darauf, dass Sie den Perimeter bereits wie im vorherigen Abschnitt beschrieben erstellt oder konfiguriert haben.
- Verwenden Sie die Google Cloud CLI, um Ihre Umgebung zu aktualisieren.
- Aktivieren Sie die private IP-Adresse mit dem Argument
--enable-private-environment. - Verhindern Sie die Installation von Paketen aus öffentlichen Internet-Repositories mit dem Argument
--enable-private-builds-only. - Konfigurieren Sie bei Bedarf den Zugriff auf den Airflow-Webserver. Um den Schutz zu verbessern, sollten Sie den Zugriff auf den Webserver nur über bestimmte IP-Bereiche zulassen.
Beispiel:
gcloud composer environments update example-environment \
--location us-central1 \
--enable-private-environment \
--enable-private-builds-only
PyPI-Pakete in VPC Service Controls installieren
In der Standardkonfiguration von VPC Service Controls unterstützt Managed Airflow nur die Installation von PyPI-Paketen aus privaten Repositories, die über den internen IP-Adressbereich des VPC-Netzwerk erreichbar sind.
Alle Managed Airflow-Umgebungen innerhalb eines VPC Service Controls-Perimeters haben standardmäßig keinen Zugriff auf öffentliche PyPI-Repositories.
Aus einem privaten Repository installieren
Die empfohlene Konfiguration ist die Einrichtung eines privaten PyPI-Repositorys:
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.
Aus einem öffentlichen Repository installieren
So installieren Sie PyPI-Pakete aus einem externen Repository:
- 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.
VPC Service Controls-Logs
Bei der Fehlerbehebung von Problemen beim Erstellen von Umgebungen können Sie Audit-Logs analysieren, die von VPC Service Controls generiert wurden.
Neben anderen Logeinträgen können Sie Logs auf Informationen zu den Dienstkonten cloud-airflow-prod@system.gserviceaccount.com und service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com 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 service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com-Dienstkonto, auch bekannt als Composer Service Agent-Dienstkonto, verwaltet Umgebungskomponenten in Dienst- und Hostprojekten.