Zugriffssteuerung

Cloud Composer 1 | Cloud Composer 2

Auf dieser Seite werden die Zugriffssteuerungsoptionen beschrieben, die Ihnen in Cloud Composer zur Verfügung stehen. Außerdem erfahren Sie, wie Sie Rollen zuweisen.

Übersicht

Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die Berechtigungen für die Airflow-Weboberfläche zusätzlich zum Aktivieren oder Deaktivieren des Zugriffs steuern. Weitere Informationen finden Sie unter Rollenbasierte Zugriffssteuerung für Airflow.

Informationen zur Identitäts- und Zugriffsverwaltung in Cloud Composer

Cloud Composer verwendet für die Zugriffssteuerung die Identitäts- und Zugriffsverwaltung (IAM).

Sie steuern den Zugriff auf verschiedene Cloud Composer-Features, indem Sie Rollen und Berechtigungen sowohl für IAM-Dienstkonten als auch für Nutzerkonten in Ihrem Google Cloud-Projekt zuweisen.

Cloud Composer verwendet zwei Arten von IAM-Dienstkonten:

Informationen zum Cloud Composer-Dienst-Agent-Konto

In Ihrem Projekt verwendet der Cloud Composer-Dienst ein spezielles von Google verwaltetes Dienstkonto zur Verwaltung von Ressourcen, die mit Cloud Composer zusammenhängen. Dieses Konto wird als Cloud Composer-Dienst-Agent bezeichnet.

Der Cloud Composer-Dienst-Agent wird für alle Umgebungen in Ihrem Projekt verwendet.

Informationen zu Dienstkonten für Cloud Composer-Umgebungen

Beim Erstellen einer Umgebung geben Sie ein Dienstkonto an. Der Cluster Ihrer Umgebung verwendet dieses Dienstkonto, um Pods mit verschiedenen Umgebungskomponenten wie Airflow-Workern und Planern auszuführen.

Standardmäßig werden Cloud Composer-Umgebungen mit dem Compute Engine-Standarddienstkonto ausgeführt. Dieses von Google verwaltete Dienstkonto hat mehr Berechtigungen, als zum Ausführen von Cloud Composer-Umgebungen erforderlich ist, normalerweise die einfache Rolle Bearbeiter.

Wir empfehlen, ein nutzerverwaltetes Dienstkonto für Cloud Composer-Umgebungen einzurichten. Weisen Sie diesem Konto eine Rolle zu, die speziell für Cloud Composer gilt. Geben Sie anschließend beim Erstellen neuer Umgebungen dieses Dienstkonto an.

Informationen zu Rollen für Cloud Composer-Nutzer

Zum Auslösen eines Umgebungsvorgangs muss ein Nutzer ausreichende Berechtigungen haben. Wenn Sie beispielsweise eine neue Umgebung erstellen möchten, benötigen Sie die Berechtigung composer.environments.create.

Bei Cloud Composer werden einzelne Berechtigungen in Rollen gruppiert. Sie können diese Rollen Hauptkonten zuweisen.

Wenn Ihr Dienstkonto die Rolle Projektbearbeiter hat, können Sie alle Umgebungsvorgänge ausführen. Diese Rolle hat jedoch umfassende Berechtigungen. Nutzern, die in Umgebungen arbeiten, empfehlen wir die Verwendung spezifischer Rollen für Cloud Composer. So können Sie den Umfang der Berechtigungen einschränken und verschiedene Zugriffsebenen für unterschiedliche Hauptkonten festlegen. Ein Nutzer kann beispielsweise Berechtigungen zum Erstellen, Aktualisieren, Aktualisieren und Löschen von Umgebungen haben, während ein anderer Nutzer nur Umgebungen aufrufen und auf die Airflow-Weboberfläche zugreifen kann.

Cloud Composer-Dienst-Agent-Konten Rollen zuweisen

Wenn Sie die Cloud Composer API in Ihrem Projekt aktivieren, wird das Konto Composer-Dienst-Agent in Ihrem Projekt erstellt. Cloud Composer verwendet dieses Konto, um Vorgänge in Ihrem Google Cloud-Projekt auszuführen.

Cloud Composer 2 verwendet GKE Autopilot, für das Workload Identity erforderlich ist. Zur Unterstützung von Workload Identity muss das Dienstkonto Ihrer Umgebung Bindungen an das Kubernetes-Dienstkonto haben, das den Cluster Ihrer Umgebung ausführt. Diese Bindungen sind erforderlich, damit Pods von Ihrem Umgebungscluster auf Ressourcen Ihres Google Cloud-Projekts zugreifen können. Sie können beispielsweise DAG-Definitionsdateien aus dem Bucket der Umgebung lesen.

Zum Erstellen von Bindungen zwischen dem Dienstkonto Ihrer Umgebung und dem Kubernetes-Dienstkonto des Clusters Ihrer Umgebung muss das Composer-Dienst-Agent-Konto über ausreichende Berechtigungen verfügen. Dazu sind die Berechtigungen iam.serviceAccounts.getIamPolicy und iam.serviceAccounts.setIamPolicy erforderlich, die durch die Rolle Cloud Composer v2 API-Dienst-Agent-Erweiterung bereitgestellt werden. Diese Rolle wird nicht automatisch gewährt. Sie müssen den Schlüssel manuell einmal pro Projekt zuweisen.

Eine Anleitung zum Hinzufügen dieser Rolle finden Sie unter Umgebungen erstellen.

Einem nutzerverwalteten Dienstkonto Rollen zuweisen

Für ein nutzerverwaltetes Dienstkonto, das Cloud Composer-Umgebungen ausführt:

  • Weisen Sie für eine öffentliche IP-Konfiguration die Rolle Composer-Worker (composer.worker) zu.
  • Für eine private IP-Konfiguration:
    1. Weisen Sie die Rolle Composer-Worker (composer.worker) zu.
    2. Weisen Sie die Rolle Dienstkontonutzer (iam.serviceAccountUser) zu.

Nutzern Rollen zuweisen

Abhängig von der Zugriffsebene, die Sie für Cloud Composer-Umgebungen bereitstellen möchten, erteilen Sie den Hauptkonten die folgenden Berechtigungen.

Umgebungen und Umgebungs-Buckets verwalten

Für einen Nutzer, der Umgebungen aufrufen, erstellen, aktualisieren, aktualisieren und löschen, Objekte (z. B. DAG-Dateien) in den Umgebungs-Buckets verwalten und auf die Airflow-Weboberfläche zugreifen kann:

  1. Weisen Sie die Rolle Umgebungs- und Storage-Objektadministrator (composer.environmentAndStorageObjectAdmin) zu.
  2. Weisen Sie die Rolle Dienstkontonutzer (iam.serviceAccountUser) zu.

Umgebungen verwalten

Für einen Nutzer, der Umgebungen ansehen, erstellen, aktualisieren, aktualisieren und löschen sowie auf die Airflow-Weboberfläche zugreifen kann:

  1. Weisen Sie die Rolle Composer-Administrator (composer.admin) zu.
  2. Weisen Sie die Rolle Dienstkontonutzer (iam.serviceAccountUser) zu.

Umgebungen aufrufen und Umgebungs-Buckets verwalten

Für einen Nutzer, der Umgebungen ansehen, auf die Airflow-Weboberfläche zugreifen und Objekte in den Umgebungs-Buckets verwalten kann (z. B. um neue DAG-Dateien hochzuladen):

  1. Weisen Sie die Rolle Umgebungsnutzer und Storage-Objekt-Betrachter (composer.environmentAndStorageObjectViewer) zu.
  2. Weisen Sie die Rolle Storage-Objekt-Administrator (storage.objectAdmin) zu.

Umgebungen und Umgebungs-Buckets aufrufen

Weisen Sie einem Nutzer, der Umgebungen ansehen, auf die Airflow-Weboberfläche zugreifen und Objekte in Umgebungs-Buckets ansehen kann, die Rolle Nutzer für Umgebung und Storage-Objekt (composer.environmentAndStorageObjectViewer) zu. angezeigt.

Umgebungen ansehen

Weisen Sie einem Nutzer, der Umgebungen ansehen und auf die Airflow-Weboberfläche zugreifen kann, die Rolle Composer-Nutzer (composer.user) zu.

Berechtigungen für die Verwendung von gcloud mit Umgebungen zuweisen

Die folgenden Berechtigungen sind erforderlich, um das gcloud-Befehlszeilentool mit Cloud Composer-Umgebungen zu verwenden, z. B. zum Ausführen von Airflow-Befehlszeilenbefehlen.

Wenn Sie Umgebungen oder Umgebungs-Buckets mit gcloud composer-Befehlen verwalten möchten, benötigen Sie außerdem eine Rolle mit ausreichenden Berechtigungen.

Zur Verwendung von gcloud mit Cloud Composer-Umgebungen benötigen Sie die folgenden Berechtigungen:

  • composer.environments.get
  • container.clusters.get
  • container.clusters.list
  • container.clusters.getCredentials

Rollen

Rolle Berechtigungen

Dienst-Agent-Erweiterung für die Cloud Composer v2 API
(roles/composer.ServiceAgentV2Ext)

Die Dienst-Agent-Erweiterung für die Cloud Composer v2 API ist eine zusätzliche Rolle, die zum Verwalten von Composer v2-Umgebungen erforderlich ist.

  • iam.serviceAccounts.getIamPolicy
  • iam.serviceAccounts.setIamPolicy

Composer-Administrator
(roles/composer.admin)

Uneingeschränkte Kontrolle über Cloud Composer-Ressourcen.

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • Projekt
  • composer.*
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Administrator für Umgebung und Storage-Objekte
(roles/composer.environmentAndStorageObjectAdmin)

Uneingeschränkte Kontrolle über Cloud Composer-Ressourcen und die Objekte in allen Projekt-Buckets.

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • Projekt
  • composer.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.*

Umgebungsnutzer und Betrachter von Storage-Objekten
(roles/composer.environmentAndStorageObjectViewer)

Berechtigung zum Auflisten und Abrufen von Cloud Composer-Umgebungen und -Vorgängen. Lesezugriff auf Objekte in allen Projekt-Buckets.

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • Projekt
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.get
  • storage.objects.list

Composer-Agent für freigegebene VPC
(roles/composer.sharedVpcAgent)

Rolle, die dem Dienstkonto des Composer-Agents im Hostprojekt der freigegebenen VPC zugewiesen wurde

  • compute.networks.access
  • compute.networks.addPeering
  • compute.networks.get
  • compute.networks.list
  • compute.networks.listPeeringRoutes
  • compute.networks.removePeering
  • compute.networks.updatePeering
  • compute.networks.use
  • compute.networks.useExternalIp
  • compute.projects.get
  • compute.regions.*
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • compute.zones.*

Composer-Nutzer
(roles/composer.user)

Berechtigung zum Auflisten und Abrufen von Cloud Composer-Umgebungen und -Vorgängen.

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • Projekt
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Composer-Worker
(roles/composer.worker)

Berechtigung zum Ausführen einer VM in einer Cloud Composer-Umgebung. Für Dienstkonten bestimmt.

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • Projekt
  • artifactregistry.*
  • cloudbuild.builds.create
  • cloudbuild.builds.get
  • cloudbuild.builds.list
  • cloudbuild.builds.update
  • cloudbuild.workerpools.use
  • container.*
  • containeranalysis.occurrences.create
  • containeranalysis.occurrences.delete
  • containeranalysis.occurrences.get
  • containeranalysis.occurrences.list
  • containeranalysis.occurrences.update
  • logging.logEntries.create
  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.monitoredResourceDescriptors.*
  • monitoring.timeSeries.*
  • pubsub.schemas.attach
  • pubsub.schemas.create
  • pubsub.schemas.delete
  • pubsub.schemas.get
  • pubsub.schemas.list
  • pubsub.schemas.validate
  • pubsub.snapshots.create
  • pubsub.snapshots.delete
  • pubsub.snapshots.get
  • pubsub.snapshots.list
  • pubsub.snapshots.seek
  • pubsub.snapshots.update
  • pubsub.subscriptions.consume
  • pubsub.subscriptions.create
  • pubsub.subscriptions.delete
  • pubsub.subscriptions.get
  • pubsub.subscriptions.list
  • pubsub.subscriptions.update
  • pubsub.topics.attachSubscription
  • pubsub.topics.create
  • pubsub.topics.delete
  • pubsub.topics.detachSubscription
  • pubsub.topics.get
  • pubsub.topics.list
  • pubsub.topics.publish
  • pubsub.topics.update
  • pubsub.topics.updateTag
  • remotebuildexecution.blobs.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • source.repos.get
  • source.repos.list
  • storage.buckets.create
  • storage.buckets.get
  • storage.buckets.list
  • storage.objects.*

Einfache Rollen

Rolle Titel Beschreibung Berechtigungen Niedrigste Ressource
roles/owner Inhaber Einfache Rolle, die die vollständige Kontrolle über Cloud Composer-Ressourcen ermöglicht. composer.environments.create
Composer.environments.delete
Composer.environments.get
Composer.environments.list
Composer.Environment.Update
Composer.operations.list
Composer.operations.delete
Composer.operations.get
Composer.Operations.list
iam.serviceAccounts.actAs
Projekt
roles/editor Editor Einfache Rolle, die die vollständige Kontrolle über Cloud Composer-Ressourcen ermöglicht. composer.environments.create
Composer.environments.delete
Composer.environments.get
Composer.environments.list
Composer.Environment.Update
Composer.operations.list
Composer.operations.delete
Composer.operations.get
Composer.Operations.list
iam.serviceAccounts.actAs
Projekt
roles/viewer Betrachter Einfache Rolle, mit der Nutzer Cloud Composer-Ressourcen auflisten und abrufen können. composer.environments.get
Composer.environments.list
Composer.imageversions.list
Composer.operations.get
Composer.Operations.list
Projekt

Berechtigungen

In der folgenden Tabelle sind die Berechtigungen aufgeführt, die der Aufrufer haben muss, um die einzelnen API-Methoden in der Cloud Composer API aufzurufen oder Aufgaben mit Google Cloud-Tools auszuführen, die die API verwenden (z. B. die Google Cloud Console oder das Cloud SDK). ).

Methode Berechtigung
environments.create composer.environments.create und iam.serviceAccounts.actAs für das Dienstkonto der Umgebung.
environments.delete composer.environments.delete
environments.get composer.environments.get
environments.list composer.environments.list
environments.update composer.environments.update
operations.delete composer.operations.delete
operations.get composer.operations.get
operations.list composer.operations.list

Dienstkonto aus einem anderen Projekt verwenden

Wenn eine Cloud Composer-Umgebung in einem Projekt ein nutzerverwaltetes Dienstkonto aus einem anderen Projekt verwenden soll:

  1. Konfigurieren Sie das nutzerverwaltete Dienstkonto projektübergreifend.
  2. Im Rahmen dieses Vorgangs müssen Sie den folgenden von Google verwalteten Dienstkonten in Ihrem nutzerverwalteten Dienstkonto die Rolle Ersteller von Dienstkonto-Tokens zuweisen:

    1. Standardmäßiges Compute Engine-Dienstkonto (PROJECT_NUMBER-compute@developer.gserviceaccount.com)
    2. Cloud Composer-Dienst-Agent (service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com)

Nächste Schritte