VPC Service Controls konfigurieren

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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 die Der Perimeter und der Zugang von außerhalb des Perimeters ist blockiert.

Um den Zugriff von außerhalb des Dienstperimeters zuzulassen, konfigurieren Sie die Zugriffsebene korrekt.

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:

  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 hat: Andernfalls kann Ihre Umgebung Folgendes nicht erstellen:

    • 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 (Artifact Registry.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

  3. 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.

  4. Standardmäßig ist der Zugriff auf die Airflow-UI und -API nur innerhalb der Sicherheitsbereich. Wenn Sie sie außerhalb des Sicherheitsbereichs verfügbar machen möchten Perimeter und konfigurieren Sie dann die Zugriffsebene entsprechend, wie in Zugriff auf geschützte Ressourcen von außerhalb eines Perimeters zulassen.

Vorhandene Umgebungen mit VPC Service Controls konfigurieren

Sie können das Projekt, das Ihre Umgebung enthält, in den Perimeter einfügen, wenn:

PyPI-Pakete installieren

In der VPC Service Controls-Standardkonfiguration unterstützt nur die Installation von PyPI-Paketen aus privaten Repositories, die die über den internen IP-Adressbereich des VPC-Netzwerk erreichbar sind.

Aus privatem Repository installieren

Die empfohlene Konfiguration besteht darin, ein privates PyPI-Repository einzurichten, mit geprüften Paketen, die von Ihrer Organisation verwendet werden, Cloud Composer so konfigurieren, dass Python-Abhängigkeiten aus einem privaten Repository installieren

Aus einem öffentlichen Repository installieren

Remote-Repository

Dies ist der empfohlene Ansatz zum Installieren von Paketen aus einer öffentlichen zu erstellen.

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. Konfigurieren Sie Airflow so, dass Pakete aus einem Artifact Registry-Repository installiert werden.

Externe Verbindungen

Um PyPI-Pakete aus Repositories außerhalb des privaten IP-Bereichs zu installieren, führen Sie folgende Schritte aus:

  1. Cloud NAT konfigurieren, um Cloud Composer zuzulassen im privaten IP-Bereich ausgeführt werden, um eine Verbindung mit externem PyPI herzustellen Repositories.

  2. Konfigurieren Sie Ihre Firewallregeln so, dass ausgehende Verbindungen vom Composer-Cluster zum Repository zugelassen werden.

Das Dienstkonto, das für die Cloud Composer-Datenebene verwendet wird muss die folgenden Berechtigungsrollen haben: Composer.Worker und iam.serviceAccountUser.

Konnektivität zu Google APIs und Google-Diensten konfigurieren

In einer VPC Service Controls-Konfiguration steuern Sie den Netzwerktraffic, 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. Gehen Sie dazu wie folgt vor: REGION.composer.cloud.google.com verwenden. Ersetzen Sie REGION durch die Region, in der sich die Umgebung befindet, z. B. us-central1.
  • Optional: *.composer.googleusercontent.com wird beim Zugriff auf den Airflow-Webserver Ihrer Umgebung verwendet. Diese Regel ist nur erforderlich, wenn Sie von einer Instanz aus, die im VPC-Netzwerk ausgeführt wird, auf den Airflow-Webserver zugreifen. Andernfalls ist sie nicht erforderlich. Ein häufiges Szenario für diese Regel ist, wenn Sie die Airflow REST API innerhalb des VPC-Netzwerks 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 Sie ENVIRONMENT_WEB_SERVER_NAME durch den eindeutigen Teil der Airflow-UI-URL Ihrer Umgebung, z. B. bffe6ce6c4304c55acca0e57be23128c-dot-us-central1.
  • *.pkg.dev wird zum Abrufen von Umgebungs-Images verwendet, z. B. beim Erstellen oder Aktualisierung einer Umgebung.

  • *.gcr.io GKE erfordert eine Verbindung zu 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:

  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 CNAME-Eintrag hinzu.

    Beispiel:

    • DNS-Name: *.pkg.dev.
    • Ressourceneintragstyp: CNAME
    • Kanonischer Name: pkg.dev.
  3. 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

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 vordefinierte Regeln im Standardnetzwerk ändern, prüfen Sie, ob die folgenden Firewallregeln konfiguriert sind.

Cloud Composer kann beispielsweise keine Umgebung erstellen, wenn Sie haben eine Firewallregel, 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 haben als die globale deny-Regel.

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

  • Unter Firewallregeln verwenden erfahren Sie, wie Sie Regeln für VPC-Netzwerke prüfen, hinzufügen und aktualisieren.
  • Verwenden Sie das Konnektivitätstool, um die Konnektivität zwischen IP-Bereichen zu prüfen.
  • Mit Netzwerk-Tags 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 die Konfiguration wie unter Unterstützung von VPC Service Controls 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 Subnetzwerk der Umgebung TCP, UDP Alle
Steuerungsebene des Clusters der Umgebung Ausgehender Traffic Zulassen IP-Bereich der GKE-Steuerungsebene TCP, UDP Alle
(Wenn Ihre Umgebung Private Service Connect verwendet) Verbindungssubnetzwerk Ausgehender Traffic Zulassen Bereich des Subnetzwerks für Cloud Composer-Verbindungen 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:

  • Pod-, Dienst- und Steuerungsebenen-Adressbereiche sind verfügbar in auf der Seite Cluster des Umgebungsclusters:

    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 Cloud Composer-Mandantennetzwerks der Umgebung finden Sie auf dem Tab Umgebungskonfiguration.

  • Sie können die Umgebungstemperatur Subnetzwerk-ID und Subnetzwerk-ID der Cloud Composer-Verbindung auf dem Tab Umgebungskonfiguration. Wenn Sie IP-Bereiche für ein Subnetz abrufen möchten, rufen Sie die Seite VPC-Netzwerke auf und klicken Sie auf den Namen des Netzwerks, um Details zu sehen:

    Zur Seite VPC-Netzwerke

VPC Service Controls-Logs

Wenn Sie Probleme beim Erstellen einer Umgebung beheben, können Sie die von VPC Service Controls generierten Prüfprotokolle analysieren.

Zusätzlich zu anderen Logeinträgen können Sie in den Protokollen auch Informationen zu cloud-airflow-prod@system.gserviceaccount.com und service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com Dienstkonten, die Komponenten Ihrer Umgebungen konfigurieren.

Der Cloud Composer-Dienst verwendet das Dienstkonto cloud-airflow-prod@system.gserviceaccount.com, um Teile von Mandantenprojekten in Ihren Umgebungen zu verwalten.

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

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.

Nächste Schritte