Identiteiten, machtigingen en bevoegdheden voor Databricks-taken beheren
Dit artikel bevat aanbevelingen en instructies voor het beheren van identiteiten, machtigingen en bevoegdheden voor Databricks-taken.
Notitie
Geheimen worden niet bewerkt vanuit het Spark-stuurprogrammalogboek stdout
en stderr
de streams van een cluster. Als u gevoelige gegevens wilt beveiligen, kunnen spark-stuurprogrammalogboeken standaard alleen worden weergegeven door gebruikers met de machtiging CAN MANAGE voor de taak, de modus voor toegang van één gebruiker en clusters in de modus voor gedeelde toegang. Als u wilt dat gebruikers met de machtiging CAN ATTACH TO of CAN RESTART hebben om de logboeken op deze clusters weer te geven, stelt u de volgende Spark-configuratie-eigenschap in de clusterconfiguratie in: spark.databricks.acl.needAdminPermissionToViewLogs false
In clusters in de modus Geen isolatie voor gedeelde toegang kunnen de Spark-stuurprogrammalogboeken worden bekeken door gebruikers met de machtiging CAN ATTACH TO of CAN MANAGE. Als u wilt beperken wie de logboeken kan lezen voor alleen gebruikers met de machtiging CAN MANAGE, stelt u in spark.databricks.acl.needAdminPermissionToViewLogs
op true
.
Bekijk Spark-configuratie voor meer informatie over het toevoegen van Spark-eigenschappen aan een clusterconfiguratie.
Standaardbevoegdheden voor taken
Taken hebben standaard de volgende bevoegdheden ingesteld:
- De maker van de taak krijgt de machtiging IS OWNER.
- Aan werkruimtebeheerders wordt de machtiging CAN MANAGE verleend.
- De maker van de taak is ingesteld voor Uitvoeren als.
Beheerdersmachtigingen voor taken
Werkruimtebeheerders kunnen standaard de eigenaar van de taak of Uitvoeren als-configuratie wijzigen in elke gebruiker of service-principal in de werkruimte. Accountbeheerders kunnen de RestrictWorkspaceAdmins
instelling configureren om dit gedrag te wijzigen. Zie Werkruimtebeheerders beperken.
Hoe werken taken met Unity Catalog-machtigingen?
Taken worden uitgevoerd als de identiteit van de gebruiker in de instelling Uitvoeren als . Deze identiteit wordt geëvalueerd op basis van machtigingstoekenningen voor het volgende:
- Door Unity Catalog beheerde assets, waaronder tabellen, volumes, modellen en weergaven.
- Verouderde toegangsbeheerlijsten voor tabellen (ACL's) voor assets die zijn geregistreerd in de verouderde Hive-metastore.
- ACL's voor rekenkracht, notebooks, query's en andere werkruimteassets.
- Databricks-geheimen. Zie Geheimbeheer.
Notitie
Unity Catalog verleent en verouderde tabel-ACL's vereisen compatibele rekentoegangsmodi. Zie Rekenproces configureren voor taken.
SQL-taken en -machtigingen
De bestandstaak is het enige SQL-taaktype om de Run as-identiteit volledig te respecteren.
SQL-query's, waarschuwingen en verouderde dashboardtaken respecteren geconfigureerde instellingen voor delen.
- Als eigenaar uitvoeren: uitvoeringen van de geplande SQL-taak gebruiken altijd de identiteit van de eigenaar van de geconfigureerde SQL-asset.
- Uitvoeren als viewer: Uitvoeringen van de geplande SQL-taak gebruiken altijd de identiteit die is ingesteld in het veld Uitvoeren als taak.
Zie Querymachtigingen configureren voor meer informatie over instellingen voor het delen van query's.
Opmerking
In het volgende scenario ziet u de interactie van instellingen voor het delen van SQL en de taak Uitvoeren als :
- Gebruiker A is de eigenaar van de SQL-query met de naam
my_query
. - Gebruiker A configureert
my_query
met de instelling Voor delen uitvoeren als eigenaar. - Gebruiker B plant
my_query
als een taak in een taak met de naammy_job
. - Gebruiker B configureert
my_job
om te worden uitgevoerd met een service-principal met de naamprod_sp
. - Wanneer
my_job
deze wordt uitgevoerd, wordt de identiteit voor Gebruiker A gebruikt om uit te voerenmy_query
.
Stel nu dat gebruiker B dit gedrag niet wil. Vanaf de bestaande configuratie vindt het volgende plaats:
- Gebruiker A wijzigt de instelling voor delen voor
my_query
Uitvoeren als viewer. - Wanneer
my_job
deze wordt uitgevoerd, wordt de identificatieprod_sp
gebruikt.
Identiteit configureren voor taakuitvoeringen
Als u de instelling Uitvoeren als wilt wijzigen, moet u de machtiging CAN MANAGE of IS OWNER hebben voor de taak.
U kunt de instelling Uitvoeren als instellen op uzelf of op een service-principal in de werkruimte waarvoor u het gebruikersrecht van de service-principal hebt.
Als u de instelling Uitvoeren als wilt configureren voor een taak in de gebruikersinterface van de werkruimte, selecteert u een bestaande taak met behulp van de volgende stappen:
- Klik op Werkstromen in de zijbalk.
- Klik in de kolom Naam op de taaknaam.
- Klik in het zijpaneel Taakdetails op het potloodpictogram naast het veld Uitvoeren als .
- Zoek en selecteer een gebruiker of service-principal.
- Klik op Opslaan.
Zie het volgende voor meer informatie over het werken met service-principals:
- Service-principals beheren
- Rollen voor het beheren van service-principals
- Vermeld de service-principals die u kunt gebruiken.
Best practices voor takenbeheer
Databricks raadt het volgende aan voor alle productietaken:
Taakeigendom toewijzen aan een service-principal
Als de gebruiker die eigenaar is van een taak uw organisatie verlaat, kan de taak mislukken. Gebruik service-principals om taken robuust te maken voor het verloop van werknemers.
Werkruimtebeheerders kunnen standaard taakmachtigingen beheren en zo nodig het eigendom opnieuw toewijzen.
Productietaken uitvoeren met behulp van een service-principal
Taken worden standaard uitgevoerd met de bevoegdheden van de eigenaar van de taak. Als u eigendom toewijst aan een service-principal, worden de machtigingen van de service-principal gebruikt.
Met behulp van service-principals voor productietaken kunt u schrijfmachtigingen voor productiegegevens beperken. Als u taken uitvoert met behulp van de machtigingen van een gebruiker, heeft die gebruiker dezelfde machtigingen nodig om de productiegegevens te bewerken die nodig zijn voor de taak.
Altijd compute-configuraties gebruiken die compatibel zijn met Unity Catalog
Unity Catalog-gegevensbeheer vereist dat u een ondersteunde rekenconfiguratie gebruikt.
Serverloze rekenkracht voor taken en SQL-warehouses maken altijd gebruik van Unity Catalog.
Voor taken met klassieke berekeningen raadt Databricks de modus voor gedeelde toegang aan voor ondersteunde workloads. Gebruik de toegangsmodus voor één gebruiker wanneer dat nodig is.
Delta Live Tables-pijplijnen die zijn geconfigureerd met Unity Catalog hebben enkele beperkingen. Zie beperkingen.
Machtigingen voor productietaken beperken
Gebruikers die taakuitvoeringen activeren, stoppen of opnieuw starten, hebben de machtiging Uitvoeren beheren nodig.
Gebruikers die de taakconfiguratie of monitoruitvoeringen bekijken, hebben de machtiging Can View nodig.
Alleen machtigingen van Can Manage of Is Owner verlenen aan gebruikers die vertrouwd zijn om productiecode te wijzigen.
Toegang tot een taak beheren
Met taaktoegangsbeheer kunnen jobeigenaren en beheerders nauwkeurige machtigingen verlenen voor taken. De volgende machtigingen zijn beschikbaar:
Notitie
Elke machtiging bevat de toekenning van machtigingen eronder in de volgende tabel.
Machtiging | Toekennen |
---|---|
Is eigenaar | De identiteit die standaard wordt gebruikt voor Uitvoeren als . |
Kan beheren | Gebruikers kunnen de taakdefinitie bewerken, inclusief machtigingen. Gebruikers kunnen een planning onderbreken en hervatten. |
Kan uitvoering beheren | Gebruikers kunnen taakuitvoeringen activeren en annuleren. |
Kan weergeven | Gebruikers kunnen resultaten van de taakuitvoering bekijken. |
Zie Taak-ACL's voor informatie over taakmachtigingsniveaus.
Taakmachtigingen configureren
Als u machtigingen wilt configureren voor een taak in de gebruikersinterface van de werkruimte, selecteert u een bestaande taak met behulp van de volgende stappen:
- Klik op Werkstromen in de zijbalk.
- Klik in de kolom Naam op de taaknaam.
- Klik in het deelvenster Taakdetails op Machtigingen bewerken. Het dialoogvenster Machtigingsinstellingen wordt weergegeven.
- Klik op het veld Gebruiker, Groep of Service-principal selecteren... en begin een gebruiker, groep of service-principal te typen. In het veld worden alle beschikbare identiteiten in de werkruimte doorzocht.
- Klik op Toevoegen.
- Klik op Opslaan.
De eigenaar van de taak beheren
Alleen werkruimtebeheerders kunnen de eigenaar van de taak bewerken. Precies één jobeigenaar moet worden toegewezen. Jobeigenaren kunnen gebruikers of service-principals zijn.