Beschränkungen von Ressourcenstandorten konfigurieren

Cloud Composer 1 Cloud Composer 2

Auf dieser Seite wird gezeigt, wie Sie Einschränkungen für Ressourcenstandorte konfigurieren, um dafür zu sorgen, dass Ihre von Cloud Composer gespeicherten Daten an den von Ihnen angegebenen Speicherorten liegen.

Funktionsweise von Standortbeschränkungen

Standortbeschränkungen für Cloud Composer werden anhand der Organisationsrichtlinie festgelegt, die auf das Projekt angewendet wird, in dem die Cloud Composer-Umgebung erstellt wird. Diese Richtlinie wird entweder innerhalb des Projekts zugewiesen oder von der Organisation übernommen.

Bei aktivierten Standortbeschränkungen ist es nicht möglich, eine Umgebung in einer Region zu erstellen, die durch die Richtlinie verboten ist. Wenn eine Region in der Sperrliste aufgeführt oder nicht in der Zulassungsliste" aufgeführt ist, können Sie in dieser Region keine Umgebungen erstellen.

Damit die Erstellung von Umgebungen möglich ist, muss die Richtlinie die gesamte Region und nicht nur eine bestimmte Zone innerhalb dieser Region zulassen. Beispielsweise muss die Region europe-west3 von der Richtlinie zugelassen werden, um Cloud Composer-Umgebungen in dieser Region zu erstellen.

Cloud Composer prüft die Standortbeschränkungen unter:

  • Umgebung erstellen
  • Umgebungsupgrade, falls während des Vorgangs zusätzliche Ressourcen erstellt werden
  • Aktualisierung der Umgebung für ältere Umgebungen, die keine Standorteinschränkungen für Cloud Composer-Abhängigkeiten erzwingen

Neben den Standortbeschränkungen führt Cloud Composer folgende Schritte aus:

  • Benutzerdefinierte Airflow-Images in regionalen Artifact Registry-Repositories speichern
  • Wenn der multiregionale Standort US durch die Richtlinie explizit verboten ist, ist die Verwendung von Cloud Build deaktiviert. In diesem Fall werden benutzerdefinierte Airflow-Images in Ihrem GKE-Cluster erstellt.

Python-Abhängigkeit in einer privaten IP-Umgebung mit Einschränkungen für Ressourcenstandorte installieren

Wenn Sie für Ihr Projekt Einschränkungen für den Ressourcenstandort festlegen, kann Cloud Build nicht zum Installieren von Python-Paketen verwendet werden. Infolgedessen wird der direkte Zugriff auf Repositories im öffentlichen Internet deaktiviert.

Wenn Sie Python-Abhängigkeiten in einer privaten IP-Umgebung installieren möchten, wenn Ihre Standortbeschränkungen den multiregionalen Standort US nicht zulassen, verwenden Sie eine der folgenden Optionen:

  • Verwenden Sie ein privates PyPI-Repository, das in Ihrem VPC-Netzwerk gehostet wird.

  • Stellen Sie mit einem Proxyserver in Ihrem VPC-Netzwerk eine Verbindung zu einem PyPI-Repository im öffentlichen Internet her. Geben Sie die Proxyadresse in der Datei /config/pip/pip.conf im Cloud Storage-Bucket an.

  • Wenn Ihre Sicherheitsrichtlinie den Zugriff auf Ihr VPC-Netzwerk von externen IP-Adressen aus zulässt, können Sie Cloud NAT konfigurieren.

  • Speichern Sie die Python-Abhängigkeiten im Ordner dags im Cloud Storage-Bucket, um sie als lokale Bibliotheken zu installieren. Dies ist möglicherweise keine gute Option, wenn die Abhängigkeitsstruktur groß ist.

Standorte für Cloud Composer-Logs einschränken

Wenn Ihre Cloud Composer-Logs sensible Daten enthalten, sollten Sie Cloud Composer-Logs an einen regionalen Cloud Storage-Bucket weiterleiten. Verwenden Sie dazu eine Logsenke. Nachdem Sie Logs an einen Cloud Storage-Bucket weitergeleitet haben, werden die Logs nicht mehr an Cloud Logging gesendet.

gcloud

  1. Erstellen Sie einen neuen Cloud Storage-Bucket.

    gsutil mb -l LOCATION gs://BUCKET_NAME
    

    Ersetzen Sie:

    • LOCATION durch die Region, in der sich die Umgebung befindet.
    • BUCKET_NAME durch den Namen des Buckets. Beispiel: composer-logs-us-central1-example-environment
  2. Erstellen Sie eine neue Logsenke.

    gcloud logging sinks create \
    composer-log-sink-ENVIRONMENT_NAME \
    storage.googleapis.com/BUCKET_NAME \
    --log-filter "resource.type=cloud_composer_environment AND \
    resource.labels.environment_name=ENVIRONMENT_NAME AND \
    resource.labels.location=LOCATION"
    

    Ersetzen Sie:

    • ENVIRONMENT_NAME durch den Namen der Umgebung.
    • BUCKET_NAME durch den Namen des Buckets.
    • LOCATION durch die Region, in der sich die Umgebung befindet.
  3. Die Ausgabe des vorherigen Befehls enthält die Dienstkontonummer. Weisen Sie diesem Dienstkonto die Rolle Storage-Objekt-Ersteller zu:

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:SA_NUMBER@gcp-sa-logging.iam.gserviceaccount.com" \
    --role='roles/storage.objectCreator' \
    --condition=None
    

    Ersetzen Sie:

    • PROJECT_ID durch die Projekt-ID.
    • SA_NUMBER durch die Dienstkontonummer, die im vorherigen Schritt durch den Befehl gcloud logging sinks create bereitgestellt wurde.
  4. Schließen Sie die Logs für Ihre Umgebung vom Monitoring aus.

    gcloud logging sinks update _Default \
    --add-exclusion name=ENVIRONMENT_NAME-exclusion,filter=\
    "resource.type=cloud_composer_environment AND \
    resource.labels.environment_name=ENVIRONMENT_NAME AND \
    resource.labels.location=LOCATION"
    

    Ersetzen Sie:

    • ENVIRONMENT_NAME durch den Namen der Umgebung.
    • LOCATION durch die Region, in der sich die Umgebung befindet.

Nächste Schritte