Vai al contenuto principale

Sicurezza interna

Panoramica

Sicurezza interna in Ilum è un sistema interno di autorizzazione e autenticazione gestito da Ilum Core. Memorizza in modo sicuro tutti i dati degli utenti in un database e viene utilizzato all'interno dell'ambiente Ilum Core Server.

Ilum’s internal security system provides Controllo degli accessi in base al ruolo, consentendo di mappare ogni azione sul server Ilum Core a un'autorizzazione specifica. Ciò consente una gestione degli accessi estremamente precisa.

Per semplificare l'assegnazione delle autorizzazioni, è possibile creare ruoli utente e gruppi che Definire le autorizzazioni per gli utenti associati a questi ruoli o gruppi.

Declarative Resource Management

Ilum Core provides a declarative way to manage users and their roles through Helm configuration.

An example of a Helm configuration for user management is provided below.

ilum-core: 
sicurezza:
interno:
Gli utenti:
- nome utente: Admin
parola d’ordine: someNewSecurePassword # A simple way to change the initial password of the default admin user
Ruoli:
- ADMIN # Assigning the ADMIN role to the user
- nome utente: orgUser
parola d’ordine: userPassword # Set the initial password for the user
Ruoli:
- UTENTE # Assigning the USER role to the user

Esempio

Let’s create a user who can access the existing data architecture to retrieve and analyze data but does not have permission to modify it by adding new pods.

Il primo passo consiste nel creare un ruolo. Ciò aiuta a semplificare il processo evitando la necessità di assegnare ripetutamente lo stesso autorizzazioni a più utenti.

  1. Passare a Sicurezza - > Ruoli e fare clic sull'icona Aggiungi ruolo bottone.
  2. Inserisci i dettagli del ruolo, inclusi il nome e la descrizione. Ricordati di controllare il Abilitato per attivare il ruolo.

Ilum

  1. Quindi, vai a Autorizzazioni e assegnare le autorizzazioni appropriate per il ruolo.

Ilum

Per questo esempio, verranno configurate le autorizzazioni in base ai presupposti seguenti:

  • L'utente deve avere pieno accesso alle informazioni sull'architettura dei dati per utilizzarle in modo efficace. Assegnare Leggere Autorizzazioni per le seguenti risorse: Processi, servizi, pianificazioni, cluster e richieste di processo.
  • L'utente deve essere in grado di lavorare all'interno dell'architettura dei dati per trasformare i dati senza alterare le parti critiche del sistema. Assegnare Eseguire autorizzazione per il Servizio risorsa. Assegnare Creare autorizzazione per il Lavoro risorsa.
  • L'utente deve avere accesso ai componenti di Ilum come Esplora file, Derivazione, Esplora tabelle, Server di cronologia, Superset, Jupyter o Zeppelin Notebook e Ilum SQL. Concedere Leggere autorizzazione all'utilizzo di ciascuno di questi componenti.
  1. L'utente deve essere consapevole dei propri privilegi ma non avere la possibilità di modificarli. Assegnare Leggere autorizzazioni per Gruppi, ruoli e utenti

Dopo aver creato il ruolo, il passaggio successivo consiste nel creare l'utente.

  1. Passare a Sicurezza -> Utenti e fare clic sull'icona Aggiungi utente bottone.
  2. Inserisci i dettagli dell'utente e abilita l'account selezionando l'icona Abilitato casella di controllo.

Ilum

  1. Quindi, assegna Autorizzazioni all'utente.

Il modo più semplice per farlo è assegnare il ruolo creato in precedenza. In questo modo verranno concesse automaticamente tutte le autorizzazioni desiderate all'utente.

Ilum

Se sono necessarie autorizzazioni aggiuntive oltre a quelle del ruolo, è possibile assegnarle direttamente all'utente in base alle esigenze.

Ilum

Finalmente, l'utente è pronto. È possibile accedere all'applicazione utilizzando il nome utente e la password.

Controllo di accesso

Ogni azione in Ilum Core richiede un'autorizzazione specifica. Al momento della stesura di questo articolo, ci sono 48 diverse autorizzazioni che possono essere assegnate. Per semplificare il controllo degli accessi, si consiglia di utilizzare gruppi e ruoli.

Gruppi Rappresentano raccolte di utenti all'interno dell'organizzazione. Assegnando un utente a un gruppo, l'utente eredita automaticamente tutte le autorizzazioni associate al gruppo. Le autorizzazioni di gruppo possono essere concesse sia direttamente, sia tramite i ruoli assegnati al gruppo.

Un utente possono appartenere a più gruppi e avere diversi ruoli assegnati. Ciò significa che l'utente erediterà tutte le autorizzazioni concesse da tali gruppi e ruoli. Inoltre, è possibile assegnare le autorizzazioni direttamente all'utente. Ilum Core verificherà quindi i permessi considerando quelli assegnati direttamente all'utente, così come quelli dei gruppi e dei ruoli di appartenenza, compresi i ruoli assegnati ai gruppi.

Nota: è possibile disabilitare ruoli e gruppi, in modo da impedire agli utenti di ereditare le autorizzazioni da essi. Allo stesso modo, la disabilitazione degli utenti impedirà loro di accedere a qualsiasi cosa all'interno dell'applicazione.

Autorizzazioni

Ogni azione in Ilum Core richiede la propria autorizzazione.

1. Autorizzazioni Ilum Job:

  • JOB_READ
  • JOB_CREATE
  • JOB_DELETE - per eliminare i lavori
  • REQUEST_READ

Nota: JOB_READ permesso ti dà accesso per leggere tutto ciò che riguarda il lavoro: il suo messaggio di errore e successo, i suoi registri, la sua panoramica con le metriche ecc. REQUEST_READ'autorizzazione ti dà accesso per leggere un elenco di tutte le richieste e i dettagli di ciascuna di esse

2. Autorizzazioni del servizio Ilum:

  • SERVICE_CREATE
  • SERVICE_DELETEARCHIVE
  • SERVICE_EDIT
  • SERVICE_PAUSERESUME
  • SERVICE_EXECUTE
  • SERVICE_READ

3. Pianifica le autorizzazioni:

  • SCHEDULE_READ
  • SCHEDULE_CREATE
  • SCHEDULE_EDIT
  • SCHEDULE_DELETE
  • SCHEDULE_PAUSERESUME

4. Autorizzazioni del cluster:

  • CLUSTER_READ
  • CLUSTER_EDIT
  • CLUSTER_CREATE
  • CLUSTER_DELETE

Nota: CLUSTER_READ non consente l'accesso ai servizi di lettura, alle pianificazioni e ai processi all'interno di un cluster. SERVICE_READ, SCHEDULE_READ e JOB_READ è richiesto

5. Accesso ai moduli.

Ogni modulo richiede un'autorizzazione per accedervi. Questa autorizzazione consente l'accesso completo al modulo.

  • NOTEBOOK_READ: Jupyter e Zeppelin
  • LINEAGE_READ
  • SUPERSET_READ
  • HISTORYSERVER_READ
  • MINIO_READ
  • AIRFLOW_READ
  • MLFLOW_READ
  • SQL_READ
  • TABLEEXPLORER_READ
  • FILEEXPLORER_READ

6. Gestione della sicurezza

Si tratta delle autorizzazioni necessarie per osservare, aggiornare, eliminare, abilitare e disabilitare utenti, ruoli e gruppi. Inoltre, ci sono autorizzazioni per osservare la cronologia delle attività e cancellarla.

  • USER_CREATE
  • USER_EDIT_PASSWORD (per reimpostare la password dell'utente)
  • USER_EDIT_DETAILS (per modificare il nome utente, la descrizione, il nome completo, il reparto, l'e-mail)
  • USER_EDIT_ACCESS (per modificare le autorizzazioni utente, i ruoli e i gruppi)
  • USER_DELETE
  • USER_ENABLEDISABLE
  • USER_READ
  • USERROLE_CREATE
  • USERROLE_READ
  • USERROLE_DELETE
  • USERROLE_EDIT
  • USERROLE_ENABLEDISABLE
  • GROUP_READ
  • GROUP_DELETE
  • GROUP_CREATE
  • GROUP_EDIT
  • GROUP_ENABLEDISABLE
  • ACTIVITY_READ
  • ACTIVITY_DELETE

Ruoli predefiniti

Per impostazione predefinita, Ilum Core ti offre 4 ruoli:

  1. ADMIN: Ha accesso a tutte le autorizzazioni
  2. UTENTE: Ha accesso solo per l'autorizzazione di lettura ad eccezione di MLFlow, Minio, Ilum sql, Airlfow e Notebooks. Ha USER_EDIT_DETAILS autorizzazione
  3. DATA_ENGINEER: ha accesso a tutte le autorizzazioni ad eccezione delle autorizzazioni di sicurezza. Ha USER_EDIT_DETAILS autorizzazione
  4. DATA_SCIENTIST: dispone di tutte le autorizzazioni di lettura ad eccezione di MLFlow e Airflow. Dispone di autorizzazioni SERVICE_EXECUTE e JOB_CREATE. Ha USER_EDIT_DETAILS autorizzazione

Attività

Ilum mantiene una cronologia delle operazioni dell'utente, che può essere visualizzata nella pagina Attività di sicurezza > cartella. Qui puoi vedere una breve descrizione di ogni azione eseguita, insieme all'endpoint usato, a tutte le variabili di percorso associate e al relativo timestamp.

Ilum

È possibile filtrare il registro attività in base a nome o tramite Endpoint per trovare rapidamente le informazioni pertinenti.

Spiegamento

Ilum offre 3 tipi di sicurezza e puoi sceglierne solo uno alla volta. Per scegliere la sicurezza interna, è necessario impostare le configurazioni del timone corrispondenti su interno come di seguito:

Aggiornamento del timone Ilum Ilum/Ilum \\
--mettere ilum-core.security.internal.enabled=vero \\
--mettere ilum-core.security.type=internal --reuse-values

Inoltre, è possibile usare la configurazione Helm per aggiungere utenti iniziali all'applicazione. Gli utenti aggiunti tramite la configurazione Helm verranno creati durante l'avvio dell'applicazione ed etichettati come utenti root.

Utenti root Sono dotati di alcune restrizioni: Non è possibile eliminare, disabilitare, modificare il nome utente o limitare l'accesso. Tuttavia, puoi aggiornare i suoi dettagli, come il nome completo, l'e-mail, la descrizione o reimpostare la password. In questo modo si garantisce l'accesso garantito all'applicazione.

Se è necessario aggiornare gli utenti iniziali, è sufficiente modificare la configurazione di Helm. Ilum applicherà automaticamente la configurazione aggiornata e aggiornerà gli utenti root al successivo avvio dell'applicazione.

Solo un promemoria: utilizza l'interfaccia utente/API per l'intera gestione degli utenti dopo la configurazione iniziale. È consigliabile modificare la password quando si accede per la prima volta.

È possibile aggiungere utenti iniziali in helm con questo configurazione.yaml:

ilum-core: 
sicurezza:
interno:
Gli utenti:
- nome utente: "admin2"
parola d’ordine: "amministratore"
Ruoli:
- "AMMINISTRATORE"
- nome utente: "utente2"
parola d’ordine: "amministratore"
Ruoli:
- "UTENTE"

Aggiornamento del timone Ilum Ilum/Ilum -f configuration.yaml --reuse-values

È possibile configurare tutti i campi di un utente in helm come nell'esempio seguente:

ilum-core: 
sicurezza:
interno:
Gli utenti:
- nome utente: "il mio utente"
E-mail: "e-mail"
nome completo: "nome completo"
dipartimento: "dipartimento"
descrizione: "Descrizione"
parola d’ordine: "parola d'ordine"
Ruoli:
- "RUOLO1"
- "RUOLO2"
- "RUOLO3"
Autorizzazioni:
- "SERVICE_CREATE"
- "SERVICE_EXECUTE"
Gruppi:
- "groupId1"
stato: ABILITATO
rootState: falso

Nota: nel caso in cui non si desideri che l'utente iniziale sia un utente root, è possibile impostare il flag rootState su false