Rollenbasierte Zugriffssteuerung in der Weboberfläche von Airflow 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 über die erforderlichen IAM-Berechtigungen verfügen, um auf die Web-UI zugreifen zu können.

Wenn Nutzer jedoch auf die Airflow-Web-UI zugreifen, bietet IAM keine weitere detaillierte Berechtigungssteuerung in der Airflow-UI. Mit diesem Feature können Sie in der Airflow-Web-UI eine detaillierte Airflow-native rollenbasierte Zugriffssteuerung (RBAC) aktivieren.

Die RBAC-UI ist ein Feature von Airflow mit einem eigenen Modell für Nutzer, Rollen und Berechtigungen.

RBAC-UI aktivieren

In Cloud Composer 2 ist die Airflow-RBAC-UI 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 den Standardrollen finden Sie in der Dokumentation zum RBAC-UI-Fluss.

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

Der Airflow-RBAC enthält eine eigene Liste von Nutzern. Dies bedeutet, dass Nutzer mit der Administratorrolle (oder einer entsprechenden Rolle) die Liste der Nutzer sehen können, die diese Instanz der Airflow-UI geöffnet und für Airflow-RBAC registriert haben.

Nutzer in der RBAC-Benutzeroberfläche registrieren

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

Nutzer erhalten bei der Registrierung die in der Airflow-Konfigurationsoption [webserver]rbac_user_registration_role angegebene Rolle. 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.

Die folgenden Schritte werden empfohlen, um eine einfache Rollenkonfiguration für die Airflow-RBAC-UI zu erstellen:

Luftstrom 2

  1. Umgebungsadministratoren rufen die Airflow-RBAC-UI für die neu erstellte Umgebung auf.

  2. Weisen Sie den Administratorkonten die Rolle Admin zu. Die Standardrolle für neue Konten in Umgebungen mit Airflow 2 ist Op. Führen Sie den folgenden Airflow-Befehlszeilenbefehl mit gcloud aus, um die Rolle Admin zuzuweisen:

      gcloud beta 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 Compute Engine-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 z. B. die Rolle Admin anderen Nutzern zuweisen.

Luftstrom 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 aufgehoben, da er beim nächsten Aufruf 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 Zugriffsrichtlinie in IAM für Ihr Projekt. Sie können die Rolle des Nutzers in der RBAC-UI auch in "Öffentlich" ändern. Dadurch wird die Registrierung des Nutzers beibehalten, aber alle Berechtigungen für die Airflow-UI entfernt.

Berechtigungen auf DAG-Ebene konfigurieren

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

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

  1. Der Administrator erstellt leere Rollen zum Gruppieren von DAGs
  2. Der Administrator weist Nutzern geeignete Rollen zu.
  3. Der Administrator oder Nutzer weisen DAGs zu Rollen zu
  4. Nutzer können DAGs nur in der UI 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-UI zugewiesen werden.

DAGs zu Rollen in DAG-Attributen zuweisen

Der DAG-Entwickler kann den DAG-Parameter access_control auf den DAGs festlegen, die er hochladen, und gibt die DAG-Gruppierungsrollen an, denen der DAG zugewiesen wird:

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

Dann 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 zu Rollen in der RBAC-UI zuweisen

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

Nächste Schritte