Gestire identità, autorizzazioni e privilegi per i processi di Databricks

Questo articolo contiene consigli e istruzioni per la gestione di identità, autorizzazioni e privilegi per i processi di Databricks.

Nota

I segreti non vengono elaborati dal log stdout e stderr dai flussi del driver Spark di un cluster. Per proteggere i dati sensibili, per impostazione predefinita, i log dei driver Spark sono visualizzabili solo dagli utenti con l'autorizzazione CAN MANAGE per il processo, la modalità di accesso utente singolo e i cluster in modalità di accesso condiviso. Per consentire agli utenti con l'autorizzazione CAN ATTACH TO o CAN RESTART per visualizzare i log in questi cluster, impostare la proprietà di configurazione Spark seguente nella configurazione del cluster: spark.databricks.acl.needAdminPermissionToViewLogs false.

Nei cluster in modalità di accesso condiviso senza isolamento i log del driver Spark possono essere visualizzati dagli utenti con l'autorizzazione CAN ATTACH TO o CAN MANAGE. Per limitare la lettura dei log ai soli utenti con l'autorizzazione CAN MANAGE, impostare spark.databricks.acl.needAdminPermissionToViewLogs su true.

Vedere Configurazione Spark per avere informazioni su come aggiungere proprietà Spark a una configurazione del cluster.

Privilegi predefiniti per i processi

Per impostazione predefinita, i processi hanno i privilegi seguenti:

  • All'autore del processo viene concessa l'autorizzazione IS OWNER.
  • Agli amministratori dell'area di lavoro viene concessa l'autorizzazione CAN MANAGE.
  • L'autore del processo è impostato per Esegui come.

Autorizzazioni di amministratore per i processi

Per impostazione predefinita, gli amministratori dell'area di lavoro possono modificare il proprietario del processo o la configurazione Esegui come in qualsiasi utente o entità servizio dell'area di lavoro. Gli amministratori dell'account possono configurare l'impostazione RestrictWorkspaceAdmins per modificare questo comportamento. Vedere Limitare gli amministratori dell'area di lavoro.

In che modo i processi interagiscono con le autorizzazioni di Unity Catalog?

I processi vengono eseguiti come identità dell'utente nell'impostazione Esegui come. Questa identità viene valutata in base alle concessioni di autorizzazione per quanto segue:

  • Asset gestiti da Unity Catalog, tra cui tabelle, volumi, modelli e visualizzazioni.
  • Elenchi di controllo di accesso alle tabelle legacy (ACL) per le risorse registrate nel metastore Hive legacy.
  • ACL per ambiente di calcolo, notebook, query e altre risorse dell'area di lavoro.
  • Segreti di Databricks. Vedere Gestione dei segreti.

Nota

Le concessioni di Unity Catalog e le ACL di tabelle legacy richiedono modalità di accesso al calcolo compatibili. Vedere Configurare il calcolo per i processi.

Task e autorizzazioni SQL

Il task file è l'unico tipo di task SQL che rispetta pienamente l'identità di esegui come.

Le query SQL, gli avvisi e i task legacy del dashboard rispettano le impostazioni di condivisione configurate.

  • Esegui come proprietario: le esecuzioni dei task SQL pianificati usano sempre l'identità del proprietario della risorsa SQL configurata.
  • Esegui come visualizzatore: le esecuzioni del task SQL pianificato usano sempre l'identità impostata nel campo Esegui come del processo.

Per altre informazioni sulle impostazioni di condivisione delle query, vedere Configurare le autorizzazioni per le query.

Esempio

Lo scenario seguente illustra l'interazione delle impostazioni di condivisione SQL e l'impostazione Esegui come del processo:

  • L'utente A è il proprietario della query SQL denominata my_query.
  • L'utente A configura my_query con l'impostazione di condivisione Esegui come proprietario.
  • L'utente B pianifica my_query come task in un processo denominato my_job.
  • L'utente B configura my_job per l'esecuzione con un'entità servizio denominata prod_sp.
  • Quando my_job viene eseguito, usa l'identità per l'utente A per eseguire my_query.

Si supponga ora che l'utente B non desideri questo comportamento. A partire dalla configurazione esistente, si verifica quanto segue:

  • L'utente A modifica l'impostazione di condivisione di my_queryin Esegui come visualizzatore.
  • Durante l'esecuzione di my_job, usa l'identità prod_sp.

Configurare l'identità per le esecuzioni del processo

Per modificare l'impostazione Esegui come, è necessario disporre dell'autorizzazione PUÒ GESTIRE o È PROPRIETARIO per il processo.

È possibile impostare l'impostazione Esegui come su se stessi o su qualsiasi entità servizio nell'area di lavoro in cui si dispone dell'entitlement Utente dell'entità servizio.

Per configurare l'impostazione Esegui come per un processo nell'interfaccia utente dell'area di lavoro, selezionare un processo esistente seguendo questa procedura:

  1. Cliccare Icona Flussi di lavoro Flussi di lavoro nella barra laterale.
  2. Nella colonna Nome, cliccare il nome di un processo.
  3. Nel pannello laterale Dettagli processo cliccare l'icona a forma di matita accanto al campo Esegui come.
  4. Cercare e selezionare un utente o un'entità servizio.
  5. Cliccare Salva.

Per ulteriori informazioni sull'uso delle entità servizio, vedere i documenti seguenti:

Procedure consigliate per la governance dei processi

Databricks consiglia quanto segue per tutti i processi di produzione:

  • Assegnare la proprietà del processo a un'entità servizio

    Se l'utente proprietario di un processo lascia l'organizzazione, il processo potrebbe non riuscire. Usare le entità servizio per rendere i processi affidabili per l'eventualità di avvicendamento dei dipendenti.

    Per impostazione predefinita, gli amministratori dell'area di lavoro possono gestire le autorizzazioni dei processi e riassegnare la titolarità, se necessario.

  • Eseguire processi di produzione con un'entità servizio

    Per impostazione predefinita, i processi vengono eseguiti usando i privilegi del proprietario del processo. Se si assegna la proprietà a un'entità servizio, le esecuzioni del processo usano le autorizzazioni dell'entità servizio.

    L'uso delle entità servizio per i processi di produzione consente di limitare le autorizzazioni di scrittura per i dati di produzione. Se si eseguono processi usando le autorizzazioni di un utente, tale utente deve disporre delle stesse autorizzazioni per modificare i dati di produzione richiesti dal processo.

  • Usare sempre configurazioni di calcolo compatibili con Unity Catalog

    La governance dei dati di Unity Catalog richiede l'uso di una configurazione di calcolo supportata.

    Le risorse di elaborazione serverless per i processi e i warehouse SQL usano sempre il catalogo Unity.

    Per i processi con calcolo classico, Databricks consiglia la modalità di accesso condiviso per i carichi di lavoro supportati. Usare la modalità di accesso utente singolo quando necessario.

    Le pipeline di Delta Live Tables configurate con Unity Catalog presentano alcune limitazioni. Vedere Limitazioni.

  • Limitare le autorizzazioni per i processi di produzione

    Gli utenti che attivano, arrestano o riavviano le esecuzioni del processo necessitano dell'autorizzazione Può gestire l'esecuzione.

    Gli utenti che visualizzano la configurazione del processo o monitorano le esecuzioni necessitano dell'autorizzazione Può visualizzare.

    Concedete i privilegi Può gestire o È proprietario solo agli utenti che a cui è affidata la modifica del codice di produzione.

Controllare l'accesso a un processo

Il controllo di accesso ai processi consente ai proprietari e agli amministratori dei processi di concedere autorizzazioni specifiche per i processi. Sono disponibili i seguenti livelli di autorizzazione:

Nota

Ogni autorizzazione include le concessioni di autorizzazioni sottostanti della tabella seguente.

Autorizzazione Concessione
È proprietario Identità usata per Esegui come per impostazione predefinita.
Può gestire Gli utenti possono modificare la definizione del processo, incluse le autorizzazioni. Gli utenti possono sospendere e riprendere una pianificazione.
Può gestire l'esecuzione Gli utenti possono attivare e annullare le esecuzioni del processo.
Può visualizzare Gli utenti possono visualizzare i risultati dell'esecuzione del processo.

Per informazioni sui livelli di autorizzazione dei processi, vedere ACL dei processi.

Configurare le autorizzazioni dei processi

Per configurare le autorizzazioni per un processo nell'interfaccia utente dell'area di lavoro, selezionare un processo esistente seguendo questa procedura:

  1. Cliccare Icona Flussi di lavoro Flussi di lavoro nella barra laterale.
  2. Nella colonna Nome, cliccare il nome di un processo.
  3. Nel pannello Dettagli processo cliccare Modifica autorizzazioni. Sui aprirà la finestra di dialogo Impostazioni autorizzazioni.
  4. Cliccare il campo Seleziona utente, gruppo o entità servizio e iniziare a digitare un utente, un gruppo o un'entità servizio. Il campo cerca tutte le identità disponibili nell'area di lavoro.
  5. Cliccare Aggiungi.
  6. Cliccare Salva.

Gestire il proprietario del processo

Solo gli amministratori dell'area di lavoro possono modificare il proprietario del processo. È necessario assegnare esattamente un solo proprietario del processo. I proprietari di processi possono essere utenti o entità servizio.