Best practice: proteggi le tue cartelle. Una procedura dettagliata per l'accesso ai contenuti

Queste best practice riflettono i consigli condivisi da un team interfunzionale di Looker esperti. Questi insight derivano da anni di esperienza nella collaborazione con i clienti di Looker, dall'implementazione al successo a lungo termine. Queste pratiche sono scritte in modo da funzionare per la maggior parte degli utenti e delle situazioni, ma, come sempre, adottano il buon senso per implementarle.

Questa pagina fornisce agli amministratori delle istanze Looker un esempio guidato di configurazione dei controlli dell'accesso ai contenuti. Analizzeremo il processo di implementazione, partendo da un nuovo progetto e continuando con i modelli, i set di modelli, i set di autorizzazioni, i gruppi, i ruoli e gli attributi utente.

Innanzitutto, un'analogia per comprendere le principali funzionalità di Looker in questo contesto:

Un progetto è come una casa.

Un model è una stanza della casa piena di contenuti specifici.

Un set di modelli è un gruppo di stanze o una camera singola (camera da letto, cucina).

Un set di autorizzazioni è un elenco di controllo delle attività che specifica cosa le persone possono fare in una stanza (mangiare, giocare, dormire).

Un gruppo consente di combinare persone con caratteristiche comuni (adulti, bambini, ospiti).

Un ruolo è come assegnare a gruppi di persone elenchi di controllo delle attività in gruppi di stanze differenti.

Un attributo utente è una chiave che apre articoli speciali in casa (teiera, utensili elettrici).

Scenario

Di seguito è riportato un esempio di startup con team finanziari, di vendita e di prodotto. Il CEO è il nostro unico amministratore e vuole che ogni team visualizzi solo i contenuti pertinenti, ad eccezione del fatto che il VP di ogni team deve avere accesso ai contenuti di tutti i team. Vuole un accesso diverso alle funzionalità per dipendenti, manager e VP standard.

  • I dipendenti standard devono essere in grado di visualizzare ed esplorare i dati nei propri modelli.
  • I gestori devono disporre dell'accesso standard e anche essere in grado di scaricare e programmare i contenuti.
  • I VP devono avere quasi tutti i privilegi, ad eccezione di alcuni riservati al solo CEO.

Il CEO desidera che i commerciali siano in grado di visualizzare i dati relativi alle proprie attività, ma non i singoli dati di vendita di altri commerciali. Tuttavia, i responsabili delle vendite dovrebbero essere in grado di visualizzare le cifre di ogni venditore. Infine, ci sono alcuni campi finanziari con informazioni sensibili che vuole mascherare per i dipendenti standard che utilizzano quel modello.

Di seguito è riportato l'organigramma:

Organigramma della startup in questo esempio.

Il grafico riportato sopra mostra la seguente struttura organizzativa per la nostra startup di esempio:

  • CEO
    • Vice President of Finanza
      • Responsabile finanziario
        • Commercialista
    • Vicepresidente vendite
      • Sales Manager occidentale
        • Commerciale ovest
      • Sales Manager Est
        • Commerciale est
    • VP di Product
      • Product Manager
        • Ingegnere

L'implementazione dei controlli dell'accesso desiderati prevede i seguenti passaggi:

  1. Creazione di un progetto: un progetto è il collegamento strutturale tra una connessione al database e i modelli dei dati.
  2. Aggiungi modelli: decidi quali dati verranno rivelati a quali utenti.
  3. Crea set di modelli: raggruppa i modelli pertinenti.
  4. Crea set di autorizzazioni: definisci in modo esplicito le azioni che gli utenti possono eseguire all'interno di un set di modelli.
  5. Crea gruppi: raggruppa utenti simili.
  6. Crea ruoli: crea le connessioni tra set di modelli, set di autorizzazioni e gruppi.
  7. Accesso in modifica ai contenuti:gestisci le dashboard e i Look che gli utenti possono visualizzare tramite le cartelle.
  8. Aggiungi filtri di dati: filtra ulteriormente i dati a cui utenti specifici possono accedere all'interno di un modello.

1. Crea un progetto

La prima cosa di cui abbiamo bisogno è un progetto, ovvero un container per uno o più modelli. Se hai già configurato un progetto, puoi saltare questo passaggio. In alternativa, puoi accedere alla pagina Progetti LookML selezionando Progetti nella sezione Sviluppo di Looker e selezionando Nuovo progetto LookML per creare un nuovo progetto. Per istruzioni più dettagliate sulla creazione di un nuovo progetto, consulta la pagina della documentazione relativa alla creazione di un nuovo progetto LookML.

Nella pagina Nuovo progetto, creeremo un progetto con le seguenti impostazioni:

  • Nella sezione Nome, assegniamo un nome al progetto.
  • Nella sezione Punto di partenza, seleziona Genera modello da schema di database.
  • Nel menu a discesa Connessione, selezioniamo il nome della connessione al nostro database.
  • Nella sezione Crea visualizzazioni da, per questo esempio, selezioniamo l'opzione Tutte le tabelle in modo che il generatore LookML crei un file di vista per ciascuna tabella nel tuo database.

Una volta configurate le impostazioni desiderate per il nuovo progetto, selezioniamo Create Project (Crea progetto).

Al momento della creazione di un progetto, passerai al modello LookML generato automaticamente. A questo punto, dovrai utilizzare il pulsante Configura Git per configurare il controllo della versione per il progetto. Per istruzioni dettagliate sulla configurazione del controllo della versione, consulta la pagina della documentazione Configurare e testare una connessione Git.

2. Aggiungi modelli

Un model dati è come un portale personalizzabile all'interno del database. Ogni modello può esporre dati diversi agli utenti. Nel nostro esempio, i nostri venditori hanno bisogno di dati diversi da quelli dei nostri ingegneri, quindi aggiungeremo modelli separati per esporre le informazioni appropriate del database a ogni tipo di utente.

Nel nostro progetto LookML, aggiungeremo nuovi file di modello LookML con i nomi di ciascuno dei modelli desiderati (finance, sales e product). Assicurati di definire almeno un'esplorazione in ogni file del modello; in questo modo potremo selezionare il modello durante la creazione dei set di modelli (altrimenti, questi non verranno visualizzati nella selezione). Per ulteriori informazioni su come utilizzare il parametro explore nel file del modello, consulta la pagina della documentazione Informazioni sui file del modello e delle visualizzazioni.

Una volta aggiunti correttamente i modelli, dovremo continuare a configurarli. Per configurare i modelli, torniamo alla pagina Progetti nella sezione Sviluppo, che ora dovrebbe mostrare il testo rosso "Configurazione richiesta per l'uso" in linea con il nome di ciascun modello.

Accanto a ogni modello, seleziona Configura. Ci assicureremo che il nome del progetto sia corretto e le connessioni che consentiremo a questo modello di utilizzare, quindi salviamo.

La pagina Configura un modello ti consente di verificare il nome del modello, il progetto e le connessioni consentite per il modello.

Una volta che tutti i modelli saranno stati configurati correttamente, i messaggi rossi relativi ai problemi di configurazione riscontrati in precedenza non verranno più visualizzati.

Ricorda che, in Looker, se concedi a un utente l'autorizzazione see_lookml o develop per un modello, l'utente lo concede per tutti i modelli nel progetto. Di conseguenza, devi creare progetti separati se vuoi eseguire la partizionamento dell'autorizzazione per visualizzare o sviluppare LookML. In caso contrario, devi solo creare un nuovo modello. Le autorizzazioni del modello sono sufficienti per garantire che solo determinate persone possano eseguire query su determinati dati.

Per saperne di più sulle autorizzazioni, consulta la nostra documentazione sui ruoli.

3. Crea set di modelli

Ora che i modelli dei dati per ciascun reparto sono stati configurati, aggiungeremo il modello corrispondente per ciascun reparto nei set di modelli che creiamo. Per creare nuovi set di modelli, accediamo alla pagina Ruoli nel riquadro Amministrazione e selezioniamo Nuovo set di modelli. Per ulteriori istruzioni sulla creazione di nuovi set di modelli, consulta la pagina della documentazione Ruoli.

Una volta creati, i nuovi set di modelli verranno visualizzati nella sezione Set di modelli della pagina Ruoli, come nell'esempio seguente:

I modelli di finanza, prodotto e vendita corrispondono agli insiemi di modelli Finanza, Prodotto e Vendite nella pagina Set di modelli.

4. Crea set di autorizzazioni

In seguito, creeremo gli insiemi di autorizzazioni utilizzando i set di modelli appena creati. Come indicato durante la configurazione dello scenario, vogliamo quattro livelli di autorizzazioni corrispondenti ai quattro livelli gerarchici nell'organigramma; i livelli superiori devono includere le autorizzazioni per i livelli sottostanti. Nel nostro scenario, identificheremo gli insiemi di autorizzazioni come segue:

  • Il CEO ha impostato le autorizzazioni di Amministratore.
  • I VP hanno l'autorizzazione Amministratore con limitazioni impostata.
  • I gestori hanno l'autorizzazione Download e condivisione impostata.
  • I dipendenti standard hanno set di autorizzazioni Visualizzazione ed esplorazione.

Per creare nuovi set di autorizzazioni, passeremo alla pagina Ruoli nel riquadro Amministrazione e selezioneremo Nuovo set di autorizzazioni. Per ogni livello di autorizzazione, selezioneremo le autorizzazioni appropriate. In generale, gli insiemi di autorizzazioni dovrebbero sovrapporsi il meno possibile e in ogni insieme devono essere aggiunte soltanto le autorizzazioni specifiche che vogliamo concedere agli utenti con questo set di autorizzazioni. Il motivo è che concederemo ad alcuni utenti più set di autorizzazioni e vogliamo sapere esattamente cosa consente ciascun set di autorizzazioni. Tuttavia, a causa della struttura ad albero, è spesso necessaria una sovrapposizione.

Nel nostro esempio, vogliamo che l'insieme di autorizzazioni Visualizzazione ed esplorazione permetta agli utenti di visualizzare contenuti, porre domande e salvare riquadri utili. Concederemo quindi le autorizzazioni associate alla visualizzazione dei contenuti (come see_looks e see_user_dashboards), l'autorizzazione explore e l'autorizzazione save_content. Le eccezioni degne di nota sono see_lookml, che potremmo desiderare solo per gli sviluppatori e see_sql, che ci riserviamo di consentire agli utenti di comprendere il linguaggio SQL e di essere affidabili a visualizzare la struttura del database. Tutte queste autorizzazioni si trovano rigorosamente nel ramo access_data. Non concediamo nessuna delle autorizzazioni see nella parte inferiore dell'albero perché si tratta di autorizzazioni amministrative.

Per il set di autorizzazioni Scarica e condividi, aggiungeremo le autorizzazioni associate al download, la pianificazione, la condivisione, la creazione di Look pubblici (che consente la condivisione di Look con utenti non Looker) e see_schedules (poiché possono creare pianificazioni, è logico che possano visualizzarle anche nel pannello di amministrazione).

Gli unici campi che sono stati selezionati durante la configurazione degli insiemi di autorizzazioni Visualizza ed esplora e Scarica e condividi sono le autorizzazioni principali necessarie per selezionare le autorizzazioni secondarie aggiunte nel ramo access_data. Di conseguenza, poiché per gli utenti con set di autorizzazioni Scarica e condividi sarà impostata anche l'autorizzazione Visualizzazione ed esplorazione, non è necessario includere autorizzazioni quali see_lookml_dashboards, see_user_dashboards e explore nell'insieme di autorizzazioni Download e condivisione, poiché queste autorizzazioni non contengono le autorizzazioni secondarie necessarie per l'insieme di autorizzazioni Scarica e condividi.

Infine, per l'insieme di autorizzazioni di amministratore con limitazioni, aggiungeremo la maggior parte delle autorizzazioni amministrative in fondo all'albero, escludendo i privilegi manage_models e sudo che il CEO desidera solo per se stessa. Ecco come:

Al termine, gli insiemi di autorizzazioni includeranno le seguenti autorizzazioni:

  • Amministratore: l'insieme di autorizzazioni Amministratore riservato al CEO della nostra azienda di esempio include tutte le autorizzazioni.
  • Amministratore con limitazioni: il set di autorizzazioni Amministratore con limitazioni include le autorizzazioni create_prefetches, login_special_email, manage_homepage, manage_spaces, see_alerts, see_datagroups, see_logs, see_pdts, see_queries, see_users e update_datagroups.
  • Download e condivisione: il set di autorizzazioni Scarica e condividi include le autorizzazioni access_data, create_public_looks, download_with_limit, download_without_limit, save_content, schedule_external_look_emails, schedule_look_emails, see_looks, see_schedules, send_outgoing_webhook, send_to_s3 e send_to_sftp.
  • Visualizzazione ed esplorazione: il set di autorizzazioni Visualizzazione ed esplorazione include le autorizzazioni access_data, create_table_calculations, explore, save_content, see_drill_overlay, see_lookml_dashboards, see_looks e see_user_dashboards.

Per visualizzare le autorizzazioni che appartengono a un set di autorizzazioni esistente, vai alla sezione Set di autorizzazioni della pagina di amministrazione Ruoli.

5. Crea gruppi

Il passaggio successivo consiste nel creare i gruppi e il bucket dei nostri utenti. Creeremo gruppi sia per i dipendenti standard che per i manager di ogni reparto, perché alla fine corrisponderanno ai diversi ruoli che creeremo in seguito. I VP saranno in un proprio gruppo e il CEO non ha bisogno di un gruppo. Al termine, nella pagina Gruppi dovrebbero essere elencati i gruppi seguenti e i relativi ID gruppo, generati automaticamente da Looker. Ad esempio:

ID Nome
1 Tutti gli utenti
3 Finanza
4 Vendite
5 Prodotto
7 Responsabile vendite
8 Product Manager
9 Responsabile finanziario
10 VP

Una volta creati i gruppi, dovremo aggiungere gli utenti ai gruppi. Per istruzioni sull'aggiunta di utenti ai gruppi, consulta la pagina della documentazione di Gruppi.

Quando aggiungi utenti ai gruppi che abbiamo creato, ricorda che, a causa del modo in cui abbiamo le autorizzazioni strutturate, i gruppi di livello superiore potrebbero essere inclusi nei gruppi di livello inferiore. Ad esempio, vogliamo i VP nel gruppo Finance, ma non i Sales Manager nel gruppo Product, Un modo efficace per affrontare questo problema è iniziare aggiungendo gli utenti ai gruppi di livello superiore (come i VP), in modo da poterli aggiungere come gruppo ai livelli inferiori.

6. Creare ruoli

Ora che hai creato i set di modelli, i set di autorizzazioni e i gruppi, possiamo raggrupparli tutti utilizzando i ruoli. Ogni ruolo avrà un singolo set di autorizzazioni e un singolo set di modelli e potrà includere uno o più gruppi. Poiché i ruoli devono includere un insieme di modelli, creeremo ruoli sia per i dipendenti standard che per i manager di ogni reparto.

  • Ruoli standard: i ruoli standard includeranno il set di autorizzazioni Visualizza ed esplora, insieme al set di modelli corrispondente. Assegna i ruoli standard ai gruppi standard e di amministratore del reparto, nonché al VP. Ad esempio, assegna il ruolo Finanza standard ai gruppi Finanza e Gestore finanziario e al VP del reparto Finanza,
  • Ruoli gestore:i ruoli gestore avranno l'autorizzazione Scarica e condividi impostata, insieme al set di modelli corrispondente. Questi ruoli devono essere assegnati al gruppo di gestori per il reparto corrispondente e al VP del reparto.
  • Ruoli gestore:i ruoli gestore avranno l'autorizzazione Scarica e condividi impostata, insieme al set di modelli corrispondente. Questi ruoli devono essere assegnati al gruppo di gestori per il reparto corrispondente e al VP del reparto.
  • Ruolo VP: il ruolo VP avrà l'autorizzazione Amministratore con limitazioni impostata e il modello Tutti impostato. Questo ruolo verrà assegnato al gruppo dei VP.

7. Modifica accesso ai contenuti

Il passaggio successivo consiste nell'organizzare le nostre autorizzazioni di accesso alle cartelle in modo che ogni gruppo possa accedere ai propri contenuti (e solo ai propri). Ecco il layout delle cartelle nella nostra istanza di esempio, che può essere visualizzata passando alla pagina Accesso ai contenuti nel pannello di amministrazione:

La cartella Shared (Condivisa) contiene le cartelle Finanza, Prodotto e Vendite, che contengono cartelle destinate all'uso da parte del reparto.

L'accesso alle cartelle segue le regole dell'ereditarietà gerarchica. Per saperne di più su come funziona, consulta la nostra documentazione sui livelli di accesso e sul controllo dell'accesso e della gestione delle autorizzazioni.

Seguendo le regole per l'accesso alle cartelle, vogliamo concedere l'accesso in visualizzazione a tutti gli utenti della cartella Condivisi. Assegneremo a ogni gruppo l'accesso in visualizzazione alle cartelle principali nella struttura ad albero sopra quelle a cui avrà accesso il gruppo. In questo modo, mentre attraversiamo l'albero, se non vogliamo che un gruppo veda una cartella, non lo includeremo quando concediamo l'accesso.

Possiamo assegnare il livello di accesso Gestisci accesso, modifica ai gruppi di una cartella in cui vogliamo controllare chi può visualizzarla. Nel nostro esempio, vogliamo che solo il CEO e i VP dispongano di queste autorizzazioni; tutti gli altri avranno accesso solo in visualizzazione alle cartelle di cui hanno bisogno.

8. Aggiungere limitazioni di accesso ai dati con attributi utente

Questa sezione illustra i metodi per impedire a utenti specifici di accedere a determinate righe o colonne di dati da un modello a cui hanno accesso. Ricorda che il nostro CEO desidera che i venditori siano in grado di visualizzare i dati relativi alle proprie attività individuali, ma non a quelle di altre persone. I responsabili delle vendite, tuttavia, devono essere in grado di visualizzare le cifre di ogni venditore. A tale scopo, utilizzeremo gli attributi utente e il parametro sql_always_where.

Creare attributi utente

Per prima cosa, creeremo un nuovo attributo utente denominato access_level, che sarà nascosto agli utenti. Questo ci consentirà di definire i livelli di accesso per i diversi gruppi di cui disponiamo. Imposteremo i seguenti valori durante la creazione dell'attributo utente:

  • Nome: access_level
  • Etichetta: livello di accesso
  • Tipo di dati: stringa
  • Accesso utenti: modifica
  • Nascondi valori: No

Nel nostro esempio, lasciamo deselezionata la casella Imposta un valore predefinito.

Durante la creazione del campo, configuriamo tre livelli di accesso: Base, Premium e Completo. Assegneremo questi livelli rispettivamente ai gruppi standard, amministratore e VP. Questa operazione viene eseguita nella scheda Raggruppa valori della stessa sezione. Per maggiori dettagli, consulta la sezione Assegnazione di valori a gruppi di utenti nella documentazione relativa agli attributi utente.

Poiché l'ordine di queste regole è importante, vogliamo posizionare i valori di accesso più elevati all'inizio dell'elenco per sostituire i valori di accesso inferiori verso il fondo. Questo comportamento è spiegato ulteriormente nella pagina della documentazione relativa agli attributi utente.

Applicazione di filtri ai dati delle righe in base agli attributi utente

Immaginiremo che sia già in corso la creazione di un'esplorazione con tutte le informazioni di vendita al suo interno. Verificheremo il livello di accesso dell'utente che esegue query su Esplora; se il livello di accesso è Base (che abbiamo assegnato a tutti i nostri venditori standard), filtreremo sempre l'esplorazione in base al nome dell'utente, in modo che solo le righe di ciascun venditore siano accessibili. Se il livello di accesso è Premium o Completo, la query non verrà filtrata. Per impostazione predefinita, abbiamo un attributo utente chiamato Nome, che corrisponde al nome dell'utente di Looker. Il LookML per l'esplorazione avrà il seguente aspetto:

explore: sales_info {
  sql_always_where: {% if {{_user_attributes['access_level']}} == "Basic" %}
    ${sales_info.name} = "{{_user_attributes['name']}}"
    % endif %
  ;;
}

Applicazione di filtri ai dati delle colonne in base agli attributi utente

Infine, nel modello finanziario ci sono alcune colonne PII (informazioni che consentono l'identificazione personale) che vogliamo nascondere anche ad alcuni dei nostri utenti. Per farlo, possiamo utilizzare gli attributi utente che abbiamo creato, insieme alle istruzioni per applicare le autorizzazioni a livello di database in Looker nella pagina della documentazione Attributi utente, per consentire solo agli utenti con livello di accesso completo di visualizzare i campi PII.

Ecco fatto. Abbiamo completato la configurazione dei nostri controlli dell'accesso ai contenuti e ai dati e tutti i nostri utenti sono liberi di esplorare Looker. In questo modo, possiamo garantire che gli utenti vedranno solo i contenuti che sono stati autorizzati a visualizzare.