Rollenbasierte Zugriffssteuerung in der Web-UI verwenden

Cloud Composer 1 Cloud Composer 2

Der Zugriff auf die Airflow-UI in Cloud Composer wird durch die Identitäts- und Zugriffsverwaltung gesteuert. Nutzer müssen sich zuerst beim Identity-Aware Proxy (IAP) authentifizieren und die entsprechenden IAM-Berechtigungen haben, bevor sie auf die Web-UI zugreifen können.

Sobald Nutzer jedoch auf die Airflow-UI zugreifen, bietet IAM keine zusätzliche detaillierte Berechtigungssteuerung in der Airflow-UI. Mit diesem Feature können Sie in der Airflow-UI die detaillierte rollenbasierte Zugriffssteuerung (Role-based Access Control, RBAC) aktivieren.

Beachten Sie, dass die RBAC-UI ein Feature von Airflow mit einem eigenen Modell von Nutzern, Rollen und Berechtigungen ist, das sich von IAM unterscheidet.

RBAC-UI aktivieren

In Cloud Composer 2 ist die Airflow RBAC-Benutzeroberfläche immer aktiviert.

RBAC-UI verwenden

In der RBAC-Benutzeroberfläche können die Einstellungen für die Zugriffssteuerung über die Links im Menü "Sicherheit" konfiguriert werden. Weitere Informationen zum RBAC-Modell, den verfügbaren Berechtigungen und zu den Standardrollen finden Sie in der Dokumentation zur Airflow-RBAC-UI.

Airflow behandelt die Nutzerrolle als Vorlage für alle benutzerdefinierten Rollen. Dies bedeutet, dass Airflow Berechtigungen aus der Nutzerrolle kontinuierlich in alle benutzerdefinierten Rollen kopiert, mit Ausnahme der Berechtigungen für all_dags.

Airflow RBAC verwaltet eine eigene Liste von Nutzern. Das bedeutet, dass Nutzer mit der Rolle "Administrator" (oder gleichwertig) die Liste der Nutzer aufrufen können, die diese Instanz der Airflow-Benutzeroberfläche geöffnet haben und für Airflow RBAC registriert sind.

Nutzer in der RBAC-Benutzeroberfläche registrieren

Neue Nutzer werden automatisch registriert, wenn sie die mit einer bestimmten Cloud Composer-Umgebung verbundene Airflow RBAC-UI zum ersten Mal öffnen.

Bei der Registrierung erhalten Nutzer die Rolle, die in der Airflow-Konfigurationsoption [webserver]rbac_user_registration_role angegeben ist. Sie können die Rolle neu registrierter Nutzer steuern, indem Sie diese Konfigurationsoption mit einem anderen Wert überschreiben.

Wenn keine Angabe erfolgt, wird in Umgebungen mit Airflow 2 die Standardregistrierungsrolle Op verwendet.

Zum Erstellen einer einfachen Rollenkonfiguration für die Airflow-RBAC-UI werden folgende Schritte empfohlen:

Airflow 2

  1. Umgebungsadministratoren rufen die Airflow RBAC-Benutzeroberfläche für die neu erstellte Umgebung auf.

  2. Gewähren Sie den Administratorkonten die Rolle Admin. Die Standardrolle für neue Konten in Umgebungen mit Airflow 2 ist Op. Führen Sie zum Zuweisen der Rolle Admin den folgenden Airflow-Befehlszeilenbefehl mit gcloud 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.
  3. Administratoren können jetzt die Zugriffssteuerung für neue Nutzer konfigurieren und beispielsweise die Rolle Admin anderen Nutzern zuweisen.

Airflow 1

Airflow 1 ist in Cloud Composer 2 nicht verfügbar.

Nutzer entfernen

Wenn Sie einen Nutzer aus RBAC löschen, wird der Zugriff für diesen Nutzer nicht widerrufen, da er beim nächsten Besuch der Airflow-UI automatisch wieder registriert wird. Wenn Sie den Zugriff auf die gesamte Airflow-UI widerrufen möchten, entfernen Sie die Berechtigung composer.environments.get aus der Richtlinie „Allow“ für Ihr Projekt. Sie können die Rolle des Nutzers in der RBAC-Benutzeroberfläche auch auf "Öffentlich" ändern, wodurch die Registrierung des Nutzers beibehalten wird, aber alle Berechtigungen für die Airflow-UI entfernt werden.

Berechtigungen auf DAG-Ebene konfigurieren

Sie können Berechtigungen auf DAG-Ebene für benutzerdefinierte Rollen konfigurieren, um anzugeben, welche DAGs von welchen Nutzergruppen sichtbar sind.

So konfigurieren Sie die DAG-Trennung in der Airflow-RBAC-UI:

  1. Der Administrator erstellt leere Rollen für die Gruppierung von DAGs
  2. Der Administrator weist Nutzern die entsprechenden Rollen zu
  3. Der Administrator oder die Nutzer weisen Rollen DAGs zu
  4. Nutzer können nur DAGs in der Benutzeroberfläche sehen, deren Berechtigungen einer Gruppe zugewiesen wurden, zu der dieser Nutzer gehört

DAGs können Rollen entweder über DAG-Attribute oder über die RBAC-Benutzeroberfläche zugewiesen werden.

DAGs Rollen in DAG-Attributen zuweisen

Der DAG-Entwickler kann den DAG-Parameter access_control auf den hochgeladenen DAGs festlegen und die DAG-Gruppierungsrollen angeben, denen der DAG zugewiesen wird:

dag = DAG(
  access_control={
    'DagGroup': {'can_dag_edit', 'can_dag_read'},
  },
  ...
  )

Anschließend müssen der Administrator, der DAG-Entwickler oder ein automatisierter Prozess den Airflow-Befehl sync_perm ausführen, um die neuen Einstellungen für die Zugriffssteuerung anzuwenden.

DAGs Rollen in der RBAC-UI zuweisen

Ein Administrator kann den entsprechenden Rollen auch die gewünschten Berechtigungen auf DAG-Ebene in der Airflow-UI zuweisen.

Audit-Logs in der Airflow-UI den Nutzern zuordnen

Audit-Logs in der Airflow-UI werden numerischen IDs der Google-Nutzerkonten zugeordnet. Wenn ein Nutzer beispielsweise einen DAG pausiert, wird den Logs ein Eintrag hinzugefügt.

Sie können Audit-Logs auf der Seite Audit-Logs in der Airflow-UI auf der Seite Suchen aufrufen.

Ein Eintrag auf der Seite „Audit-Logs“ in Airflow 2
Abbildung 1. Ein Eintrag auf der Seite „Audit-Logs“ in Airflow 2

Für einen typischen Eintrag wird im Feld Inhaber eine numerische ID angegeben: accounts.google.com:NUMERIC_ID. Sie können numerische IDs den E-Mail-Adressen der Nutzer auf der Seite Sicherheit > Nutzer hinzufügen zuordnen. Diese Seite ist für Nutzer mit der Rolle Admin verfügbar.

Die Beziehung zwischen Google-Identitäten (E-Mail-Adressen) und Nutzerkonten (User-IDs) wird nicht festgelegt.

Weitere Informationen