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 Namenmy_job
. - Benutzer B konfiguriert
my_job
, um die Ausführung mit einem Dienstprinzip namensprod_sp
auszuführen. - Wenn
my_job
ausgeführt wird, wird die Identität für Benutzer A zum Ausführen vonmy_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 Identifizierungprod_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:
- Klicken Sie in der Randleiste auf Workflows.
- Klicken Sie in der Spalte Name auf den Auftragsnamen.
- Klicken Sie im Seitenbereich Auftragsdetails auf das Stiftsymbol neben dem Feld Ausführen als.
- Suchen und auswählen eines Benutzers oder eines Dienstprinzipals.
- Klicken Sie auf Speichern.
Weitere Informationen über Arbeiten mit Dienstprinzipale finden Sie unter Folgendem:
- Verwalten von Dienstprinzipalen
- Rollen für die Verwaltung von Dienstprinzipalen
- Auflisten der Dienstprinzipale, die Sie verwenden können.
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:
- Klicken Sie in der Randleiste auf Workflows.
- Klicken Sie in der Spalte Name auf den Auftragsnamen.
- Wählen Sie im Bereich Auftragsdetails die Option Berechtigungen bearbeiten aus. Das Dialogfeld „Berechtigungseinstellungen“ wird angezeigt.
- 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.
- Klicken Sie auf Hinzufügen.
- 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.