Cloud Composer 1 Cloud Composer 2
Mit VPC Service Controls können Organisationen Perimeter für Google 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 autorisierte Google Cloud-Ressourcen kopieren oder dass externe Angreifer über das Internet auf Google Cloud-Ressourcen zugreifen.
Airflow-Webserver im VPC Service Controls-Modus
Im VPC Service Controls-Modus wird der Zugriff auf den Webserver durch den Perimeter geschützt und der Zugriff von außerhalb des Perimeters wird blockiert.
Konfigurieren Sie die Zugriffsebene entsprechend, um den Zugriff von außerhalb des Dienstperimeters zuzulassen.
Dienstperimeter erstellen
Informationen zum Erstellen und Konfigurieren von Dienstperimetern finden sich unter Dienstperimeter erstellen. Wählen Sie Cloud Composer als einen der im Perimeter gesicherten Dienste aus.
Umgebungen in einem Perimeter erstellen
Es sind zusätzliche Schritte erforderlich, um Cloud Composer in einem Perimeter bereitzustellen. Beim Erstellen einer Cloud Composer-Umgebung gilt Folgendes:
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 der Dienstperimeter die folgenden über VPC zugänglichen Dienste umfasst. Andernfalls kann die Umgebung unter Umständen 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 Build API (cloudbuild.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-Back-End verwenden
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.
Der Zugriff auf die Airflow-UI und -API ist standardmäßig nur innerhalb des Sicherheitsperimeters erlaubt. Wenn Sie sie außerhalb des Sicherheitsperimeters verfügbar machen möchten, konfigurieren Sie die Zugriffsebene entsprechend, wie unter Zugriff auf geschützte Ressourcen von außerhalb eines Perimeters erlauben beschrieben.
Vorhandene Umgebungen mit VPC Service Controls konfigurieren
Sie können das Projekt, das Ihre Umgebung enthält, in den Perimeter einfügen, wenn:
Sie haben den Perimeter wie im vorherigen Abschnitt beschrieben erstellt.
Ihre Umgebungen sind private IP-Umgebungen.
PyPI-Pakete 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 privaten IP-Adressbereich des VPC-Netzwerks erreichbar sind. Die empfohlene Konfiguration für diesen Prozess besteht darin, ein privates PyPI-Repository einzurichten, es mit geprüften Paketen zu versehen, die von Ihrer Organisation verwendet werden und anschließend Cloud Composer zu konfigurieren, um Python-Abhängigkeiten aus einem privaten Repository zu installieren.
Es ist auch möglich, PyPI-Pakete aus Repositories außerhalb des privaten IP-Bereichs zu installieren. Gehen Sie so vor:
- 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.
Wenn Sie diese Einrichtung verwenden, stellen Sie sicher, dass Sie die Risiken der Verwendung externer Repositories verstehen. Vergewissern Sie sich, dass Sie dem Inhalt und der Integrität aller externen Repositories vertrauen, da diese Verbindungen möglicherweise als Exfiltrationsvektor verwendet werden können.
Verbindung zu Google APIs und Google-Diensten konfigurieren
In einer VPC Service Controls-Konfiguration konfigurieren Sie zur Steuerung des Netzwerktraffics 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 von einer Instanz, die im VPC-Netzwerk ausgeführt wird, auf den Airflow-Webserver zugreifen und sie ansonsten nicht erforderlich ist. 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
Mit
*.pkg.dev
werden Umgebungs-Images abgerufen, z. B. beim Erstellen oder Aktualisieren einer Umgebung.*.gcr.io
GKE erfordert unabhängig von der Cloud Composer-Version eine Verbindung zur Container Registry-Domain.
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 CNAME-Eintrag hinzu.
Beispiel:
- DNS-Name:
*.pkg.dev.
- Ressourceneintragstyp:
CNAME
- Kanonischer Name:
pkg.dev.
- DNS-Name:
Fügen Sie einen Eintrag 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 enthält, 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. Definieren Sie selektive allow
-Regeln, die der Liste folgen und eine höhere Priorität als die globale deny
-Regel haben, um Probleme zu vermeiden.
Konfigurieren Sie Ihr VPC-Netzwerk so, dass Traffic von Ihrer Umgebung zugelassen wird:
- Unter Firewallregeln verwenden erfahren Sie, wie Sie Regeln für Ihr VPC-Netzwerk prüfen, hinzufügen und aktualisieren.
- Verwenden Sie das Verbindungstool, um die Konnektivität zwischen IP-Bereichen zu prüfen.
- Sie können Netzwerk-Tags 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 Konfiguration 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 |
Clusterknoten 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 |
Cluster-Steuerungsebene der Umgebung | Ausgehender Traffic | Zulassen | IP-Bereich der GKE-Steuerungsebene | TCP, UDP | alle |
(Wenn Ihre Umgebung Private Service Connect verwendet) Verbindungssubnetzwerk | Ausgehender Traffic | Zulassen | Subnetzwerkbereich der Cloud Composer-Verbindung | TCP | 3306 3307 |
(Wenn Ihre Umgebung VPC-Peerings verwendet) Mandantennetzwerk | Ausgehender Traffic | Zulassen | IP-Bereich des Cloud Composer-Mandantennetzwerks | TCP | 3306 3307 |
So rufen Sie IP-Bereiche ab:
Adressbereiche für Pods, Dienste und Steuerungsebenen 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 ansehen.
Sie können den IP-Bereich des Cloud Composer-Mandantennetzwerks der Umgebung auf dem Tab Umgebungskonfiguration sehen.
Die Subnetzwerk-ID der Umgebung und die Subnetzwerk-ID der Cloud Composer-Verbindung werden auf dem Tab Umgebungskonfiguration angezeigt. 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 Details aufzurufen:
VPC Service Controls-Logs
Beim Beheben von Problemen beim Erstellen von Umgebungen können Sie Audit-Logs analysieren, die von VPC Service Controls generiert wurden.
Zusätzlich zu anderen Logeinträgen können Sie Logs auf Informationen zu cloud-airflow-prod@system.gserviceaccount.com
- und service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
-Dienstkonten überprüfen, die Komponenten Ihrer Umgebungen konfigurieren.
Der Cloud Composer-Dienst verwendet das Dienstkonto cloud-airflow-prod@system.gserviceaccount.com
, um die Mandantenprojektkomponenten Ihrer Umgebungen zu verwalten.
Über das Dienstkonto service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
, auch Composer Service Agent Service Account
genannt, werden Umgebungskomponenten in Dienst- und Hostprojekten verwaltet.
Beschränkungen
- 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 Cloud Composer in einem Perimeter ausgeführt wird, ist der Zugriff auf öffentliche PyPI-Repositories eingeschränkt. Informationen zum Installieren von PyPi-Modulen im privaten IP-Modus finden sich unter Python-Abhängigkeiten installieren.