Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Mit VPC Service Controls können Organisationen Perimeter fürGoogle 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 autorisierteGoogle Cloud -Ressourcen kopieren oder dass externe Angreifer über das Internet aufGoogle Cloud -Ressourcen zugreifen.
VPC Service Controls in Cloud Composer
- 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.
Wenn eine Cloud Composer-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.
Cloud Composer unterstützt die Verwendung von Drittanbieteridentitäten in Ingress- und Egress-Regeln nicht, um Apache Airflow-UI-Vorgänge zuzulassen. Sie können jedoch den Identitätstyp
ANY_IDENTITY
in Ingress- und Egress-Regeln verwenden, um den Zugriff auf alle Identitäten, einschließlich Drittanbieteridentitäten, zu ermöglichen. Weitere Informationen zum IdentitätstypANY_IDENTITY
finden 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 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.
Umgebungen in einem Perimeter erstellen
Die folgenden Schritte sind erforderlich, um Cloud Composer in einem Perimeter bereitzustellen:
Aktivieren Sie die Access Context Manager API und die Cloud Composer API für Ihr Projekt. Weitere Informationen finden sich unter APIs aktivieren.
Achten Sie darauf, dass Ihr Dienstperimeter die folgenden über VPC zugänglichen Dienste hat, da die Umgebung sonst möglicherweise nicht erstellt werden kann:
- 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)
- Security Token Service API (sts.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.
So erstellen Sie eine neue Cloud Composer-Umgebung:
Private IP muss aktiviert sein. Beachten Sie, dass diese Einstellung während der Erstellung der Umgebung konfiguriert werden muss.
Denken Sie 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.
Standardmäßig ist der Zugriff auf die Airflow-Benutzeroberfläche und die API nur innerhalb des Sicherheitsbereichs 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.
Vorhandene Umgebung dem Perimeter hinzufügen
Sie können das Projekt, das Ihre Umgebung enthält, in einen Perimeter einfügen, wenn:
- Sie haben den Perimeter bereits wie im vorherigen Abschnitt beschrieben erstellt oder konfiguriert.
- Ihre Umgebungen verwenden private IP-Adressen.
PyPI-Pakete in VPC Service Controls installieren
In der standardmäßigen VPC Service Controls-Konfiguration unterstützt Cloud Composer nur die Installation von PyPI-Paketen aus privaten Repositories, die über den internen IP-Adressbereich des VPC-Netzwerk erreichbar sind.
Alle Cloud Composer-Umgebungen innerhalb eines VPC Service Controls-Perimeters haben standardmäßig keinen Zugriff auf öffentliche PyPI-Repositories.
Aus einem privaten Repository installieren
Die empfohlene Konfiguration besteht darin, ein privates PyPI-Repository einzurichten:
Füllen Sie es mit geprüften Paketen, die von Ihrer Organisation verwendet werden, und konfigurieren Sie dann Cloud Composer, um Python-Abhängigkeiten aus einem privaten Repository zu installieren.
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:
- Artifact Registry-Remote-Repository erstellen
- Gewähren Sie diesem Repository Zugriff auf Upstream-Quellen.
- Airflow so konfigurieren, dass Pakete aus einem Artifact Registry-Repository installiert werden.
- 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:
Konfigurieren Sie Cloud NAT so, dass Cloud Composer 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
Wenn Sie in einer VPC Service Controls-Konfiguration den Netzwerkverkehr 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.
Cloud Composer-Umgebungen verwenden die folgenden Domains:
*.googleapis.com
wird für den Zugriff auf andere Google-Dienste verwendet.*.composer.cloud.google.com
wird verwendet, um den Airflow-Webserver Ihrer Umgebung zugänglich zu machen. Diese Regel muss angewendet werden, bevor Sie eine Umgebung erstellen.- Alternativ können Sie eine Regel für eine bestimmte Region erstellen. Verwenden Sie dazu
REGION.composer.cloud.google.com
. Ersetzen SieREGION
durch die Region, in der sich die Umgebung befindet, z. B.us-central1
.
- Alternativ können Sie eine Regel für eine bestimmte Region erstellen. Verwenden Sie dazu
(Optional)
*.composer.googleusercontent.com
wird beim Zugriff auf den Airflow-Webserver Ihrer Umgebung verwendet. Diese Regel ist nur erforderlich, wenn Sie auf den Airflow-Webserver von einer Instanz aus zugreifen, die im VPC-Netzwerk ausgeführt wird. Ein häufiges Szenario für diese Regel ist, wenn Sie die Airflow REST API aus dem VPC-Netzwerk aufrufen möchten.- Alternativ können Sie eine Regel für eine bestimmte Umgebung erstellen. Verwenden Sie dazu
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com
. Ersetzen SieENVIRONMENT_WEB_SERVER_NAME
durch den eindeutigen Teil der Airflow-UI-URL Ihrer Umgebung, z. B.bffe6ce6c4304c55acca0e57be23128c-dot-us-central1
.
- Alternativ können Sie eine Regel für eine bestimmte Umgebung erstellen. Verwenden Sie dazu
*.pkg.dev
wird verwendet, um Umgebungsbilder abzurufen, z. B. beim Erstellen oder Aktualisieren einer Umgebung.*.gcr.io
GKE erfordert eine Verbindung zur Container Registry-Domain, unabhängig von der Cloud Composer-Version.
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
|
*.composer.cloud.google.com
|
composer.cloud.google.com. |
DNS-Name: *.composer.cloud.google.com. Ressourceneintragstyp: CNAME Kanonischer Name: composer.cloud.google.com. |
Ressourceneintragstyp: A IPv4-Adressen: 199.36.153.4 , 199.36.153.5 , 199.36.153.6 , 199.36.153.7
|
*.composer.googleusercontent.com
(optional, siehe Beschreibung) |
composer.googleusercontent.com. |
DNS-Name: *.composer.googleusercontent.com. Ressourceneintragstyp: CNAME Kanonischer Name: composer.googleusercontent.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:
Erstellen Sie eine neue DNS-Zone und verwenden Sie DNS-Name als DNS-Namen dieser Zone.
Beispiel:
pkg.dev.
Fügen Sie einen Datensatz für den CNAME-Eintrag hinzu.
Beispiel:
- DNS-Name:
*.pkg.dev.
- Ressourceneintragstyp:
CNAME
- Kanonischer Name:
pkg.dev.
- DNS-Name:
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
- Ressourceneintragstyp:
Weitere Informationen finden Sie unter Private Verbindung zu Google APIs und Google-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.
Cloud Composer kann beispielsweise keine Umgebung erstellen, wenn Sie eine Firewallregel haben, die den gesamten ausgehenden Traffic ablehnt. Um Probleme zu vermeiden, sollten Sie selektive allow
-Regeln definieren, 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 Wie unter VPC Service Controls-Unterstützung für Cloud DNS beschrieben konfigurieren |
- | – | – | – | - |
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 Subnetzes 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 |
(Wenn in Ihrer Umgebung Private Service Connect verwendet wird) Verbindungs-Subnetzwerk | Ausgehender Traffic | Zulassen | Bereich des Subnetzwerks für Cloud Composer-Verbindungen | TCP | 3306, 3307 |
(Wenn in Ihrer Umgebung VPC-Peerings verwendet werden) Mandantennetzwerk | Ausgehender Traffic | Zulassen | IP-Bereich des Cloud Composer-Mandantennetzwerks | 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:
Rufen Sie in der Google Cloud Console die Seite Umgebungen 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 aufrufen.
Den IP-Bereich des Cloud Composer-Mandantennetzwerks der Umgebung finden Sie auf dem Tab Umgebungskonfiguration.
Die Subnetzwerk-ID der Umgebung und die Subnetzwerk-ID der Cloud Composer-Verbindung 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:
VPC Service Controls-Logs
Bei der Fehlerbehebung bei der Umgebungserstellung können Sie von VPC Service Controls generierte Audit-Logs analysieren.
Neben anderen Logmeldungen können Sie Logs auf Informationen zu cloud-airflow-prod@
- und service-PROJECT_ID@cloudcomposer-accounts.
-Dienstkonten prüfen, mit denen Komponenten Ihrer Umgebungen konfiguriert werden.
Der Cloud Composer-Dienst verwendet das cloud-airflow-prod@
-Dienstkonto, um Tenant-Projektkomponenten Ihrer Umgebungen zu verwalten.
Das Dienstkonto service-PROJECT_ID@cloudcomposer-accounts.
, auch als Composer-Dienst-Agent-Dienstkonto bezeichnet, verwaltet Umgebungskomponenten in Dienst- und Hostprojekten.