Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Auf dieser Seite werden verschiedene Mechanismen der Zugriffssteuerung für die Airflow-UI beschrieben und die DAG-UI. Sie können diese Mechanismen zusätzlich zur Zugriffssteuerung von IAM bereitgestellt, um Nutzer im Airflow-UI und DAG-UI Ihrer Umgebung
Übersicht über die Airflow-UI-Zugriffssteuerung in Cloud Composer
Zugriff auf Airflow UI und DAG UI und wird die Sichtbarkeit von Daten und Vorgängen in diesen Benutzeroberflächen auf zwei Ebenen in Cloud Composer:
Der Zugriff auf die Airflow-UI und die DAG-UI in Cloud Composer ist von IAM kontrolliert.
Wenn ein Konto keine Rolle hat, mit der es Cloud Composer-Umgebungen in Ihrem Projekt ansehen kann, sind die Airflow- und DAG-Benutzeroberflächen nicht verfügbar.
IAM bietet keine zusätzlichen detaillierten in der Airflow- oder DAG-UI.
Mit dem Apache Airflow-Zugriffssteuerungsmodell lässt sich die Sichtbarkeit in der Airflow-UI und der DAG-UI basierend auf der Nutzerrolle reduzieren.
Die Apache Airflow-Zugriffssteuerung ist eine Funktion von Airflow, Modell von Nutzern, Rollen und Berechtigungen, das sich IAM
Die Zugriffssteuerung von Apache Airflow verwendet ressourcenbasierte Berechtigungen. Alle Airflow-Nutzer mit einer bestimmten Airflow-Rolle erhalten die Berechtigungen dieser Rolle. Beispiel:
Airflow-Nutzer, die eine Rolle mit der Berechtigung can delete on Connections
haben
können Sie in der Airflow-UI auf der Seite „Verbindungen“ Verbindungen löschen.
Sie können auch Berechtigungen auf DAG-Ebene für einzelne DAGs. So können Sie beispielsweise festlegen, dass nur Nutzer mit einer bestimmten Airflow-Rolle einen bestimmten DAG in der Airflow-Benutzeroberfläche sehen können. In Cloud Composer können Sie Berechtigungen auf DAG-Ebene automatisch zuweisen, basierend auf dem Unterordner, in dem sich die DAG-Datei im Bucket der Umgebung befindet.
Wenn Sie den Zugriff für externe Identitäten über die Workforce Identity-Föderation einrichten möchten, müssen Sie zuerst in IAM Zugriff auf Ihre Umgebung gewähren, wie im Abschnitt IAM-Rollen für externe Identitäten gewähren beschrieben. Danach können Sie die Zugriffssteuerung der Airflow-Benutzeroberfläche wie gewohnt verwenden. Airflow-Nutzer für externe Identitäten verwenden stattdessen ihre Hauptkennung der E-Mail-Adresse stehen und bei den anderen Nutzern unterschiedliche Werte Eintragsfelder als Google-Konten.
Hinweise
- Die Registrierung von Rollen pro Ordner ist in Cloud Composer 2.0.16 und höher verfügbar.
Airflow-Rollen und Zugriffssteuerungseinstellungen verwalten
Nutzer mit der Rolle „Administrator“ (oder einer gleichwertigen Rolle) können die Einstellungen für die Zugriffssteuerung in der Airflow-Benutzeroberfläche aufrufen und ändern.
In der Airflow-Benutzeroberfläche können Sie die Einstellungen für die Zugriffssteuerung über das Menü Sicherheit konfigurieren. Weitere Informationen zum Airflow-Zugriffssteuerungsmodell, zu den verfügbaren Berechtigungen und zu den Standardrollen finden Sie in der Dokumentation zur Airflow-UI-Zugriffssteuerung.
Airflow verwaltet eine eigene Liste von Nutzern. Nutzer mit dem Administrator Rolle (oder entsprechende Rolle) kann die Liste der Nutzer ansehen, die die Airflow-UI geöffnet haben und wurden in Airflow registriert. Diese Liste enthält auch Nutzer, die von einem Administrator manuell vorab registriert wurden, wie im folgenden Abschnitt beschrieben.
Nutzer in der Airflow-UI registrieren
Neue Nutzer werden automatisch registriert, wenn sie die Airflow-UI eines Cloud Composer-Umgebung.
Bei der Registrierung wird Nutzern die in der
[webserver]rbac_user_registration_role
Airflow-Konfigurationsoption. Sie können
die Rolle neu registrierter Nutzer durch Überschreiben
Airflow-Konfigurationsoption mit einem anderen Wert.
Wenn keine Angabe erfolgt, wird in Umgebungen mit Airflow 2 die Standardregistrierungsrolle Op
verwendet.
Zum Erstellen einer einfachen Rollenkonfiguration für die Airflow-Benutzeroberfläche werden folgende Schritte empfohlen:
Umgebungsadministratoren öffnen die Airflow-UI für die neu erstellte zu verbessern.
Gewähren Sie den Administratorkonten die Rolle
Admin
. Die Standardrolle für neue Konten in Umgebungen mit Airflow 2 istOp
. Führen Sie zum Zuweisen der RolleAdmin
den folgenden Airflow-Befehlszeilenbefehl mit der gcloud CLI aus:gcloud composer environments run ENVIRONMENT_NAME \ --location LOCATION \ users add-role -- -e USER_EMAIL -r Admin
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.USER_EMAIL
durch die E-Mail-Adresse eines Nutzerkontos.
Administratoren können jetzt die Zugriffssteuerung für neue Nutzer konfigurieren und beispielsweise die Rolle
Admin
anderen Nutzern zuweisen.
Nutzer vorregistrieren
Nutzer werden automatisch mit den numerischen IDs von Google-Nutzerkonten (nicht mit E-Mail-Adressen) als Nutzernamen registriert. Sie können Nutzer auch manuell vorregistrieren, und weisen Sie ihnen eine Rolle zu, indem Sie einen Nutzerdatensatz mit dem festgelegten Feld „username“ (Nutzername) hinzufügen an die primäre E-Mail-Adresse des Nutzers senden. Wenn ein Nutzer mit einer E-Mail-Adresse Abgleich eines vorregistrierten Nutzerdatensatzes zum ersten Mal in der Airflow-UI wird der Nutzername durch die Nutzer-ID ersetzt, die zum jeweiligen Zeitpunkt der ersten Anmeldung), die durch ihre E-Mail-Adresse identifiziert werden. Die Beziehung zwischen Google-Identitäten (E-Mail-Adressen) und Nutzerkonten (Nutzer-IDs) ist nicht behoben. Google-Gruppen können nicht vorregistriert werden.
Wenn Sie Nutzer vorregistrieren möchten, können Sie die Airflow-UI verwenden oder einen Airflow-Kommandozeilenbefehl ausführen über die Google Cloud CLI.
So registrieren Sie einen Nutzer mit einer benutzerdefinierten Rolle über die Google Cloud CLI: Führen Sie den folgenden Airflow-Kommandozeilenbefehl aus:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
users create -- \
-r ROLE \
-e USER_EMAIL \
-u USER_EMAIL \
-f FIRST_NAME \
-l LAST_NAME \
--use-random-password # The password value is required, but is not used
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name der UmgebungLOCATION
: Region, in der sich die Umgebung befindetROLE
: eine Airflow-Rolle für den Nutzer, z. B.Op
USER_EMAIL
: die E-Mail-Adresse des NutzersFIRST_NAME
undLAST_NAME
: Vor- und Nachname des Nutzers
Beispiel:
gcloud composer environments run example-environment \
--location us-central1 \
users create -- \
-r Op \
-e "example-user@example.com" \
-u "example-user@example.com" \
-f "Name" \
-l "Surname" \
--use-random-password
Nutzer entfernen
Wenn Sie einen Nutzer aus Airflow löschen, wird der Zugriff für diesen Nutzer nicht widerrufen, da er beim nächsten Zugriff auf die Airflow-UI automatisch wieder registriert wird. Bis
Zugriff auf die gesamte Airflow-UI widerrufen, composer.environments.get
entfernen
Zulassungsrichtlinie für Ihr Projekt.
Sie können die Rolle des Nutzers auch auf „Öffentlich“ ändern. Dadurch bleibt die Registrierung des Nutzers erhalten, aber alle Berechtigungen für die Airflow-Benutzeroberfläche werden entfernt.
Berechtigungen auf DAG-Ebene automatisch konfigurieren
Mit der Funktion zur Registrierung von Rollen pro Ordner wird automatisch eine benutzerdefinierte Airflow-Rolle für jeden Unterordner direkt im Ordner /dags
erstellt. Diese Rolle erhält Zugriff auf DAG-Ebene für alle DAGs, deren Quelldatei in diesem jeweiligen Unterordner gespeichert ist. Dieses
vereinfacht die Verwaltung benutzerdefinierter Airflow-Rollen und deren Zugriff auf DAGs.
So funktioniert die Registrierung von Rollen pro Ordner
Die Registrierung von Rollen pro Ordner ist eine automatisierte Methode, um Rollen und ihre Berechtigungen auf DAG-Ebene zu konfigurieren. Daher kann es zu Konflikten mit anderen Airflow-Mechanismen kommen, die Berechtigungen auf DAG-Ebene gewähren:
- Rollen manuell DAG-Berechtigungen zuweisen
- DAGs Rollen über die Property
access_control
in einem DAG zuweisen
Um solche Konflikte zu vermeiden, sollten Sie außerdem die Registrierung von Rollen pro Ordner aktivieren. verändert das Verhalten dieser Mechanismen.
In Airflow 2:
- Sie können Rollen über die im DAG-Quellcode definierte Eigenschaft
access_control
DAG-Zugriff gewähren. - Das manuelle Gewähren von DAG-Berechtigungen (über die Airflow-Benutzeroberfläche oder die gcloud CLI) kann zu Konflikten führen. Wenn Sie beispielsweise einer Ordnerrolle manuell Berechtigungen auf DAG-Ebene gewähren, können diese Berechtigungen entfernt oder überschrieben werden, wenn der DAG-Prozessor einen DAG synchronisiert. Wir raten davon ab, DAG-Berechtigungen manuell zu gewähren.
- Rollen haben eine Union der DAG-Zugriffsberechtigungen, die über die Option „Pro Ordner“ registriert wurden
Registrierung der Rollen und Definition im Attribut
access_control
von den DAG.
DAGs, die sich direkt im obersten Ordner /dags
befinden, werden nicht automatisch zugewiesen:
jede Rolle pro Ordner. Auf sie kann nicht mit einer Rolle pro Ordner zugegriffen werden. Sonstiges
Rollen wie Admin, Op, User oder andere benutzerdefinierte Rollen mit Berechtigungen können
über die Airflow- und die DAG-UI
auf sie zugreifen können.
Wenn Sie DAGs in Unterordner mit Namen hochladen, die mit vordefinierten Airflow-Rollen und von Cloud Composer erstellten Rollen übereinstimmen, werden diesen Rollen weiterhin Berechtigungen für DAGs in diesen Unterordnern zugewiesen. Wenn Sie beispielsweise einen DAG in den Ordner /dags/Admin
hochladen, werden der Rolle „Administrator“ Berechtigungen für diesen DAG gewährt. Zu den integrierten Airflow-Rollen gehören „Administrator“, „Bearbeiter“, „Nutzer“, „Betrachter“ und „Öffentlich“.
Cloud Composer erstellt NoDags und UserNoDags nach dem Ordnertyp
Die Funktion zur Rollenregistrierung ist aktiviert.
Airflow führt die Registrierung von Rollen pro Ordner durch, wenn DAGs im Airflow-Planer verarbeitet werden. Wenn sich in Ihrer Umgebung mehr als hundert DAGs befinden, kann sich die Zeit für das DAG-Parsing verlängern.
In diesem Fall empfehlen wir, mehr Arbeitsspeicher und CPU für Scheduler zu verwenden. Sie können auch den Wert der Airflow-Konfigurationsoption [scheduler]parsing_processes
erhöhen.
DAGs automatisch Rollen pro Ordner zuweisen
So weisen Sie DAGs automatisch Rollen pro Ordner zu:
Überschreiben Sie die folgende Airflow-Konfigurationsoption:
Bereich Schlüssel Wert webserver
rbac_autoregister_per_folder_roles
True
Ändern Sie die neue Rolle zur Nutzerregistrierung in eine Rolle ohne Zugriff auf DAGs. So haben neue Nutzer erst dann Zugriff auf DAGs, wenn ein Administrator ihren Konten eine Rolle mit Berechtigungen für bestimmte DAGs zuweist.
UserNoDags ist eine von Cloud Composer erstellte Rolle nur, wenn Funktion zur Rollenregistrierung pro Ordner ist aktiviert. Sie entspricht der Rolle „Nutzer“, hat aber keinen Zugriff auf DAGs.
Überschreiben Sie die folgende Airflow-Konfigurationsoption:
Bereich Schlüssel Wert webserver
rbac_user_registration_role
UserNoDags
Die Nutzer müssen in Airflow registriert sein.
Sie können Nutzern Rollen auf folgende Arten zuweisen:
- Lassen Sie Airflow automatisch Rollen basierend auf den DAG-Unterordnern erstellen und weisen Sie dann Nutzern diese Rollen zu.
- Erstellen Sie vorab leere Rollen für die DAG-Unterordner, deren Rollennamen mit dem Namen eines Unterordners übereinstimmen, und weisen Sie dann Nutzern diese Rollen zu. Beispiel:
Erstellen Sie für den Ordner
/dags/CustomFolder
eine Rolle mit dem NamenCustomFolder
.
Laden Sie DAGs in Unterordner mit Namen hoch, die den Nutzern zugewiesenen Rollen entsprechen. Diese Unterordner müssen sich im Ordner
/dags
im Bucket der Umgebung befinden. Airflow fügt DAGs in einem solchen Unterordner Berechtigungen hinzu, sodass nur Nutzer mit der entsprechenden Rolle über die Airflow-UI und die DAG-UI darauf zugreifen können.
Berechtigungen auf DAG-Ebene manuell konfigurieren
Sie können Berechtigungen auf DAG-Ebene für benutzerdefinierte Rollen konfigurieren, um anzugeben, welche DAGs für bestimmte Nutzergruppen sichtbar sind.
So konfigurieren Sie Berechtigungen auf DAG-Ebene in der Airflow-UI:
- Der Administrator erstellt leere Rollen zum Gruppieren von DAGs.
- Der Administrator weist Nutzern die entsprechenden Rollen zu.
- Der Administrator oder die Nutzer weisen den Rollen DAGs zu.
- In der Airflow-UI können Nutzer nur DAGs sehen, die ihrer Gruppe zugewiesen sind.
DAGs können Rollen entweder über DAG-Attribute oder über die Airflow-Benutzeroberfläche zugewiesen werden.
DAGs Rollen in der Airflow-UI zuweisen
Ein Administrator kann den entsprechenden Rollen die erforderlichen Berechtigungen auf DAG-Ebene in der Airflow-UI zuweisen.
Dieser Vorgang wird in der DAG-UI nicht unterstützt.
DAGs Rollen in DAG-Attributen zuweisen
Sie können den DAG-Parameter access_control
auf einem DAG festlegen und die DAG-Gruppierungsrollen angeben, denen der DAG zugewiesen ist.
In Airflow 2-Versionen vor 2.1.0 muss der Administrator, der DAG-Entwickler oder ein
muss der automatisierte Prozess den Airflow-Befehl sync-perm
ausführen, um
die neuen Einstellungen für die Zugriffssteuerung angewendet.
In Airflow 2.1.0 und höher ist das Ausführen dieses Befehls nicht mehr erforderlich, da der Planer Berechtigungen auf DAG-Ebene anwendet, wenn er einen DAG analysiert.
dag = DAG(
access_control={
'DagGroup': {'can_edit', 'can_read'},
},
...
)
Audit-Logs in der Airflow-UI Nutzern zuordnen
Audit-Logs in der Airflow-Benutzeroberfläche werden numerischen IDs von Google-Nutzerkonten zugeordnet. Für Wenn ein Nutzer beispielsweise einen DAG pausiert, wird den Logs ein Eintrag hinzugefügt.
Sie können sich Audit-Logs auf der Seite Suchen > Audit-Logs in der Airflow-Benutzeroberfläche ansehen.
Ein typischer Eintrag enthält eine numerische ID im Feld Inhaber:
accounts.google.com:NUMERIC_ID
Sie können den E-Mail-Adressen von Nutzern auf der
Sicherheit > Nutzer auflisten. Diese Seite ist verfügbar für
Nutzer mit der Rolle Admin
Die Beziehung zwischen Google-Identitäten (E-Mail-Adressen) und Nutzerkonten (Nutzer-IDs) ist nicht festgelegt.