Freigeben über


Verwalten von Identitäten, Berechtigungen und Berechtigungen für Databricks-Jobs

Dieser Artikel enthält Empfehlungen und Anweisungen zum Verwalten von Identitäten, Berechtigungen und Berechtigungen für Databricks-Jobs.

Hinweis

Geheimnisse werden nicht aus den Spark-Treiberprotokollstreams stdout und stderr eines Clusters entfernt. Um vertrauliche Daten zu schützen, können Spark-Treiberprotokolle standardmäßig nur von Benutzern mit Berechtigung KANN VERWALTEN für Auftrag, Einzelbenutzerzugriffsmodus und Cluster des freigegebenen Zugriffsmodus angezeigt werden. Um Benutzern mit Berechtigung KANN ANFÜGEN AN oder KANN NEU STARTEN das Anzeigen der Protokolle in diesen Clustern zu ermöglichen, legen Sie die folgende Spark-Konfigurationseigenschaft in der Clusterkonfiguration fest: spark.databricks.acl.needAdminPermissionToViewLogs false.

Auf Clustern des freigegebenen Isolationsmodus können die Spark-Treiberprotokolle von Benutzern mit den Berechtigungen KANN ANFÜGEN AN oder KANN VERWALTEN angezeigt werden. Um die Benutzer, welche die Protokolle lesen können, auf Benutzer mit der Berechtigung KANN VERWALTEN zu beschränken, setzen Sie spark.databricks.acl.needAdminPermissionToViewLogs auf true.

Informationen zum Hinzufügen von Spark-Eigenschaften zu einer Clusterkonfiguration finden Sie unter Spark-Konfiguration.

Standardberechtigungen für Jobs

Jobs verfügen standardmäßig über die folgenden Berechtigungen:

  • Der Ersteller des Jobss erhält die IST-BESITZER-Berechtigung.
  • Arbeitsbereich-Administratoren wird die Berechtigung KANN VERWALTEN zugewiesen.
  • Der Ersteller des Jobs wird für Ausführen als festgelegt.

Administratorberechtigungen für Jobs

Standardmäßig können Arbeitsbereichsadministratoren den Auftragsbesitzer oder die Ausführen als-Konfiguration in einen beliebigen Benutzer oder Dienstprinzipal im Arbeitsbereich ändern. Kontoadministratoren können die RestrictWorkspaceAdmins-Einstellung konfigurieren, um dieses Verhalten zu ändern. Siehe Restrict workspace admins (Einschränken von Arbeitsbereichsadministratoren).

Wie interagieren Aufträge mit Unity Catalog-Berechtigungen?

Jobs werden mit der Identität der Benutzer*innen in der Einstellung Ausführen als ausgeführt. Diese Identität wird anhand von Berechtigungserteilungen für Folgendes ausgewertet:

  • Verwaltete Ressourcen im Unity Catalog, einschließlich Tabellen, Volumes, Modelle und Ansichten.
  • Vorversion-Tabellen-Zugriffssteuerungslisten (Access Control Lists, ACLs) für Objekte, die im Vorversion-Hive-Metastore registriert sind.
  • ACLs für Compute, Notebook, Abfragen und andere Arbeitsbereichsressourcen.
  • Databricks-Geheimnisse. Siehe Verwaltung von Geheimnissen.

Hinweis

Unity Catalog-Zuweisungen und Legacy Table ACLs erfordern kompatible Compute-Zugriffsmodi. Weitere Informationen finden Sie unter Konfigurieren von Compute für Jobs.

SQL-Aufgaben und -Berechtigungen

Die Dateiaufgabe ist der einzige SQL-Vorgangsart, der die Ausführung als-Identität vollständig berücksichtigt.

SQL-Abfragen, Warnungen und Vorversion-Dashboardaufgaben respektieren konfigurierte Freigabeeinstellungen.

  • Als Besitzer ausführen: Die Ausführung der geplanten SQL-Aufgabe verwendet immer die Identität des Besitzers der konfigurierten SQL-Ressource.
  • Als Viewer ausführen: Die Ausführung der geplanten SQL-Aufgabe verwendet immer den Identitätssatz im Job Ausführen als-Feld.

Weitere Informationen zu Freigabeeinstellungen für Abfragen finden Sie unter Konfigurieren von Abfrageberechtigungen.

Beispiel

Das folgende Szenario veranschaulicht die Interaktion der SQL-Freigabeeinstellungen und des Jobs Ausführen als-Einstellung:

  • Benutzer A ist der Besitzer der SQL-Abfrage mit dem Namen my_query.
  • Benutzer A konfiguriert my_query mit der Freigabeeinstellung Als Besitzer ausführen.
  • Benutzer B plant my_query als Aufgabe in einem Job mit dem Namen my_job.
  • Benutzer B konfiguriert my_job, um die Ausführung mit einem Dienstprinzip namens prod_sp auszuführen.
  • Wenn my_job ausgeführt wird, wird die Identität für Benutzer A zum Ausführen von my_query verwendet.

Gehen Sie nun davon aus, dass Benutzer B dieses Verhalten nicht möchte. Ab der vorhandenen Konfiguration erfolgt Folgendes:

  • Benutzer A ändert die Freigabeeinstellung für my_query zu Als Zuschauer ausführen.
  • Wenn my_job ausgeführt wird, wird die Identifizierung prod_sp verwendet.

Konfigurieren der Identität für Job-Ausführungen

Um die Einstellung Ausführen als zu ändern, benötigen Sie für den Auftrag die Berechtigung KANN VERWALTEN oder IST BESITZER.

Sie können die Einstellung Ausführen als auf sich selbst oder einen beliebigen Dienstprinzipal im Arbeitsbereich festlegen, für den Sie über die Berechtigung Dienstprinzipalbenutzer verfügen.

Um die Einstellung Ausführen als für einen Job in der Benutzeroberfläche eines Arbeitsbereichs zu konfigurieren, wählen Sie einen vorhandenen Job aus, indem Sie die folgenden Schritte ausführen:

  1. Klicken Sie in der Randleiste auf Symbol für Workflows Workflows.
  2. Klicken Sie in der Spalte Name auf den Auftragsnamen.
  3. Klicken Sie im Seitenbereich Auftragsdetails auf das Stiftsymbol neben dem Feld Ausführen als.
  4. Suchen und auswählen eines Benutzers oder eines Dienstprinzipals.
  5. Klicken Sie auf Speichern.

Weitere Informationen über Arbeiten mit Dienstprinzipale finden Sie unter Folgendem:

Best Practices für die Jobs-Governance

Databricks empfiehlt folgendes für alle Produktionsjobs:

  • Zuweisen des Job-Besitzes zu einem Dienstprinzipal

    Wenn der Benutzer, der einen Job besitzt, Ihre Organisation verlässt, schlägt der Job möglicherweise fehl. Verwenden Sie Dienstprinzipale, um Jobs robust für die Abwanderung von Mitarbeitern zu machen.

    Standardmäßig können Arbeitsbereichsadministratoren die Job-Berechtigungen verwalten und das Eigentum bei Bedarf neu zuweisen.

  • Ausführen von Produktionsjobs mithilfe eines Dienstprinzipals

    Jobs werden standardmäßig mit den Berechtigungen des Job-Besitzers ausgeführt. Wenn Sie einem Dienstprinzipal Eigentum zuweisen, verwendet der Job die Berechtigungen des Dienstprinzipals.

    Wenn Sie Dienstprinzipale für Produktionsaufträge verwenden, können Sie Schreibberechtigungen für Produktionsdaten einschränken. Wenn Sie Jobs mit den Berechtigungen eines Benutzers ausführen, benötigt dieser Benutzer dieselben Berechtigungen, um die für den Job erforderlichen Produktionsdaten zu bearbeiten.

  • Immer mit Unity Catalog kompatible Compute-Konfigurationen verwenden

    Unity Catalog Data Governance erfordert, dass Sie eine unterstützte Compute-Konfiguration verwenden.

    Serverloses Computing für Jobs und SQL-Warehouses verwenden immer Unity Catalog.

    Für Jobs mit klassischem Compute empfiehlt Databricks den Modus für den gemeinsamen Zugriff für unterstützte Workloads. Verwenden Sie bei Bedarf den Einzelbenutzerzugriffsmodus.

    Delta Live Tables-Pipelines, die mit Unity Catalog konfiguriert sind, haben einige Beschränkungen. Informationen finden Sie unter Einschränkungen.

  • Einschränken von Berechtigungen für Produktionsaufträge

    Benutzer, die den Job auslösen, beenden oder neu starten, benötigen die Berechtigung Kann Ausführung verwalten.

    Benutzer, die die Job-Konfiguration anzeigen oder überwachen, benötigen die Berechtigung Kann anzeigen.

    Erteilen Sie nur Berechtigungen Kann verwalten oder Ist Besitzer für Benutzer, die vertrauenswürdig sind, um Produktionscode zu ändern.

Steuern des Zugriffs auf einen Auftrag

Mit der Zugriffssteuerung für Aufträge können Auftragsbesitzer und Administratoren differenzierte Berechtigungen für Jobs erteilen. Die folgenden Berechtigungen sind verfügbar:

Hinweis

Jede Berechtigung enthält die Zuweisungen darunter in der folgenden Tabelle.

Berechtigung Erteilen
Ist Besitzer Die identität, die standardmäßig für Ausführen als verwendet wird.
Kann verwalten Benutzer können die Auftragsdefinition bearbeiten, einschließlich Berechtigungen. Benutzer können einen Zeitplan anhalten und fortsetzen.
Kann Ausführung verwalten Benutzer können Job-Ausführungen auslösen und abbrechen.
Kann anzeigen Benutzer können die Ergebnisse der Job-Ausführung anzeigen.

Weitere Informationen zu den Berechtigungsstufen von Aufträgen finden Sie unter Zugriffssteuerungslisten für Aufträge.

Konfigurieren von Auftragsberechtigungen

Um Berechtigungen für einen Job in der Benutzeroberfläche eines Arbeitsbereichs zu konfigurieren, wählen Sie einen vorhandenen Job aus, indem Sie die folgenden Schritte ausführen:

  1. Klicken Sie in der Randleiste auf Symbol für Workflows Workflows.
  2. Klicken Sie in der Spalte Name auf den Auftragsnamen.
  3. Wählen Sie im Bereich Auftragsdetails die Option Berechtigungen bearbeiten aus. Das Dialogfeld „Berechtigungseinstellungen“ wird angezeigt.
  4. Klicken Sie auf das Feld Benutzer auswählen, Gruppe oder Dienstprinzipal auswählen und beginnen Sie mit der Eingabe eines Benutzers, einer Gruppe oder eines Dienstprinzipals. Das Feld durchsucht alle verfügbaren Identitäten im Arbeitsbereich.
  5. Klicken Sie auf Hinzufügen.
  6. Klicken Sie auf Speichern.

Verwalten des Auftragsbesitzes

Job-Besitzer*innen können nur von Arbeitsbereichsadministrator*innen bearbeitet werden. Genau ein Job-Besitzer muss zugewiesen werden. Job-Besitzer können Benutzer oder Dienstprinzipale sein.