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, die Cloud Composer-Umgebungen in Ihrem dann sind die Airflow-UI und die DAG-UI nicht verfügbar.
IAM bietet keine weiteren detaillierten in der Airflow- oder DAG-UI.
Das Zugriffssteuerungsmodell von Apache Airflow ermöglicht Folgendes: die Sichtbarkeit in der Airflow-UI und der DAG-UI je nach Nutzerrolle verringern.
Die Apache Airflow-Zugriffssteuerung ist eine Funktion von Airflow, Modell von Nutzern, Rollen und Berechtigungen, das sich IAM
Die Apache Airflow-Zugriffssteuerung verwendet ressourcenbasierte Berechtigungen. Gesamter 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. Für Damit nur Nutzer mit einer bestimmten Airflow-Rolle einen bestimmten DAG sehen können, auf der Airflow-UI. In Cloud Composer können Sie automatisch Berechtigungen auf DAG-Ebene zuweisen, basierend auf dem Unterordner, in dem sich die DAG-Datei im Bucket.
Hinweise
Die Airflow-UI mit Zugriffssteuerung ist verfügbar für Cloud Composer-Versionen 1.13.4 oder höher und Airflow 1.10.10 und höher. In der Umgebung muss auch Python 3 ausgeführt werden.
Die Registrierung von Rollen pro Ordner ist verfügbar in Cloud Composer 1.18.12 und höher in Airflow 2 und in Cloud Composer 1.13.4 und höhere Versionen in Airflow 1.
Zugriffssteuerung für die Airflow-UI aktivieren
Airflow 2
Die Airflow-UI mit Zugriffssteuerung ist in Airflow 2 immer aktiviert.
Airflow 1
Um die Airflow-UI mit Zugriffssteuerung zu aktivieren, überschreiben Sie das Feld folgende Airflow-Konfigurationsoption:
Bereich | Schlüssel | Wert |
---|---|---|
webserver |
rbac |
True |
Sie können dies für eine vorhandene Umgebung oder beim Erstellen einer neuen Umgebung tun.
Mit dieser Konfiguration führt Ihre Umgebung die Airflow-UI mit Zugriff aus statt der klassischen Airflow-UI.
Airflow-Rollen und Zugriffssteuerungseinstellungen verwalten
Nutzer mit der Rolle „Administrator“ (oder einer entsprechenden Rolle) können die Zugriffssteuerung ansehen und ändern Einstellungen auf der Airflow-Benutzeroberfläche.
In der Airflow-UI können Sie die Zugriffssteuerungseinstellungen das Menü Sicherheit aus. Weitere Informationen zur Airflow-Zugriffssteuerung Modell, verfügbaren Berechtigungen und Standardrollen, finden Sie in der Dokumentation zur Airflow-UI-Zugriffssteuerung
In Airflow 1 wird die Nutzerrolle als Vorlage für alle benutzerdefinierten Rollen behandelt. Luftstrom
Kopiert Berechtigungen der Rolle "Nutzer" kontinuierlich in alle benutzerdefinierten Rollen, mit Ausnahme von
Berechtigungen für all_dags
.
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, manuell von einem Administrator vorregistriert, 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 nicht angegeben, lautet die Standardregistrierungsrolle Op
in Umgebungen mit
Airflow 2.
In Umgebungen mit Airflow 1.10.* ist die Standardregistrierungsrolle Admin
.
Die folgenden Schritte werden zum Erstellen einer einfachen Rollenkonfiguration für der Airflow-UI:
Airflow 2
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
. Zum Zuweisen die RolleAdmin
haben, führen Sie Folgendes aus: Befehl der Airflow-Befehlszeile mitgcloud
: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.
Airflow 1
Umgebungsadministratoren öffnen die Airflow-UI für die neu erstellte Umgebung, in der sie automatisch im
Admin
registriert werden Rolle.Überschreiben Sie folgende Airflow-Konfigurationsoption mit der erforderlichen Rolle neuer Nutzer. Beispiel:
User
.Bereich Schlüssel Wert webserver
rbac_user_registration_role
User
oder andere Rolle ohne AdministratorAdmins können jetzt die Airflow-UI-Zugriffssteuerung für neue Nutzer konfigurieren, einschließlich Anderen Nutzern die Rolle
Admin
zuweisen
Nutzer vorregistrieren
Nutzer werden automatisch bei registriert. numerische IDs von Google-Nutzerkonten (nicht E-Mail-Adressen) als Nutzernamen. 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
: E-Mail-Adresse des NutzersFIRST_NAME
undLAST_NAME
: Vorname 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 ihm nicht der Zugriff entzogen, da er
werden beim nächsten Zugriff auf die Airflow-UI automatisch wieder registriert. 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 in „Öffentlich“ ändern. Registrierung des Nutzers, entfernt aber alle Berechtigungen für die Airflow-UI.
Berechtigungen auf DAG-Ebene automatisch konfigurieren
Mit der Funktion für die Registrierung von Rollen pro Ordner wird automatisch ein
benutzerdefinierte Airflow-Rolle für jeden Unterordner
direkt im Ordner /dags
und gewährt mit dieser Rolle DAG-Zugriff auf alle
DAGs, deren Quelldatei in diesem 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 automatische Möglichkeit, und ihre Berechtigungen auf DAG-Ebene. Daher können Konflikte mit weitere Airflow-Mechanismen, die Berechtigungen auf DAG-Ebene gewähren:
- DAG-Berechtigungen manuell zuweisen
- DAGs über das Attribut
access_control
in einem DAG Rollen 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 1 ist die Verwendung dieser Mechanismen deaktiviert, wenn Die Registrierung von Rollen pro Ordner ist aktiviert. Alle Berechtigungen auf DAG-Ebene Die Verwaltung erfolgt nur über die Registrierung von Rollen pro Ordner.
In Airflow 2:
- Über das Attribut
access_control
können Sie DAG-Zugriff auf Rollen gewähren im DAG-Quellcode definiert. - DAG-Berechtigungen manuell gewähren (über die Airflow-UI oder gcloud CLI) können zu Konflikten führen. Wenn Sie beispielsweise einer Rolle auf DAG-Ebene manuell zu gewähren, Berechtigungen können entfernt oder überschrieben werden, wenn der DAG-Prozessor synchronisiert einen DAG. 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 übergeordneten Ordner /dags
befinden, werden nicht automatisch zugewiesen:
jede Rolle pro Ordner. Auf sie kann mit keiner 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 hochladen, deren Namen den integrierten Airflow-Rollen entsprechen
und von Cloud Composer erstellten Rollen, dann Berechtigungen für DAGs in
sind diese Unterordner weiterhin diesen Rollen zugewiesen. Wenn Sie zum Beispiel
Der DAG für den Ordner /dags/Admin
gewährt dem Administrator Berechtigungen für diesen DAG
Rolle. Zu den integrierten Airflow-Rollen gehören Admin, Op, User, Viewer und Public.
Cloud Composer erstellt NoDags und UserNoDags nach dem Ordnertyp
Die Funktion zur Rollenregistrierung ist aktiviert.
Airflow registriert Rollen pro Ordner bei der Verarbeitung von DAGs
im Airflow-Planer. Wenn es mehr als 100 DAGs in Ihrem
sehen Sie möglicherweise eine
längere DAG-Parsing-Zeit.
In diesem Fall empfehlen wir, den Wert für [scheduler]max_threads
zu erhöhen.
Parameter für eine Airflow 1-Umgebung oder [scheduler]parsing_processes
für
Airflow 2.
DAGs automatisch Rollen pro Ordner zuweisen
So weisen Sie DAGs pro Ordner automatisch 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 weist ihren Konten eine Rolle zu, die Berechtigungen für bestimmte DAGs hat.
UserNoDags und NoDags sind nur von Cloud Composer erstellte Rollen wenn die Funktion zur Rollenregistrierung pro Ordner aktiviert ist. Sie sind ein mit der Nutzerrolle gleich, aber ohne Zugriff auf DAGs. UserNoDags Rolle wird in Airflow 2 erstellt und NoDags-Rolle wird in Airflow 1 erstellt.
In Airflow 2 die folgende Airflow-Konfiguration überschreiben Option:
Bereich Schlüssel Wert webserver
rbac_user_registration_role
UserNoDags
In Airflow 1 die folgende Airflow-Konfiguration überschreiben Option:
Bereich Schlüssel Wert webserver
rbac_user_registration_role
NoDags
Die Nutzer müssen in Airflow registriert sein.
Weisen Sie Nutzern Rollen auf eine der folgenden Arten zu:
- Lassen Sie Airflow automatisch Rollen basierend auf den DAGs-Unterordnern erstellen, und weise Nutzer diesen Rollen zu.
- Leere Rollen für die DAGs-Unterordner vorab erstellen, wobei die Rollennamen übereinstimmen
den Namen eines Unterordners ein und weisen Sie Nutzern diese Rollen zu. Beispiel:
Erstellen Sie für den Ordner
/dags/CustomFolder
eine Rolle mit dem NamenCustomFolder
.
Laden Sie DAGs in Unterordner, deren Namen den Nutzern entsprechen. Diese Unterordner müssen sich im Ordner
/dags
im im Bucket der Umgebung. Airflow fügt Berechtigungen zu DAGs in einer solchen Unterordner, sodass nur Nutzer mit der entsprechenden Rolle darauf zugreifen können über die Airflow-UI und die DAG-UI.
Berechtigungen auf DAG-Ebene manuell konfigurieren
Sie können Berechtigungen auf DAG-Ebene für benutzerdefinierte Rollen für Angeben, 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 DAGs den Rollen 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-UI
DAGs Rollen in der Airflow-UI zuweisen
Ein Administrator kann die erforderlichen Berechtigungen auf DAG-Ebene Rolle(n) in der Airflow-UI.
Dieser Vorgang wird in der DAG-UI nicht unterstützt.
DAGs Rollen in DAG-Attributen zuweisen
Sie können die
access_control
-DAG-Parameter für einen DAG, der Folgendes angibt:
Die Rollen für die DAG-Gruppierung, denen der DAG zugewiesen ist.
Airflow 2
dag = DAG(
access_control={
'DagGroup': {'can_edit', 'can_read'},
},
...
)
Airflow 1
dag = DAG(
access_control={
'DagGroup': {'can_dag_edit', 'can_dag_read'},
},
...
)
Audit-Logs in der Airflow-UI Nutzern zuordnen
Audit-Logs in der Airflow-UI sind numerische IDs von Google-Nutzerkonten Für Wenn ein Nutzer beispielsweise einen DAG pausiert, wird den Logs ein Eintrag hinzugefügt.
Airflow 2
In Airflow 2 können Sie Audit-Logs über die Schaltfläche Durchsuchen > ansehen. Seite Audit-Logs in der Airflow-UI
Airflow 1
In Airflow 1 können Sie Audit-Logs über die Schaltfläche Durchsuchen > ansehen. Logs.
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
Beachten Sie, dass die Beziehung zwischen Google-Identitäten (E-Mail-Adressen) und Nutzerkonten (Nutzer-IDs) ist nicht behoben.