Zugriffssteuerung mit IAM

Cloud Composer 1 | Cloud Composer 2

Auf dieser Seite werden die Optionen zur Zugriffssteuerung beschrieben, die in Cloud Composer zur Verfügung stehen. Außerdem wird erläutert, wie Sie Rollen zuweisen.

Überblick

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 über die Aktivierung oder Deaktivierung des Zugriffs hinaus steuern. Weitere Informationen finden Sie unter Rollenbasierte Zugriffssteuerung mit Airflow.

Informationen zu Identity and Access Managemen in Cloud Composer

Cloud Composer verwendet die Identitäts- und Zugriffsverwaltung (IAM) zur Zugriffssteuerung.

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

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, um Ressourcen zu verwalten, die sich auf Cloud Composer beziehen. Dieses Konto heißt Cloud Composer-Dienst-Agent.

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

Informationen zu Dienstkonten für Cloud Composer-Umgebungen

Wenn Sie eine Umgebung erstellen, 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, normalerweise die einfache Rolle Bearbeiter.

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

Informationen zu Rollen für Cloud Composer-Nutzer

Um einen Umgebungsvorgang auszulösen, 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. Für Nutzer, die mit Umgebungen arbeiten, empfehlen wir die Verwendung von Cloud Composer-spezifischen Rollen. Auf diese Weise können Sie den Umfang der Berechtigungen einschränken und für unterschiedliche Hauptkonten unterschiedliche Zugriffsebenen bereitstellen. Beispielsweise kann ein Nutzer Berechtigungen zum Erstellen, Updaten, Upgraden und Löschen von Umgebungen haben, während ein anderer Nutzer nur Umgebungen ansehen und auf die Airflow-Weboberfläche zugreifen kann.

Rollen einem nutzerverwalteten Dienstkonto zuweisen

Nutzerverwaltetes Dienstkonto, das Cloud Composer-Umgebungen ausführt:

  • Weisen Sie für die Konfiguration einer öffentlichen IP-Adresse die Rolle Composer-Worker (composer.worker) zu.
  • 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, gewähren Sie Hauptkonten folgende Berechtigungen.

Umgebungen und Umgebungs-Buckets verwalten

Nutzer, die Umgebungen anzeigen, erstellen, aktualisieren, updaten und löschen, Objekte (z. B. DAG-Dateien) in den Umgebungs-Buckets verwalten und auf die Airflow-Weboberfläche zugreifen können:

  1. Weisen Sie die Rolle Administrator für Umgebung und Storage-Objekte (composer.environmentAndStorageObjectAdmin) zu.
  2. Weisen Sie die Rolle Dienstkontonutzer (iam.serviceAccountUser) zu.

Umgebungen verwalten

Nutzer, die Umgebungen aufrufen, erstellen, aktualisieren, updaten, löschen und auf die Airflow-Weboberfläche zugreifen können:

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

Umgebungen ansehen und Umgebungs-Buckets verwalten

Nutzer, die Umgebungen ansehen, auf die Airflow-Weboberfläche zugreifen und Objekte in den Umgebungs-Buckets verwalten (z. B. zum Hochladen neuer DAG-Dateien) können:

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

Umgebungen und Umgebungs-Buckets ansehen

Für Nutzer, der Umgebungen anzeigen, auf die Airflow-Weboberfläche zugreifen und Objekte in Umgebungs-Buckets aufrufen können, weisen Sie die Rolle Umgebungsnutzer und Storage-Objekt-Betrachter (composer.environmentAndStorageObjectViewer) zu.

Umgebungen ansehen

Für Nutzer, der Umgebungen ansehen und auf die Airflow-Weboberfläche zugreifen können weisen Sie die Rolle Composer-Nutzer (composer.user) zu.

Berechtigungen zur Verwendung von gcloud mit Umgebungen zuweisen

Folgenden Berechtigungen sind erforderlich, um das gcloud-Befehlszeilentool mit Cloud Composer-Umgebungen zu verwenden, z. B. zum Ausführen von Befehlen der Airflow-Befehlszeile.

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 folgende 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
  • composer.environments.get
  • 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.environments.update
composer.imageversions.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.environments.update
composer.imageversions.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 erforderlich sind, um die einzelnen Methoden in der Cloud Composer API aufrufen oder um Aufgaben mit Google Cloud-Tools ausführen zu können, 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 Sie möchten, dass eine Cloud Composer-Umgebung in einem Projekt ein nutzerverwaltetes Dienstkonto aus einem anderen Projekt verwendet:

  1. Konfigurieren Sie das nutzerverwaltete Dienstkonto so, dass es projektübergreifend funktioniert.
  2. Bei diesem Prozess müssen Sie 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