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

Queste best practice riflettono i consigli condivisi da un team interfunzionale di esperti Looker. Questi approfondimenti provengono da anni di esperienza di collaborazione con i clienti di Looker, dall'implementazione al successo a lungo termine. Le best practice sono scritte per funzionare per la maggior parte degli utenti e delle situazioni, ma, come sempre, usa il tuo buon senso durante l'implementazione.

Questa pagina fornisce agli amministratori delle istanze di Looker un esempio guidato per la configurazione dei controlli di accesso ai contenuti. Esamineremo la procedura di implementazione, iniziando da un nuovo progetto e continuando con modelli, insiemi di modelli, insiemi di autorizzazioni, gruppi, ruoli e attributi utente.

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

Un progetto è come una casa.

Un modello è una stanza della casa contenente contenuti specifici.

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

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

Un gruppo è un modo per combinare persone con caratteristiche condivise (adulti, bambini, ospiti).

Un ruolo consente di assegnare a gruppi di persone le relative liste di controllo delle attività in insiemi diversi di stanze.

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

Scenario

Di seguito è riportato un esempio di startup con team di finanza, vendite e prodotto. Il CEO è il nostro unico amministratore e vuole che ogni team veda solo i contenuti pertinenti, con l'eccezione che il vicepresidente di ogni team deve avere accesso ai contenuti di tutti i team. Vuole che i dipendenti standard, i gestori e i VP abbiano accesso a funzionalità diverse.

  • 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 pianificare i contenuti.
  • I vicepresidenti devono disporre di quasi tutti i privilegi, ad eccezione di alcuni riservati solo al CEO.

Il CEO vuole che i venditori possano visualizzare i dati relativi alle proprie attività, ma non i singoli numeri di vendita di un altro venditore. Tuttavia, i responsabili delle vendite dovrebbero essere in grado di visualizzare i dati di ogni venditore. Infine, ci sono alcuni campi finanziari con informazioni sensibili che vuole mascherare per i dipendenti standard che utilizzano il modello.

Ecco l'organigramma:

Organigramma dell'azienda in questo esempio.

Questo grafico mostra la seguente struttura organizzativa per la nostra startup di esempio:

  • CEO
    • VP of Finance
      • Finance Manager
        • Commercialista
    • VP of Sales
      • Sales Manager West
        • Addetto alle vendite Ovest
      • Sales Manager East
        • Venditore Est
    • VP di prodotto
      • Product Manager
        • Ingegnere

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

  1. Crea un progetto:un progetto è il collegamento strutturale tra una connessione al database e i modelli di dati.
  2. Aggiungi modelli:decidi quali dati verranno mostrati a quali utenti.
  3. Crea insiemi di modelli:raggruppa i modelli pertinenti.
  4. Crea set di autorizzazioni:definisci esplicitamente le azioni che gli utenti possono eseguire all'interno di un insieme di modelli.
  5. Crea gruppi:raggruppa gli utenti simili.
  6. Crea ruoli:crea le connessioni tra set di modelli, set di autorizzazioni e gruppi.
  7. Modifica l'accesso ai contenuti:gestisci le dashboard e i Look che gli utenti possono visualizzare tramite le cartelle.
  8. Aggiungi filtri 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 contenitore per uno o più modelli. Se hai già configurato un progetto, puoi saltare questo passaggio. In caso contrario, puoi andare alla pagina Progetti LookML selezionando Progetti nella sezione Sviluppa 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 Generazione di un modello.

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

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

Una volta configurate le impostazioni desiderate per il nuovo progetto, selezioniamo Crea progetto.

Dopo aver creato un progetto, verrà visualizzato il modello LookML generato automaticamente del progetto. A questo punto, dovrai utilizzare il pulsante Configura Git per configurare il controllo della versione per il progetto. Istruzioni dettagliate sulla configurazione del controllo delle versioni sono disponibili nella pagina della documentazione Configurazione e test della connessione Git.

2. Aggiungere modelli

Un modello di dati è come un portale personalizzabile nel database. Ogni modello potrebbe mostrare dati diversi agli utenti. Nel nostro esempio, i venditori hanno bisogno di dati diversi rispetto agli 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 modelli 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 degli insiemi di modelli (in caso contrario, 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 di modelli e visualizzazioni.

Dopo aver aggiunto i modelli, dovremo comunque configurarli. Per configurare i modelli, torniamo alla pagina Progetti nella sezione Sviluppa, che ora dovrebbe mostrare il testo rosso "Configurazione richiesta per l'utilizzo" in linea con il nome di ogni modello.

Accanto a ogni modello, seleziona Configura. Assicureremo che il nome del progetto sia corretto, insieme alle connessioni che consentiremo a questo modello di utilizzare, quindi salveremo.

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

Una volta configurati correttamente tutti i modelli, i messaggi di problemi di configurazione rossi che abbiamo riscontrato in precedenza non verranno più visualizzati.

Ricorda che in Looker, la concessione a un utente dell'autorizzazione see_lookml o develop per un modello comporta la concessione dell'autorizzazione per tutti i modelli del progetto. Pertanto, devi creare progetti separati se vuoi partizionare l'autorizzazione per visualizzare o sviluppare il codice LookML. In caso contrario, devi semplicemente 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 di dati per ogni reparto sono stati configurati, aggiungeremo il modello corrispondente per ogni reparto agli insiemi di modelli che creiamo. Per creare nuovi insiemi di modelli, vai alla pagina Ruoli nel riquadro Amministrazione e seleziona Nuovo insieme di modelli. Per ulteriori istruzioni sulla creazione di nuovi set di modelli, consulta la pagina di documentazione relativa ai ruoli.

Una volta creati, i nuovi insiemi di modelli verranno visualizzati nella sezione Insiemi di modelli della pagina Ruoli, come nell'esempio dello screenshot seguente:

I modelli finanziari, di prodotto e di vendita corrispondono ai set di modelli Finanza, Prodotto e Vendite nella pagina Set di modelli.

4. Crea set di autorizzazioni

Successivamente, creeremo set di autorizzazioni utilizzando i set di modelli che abbiamo appena creato. Come accennato durante la configurazione dello scenario, vogliamo quattro livelli di autorizzazioni corrispondenti ai quattro livelli gerarchici dell'organigramma e i livelli superiori devono includere le autorizzazioni per i livelli inferiori. Nel nostro scenario identificheremo i set di autorizzazioni come segue:

  • Il CEO ha impostato l'autorizzazione Amministratore.
  • I VP hanno l'autorizzazione Amministratore limitato impostata.
  • I gestori dispongono dell'autorizzazione Scarica e condividi.
  • I dipendenti standard hanno impostato l'autorizzazione Visualizza ed esplora.

Per creare nuovi set di autorizzazioni, vai alla pagina Ruoli nel riquadro Amministrazione e seleziona Nuovo set di autorizzazioni. Per ogni livello di autorizzazione, selezioneremo le autorizzazioni appropriate. In generale, i set di autorizzazioni devono sovrapporsi il meno possibile, con ogni set che aggiunge solo le autorizzazioni specifiche che vogliamo che gli utenti con questo set di autorizzazioni abbiano. Questo perché daremo ad alcuni utenti più set di autorizzazioni e vogliamo sapere esattamente cosa consente ogni set di autorizzazioni. Tuttavia, a causa della struttura ad albero, è spesso necessaria una certa sovrapposizione.

Nel nostro esempio, vogliamo che l'autorizzazione Visualizza ed esplora sia impostata per consentire agli utenti di visualizzare i contenuti, porre domande e salvare riquadri utili. Pertanto, gli concederemo le autorizzazioni associate alla visualizzazione dei contenuti (ad esempio see_looks e see_user_dashboards), l'autorizzazione explore e l'autorizzazione save_content. Le eccezioni degne di nota sono see_lookml, che potremmo volere solo per gli sviluppatori, e see_sql, che riserviamo a chi comprende SQL e ha l'autorizzazione a visualizzare la struttura del database. Tutte queste autorizzazioni rientrano strettamente nel ramo access_data. Non stiamo concedendo nessuna delle autorizzazioni see nella parte inferiore dell'albero, perché si tratta di autorizzazioni amministrative.

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

Gli unici campi selezionati durante la configurazione dei set di autorizzazioni Visualizza ed esplora e Scarica e condividi sono le autorizzazioni di genitore necessarie per selezionare le autorizzazioni secondarie aggiunte nel ramo access_data. Pertanto, poiché gli utenti con il set di autorizzazioni Scarica e condividi avranno anche il set di autorizzazioni Visualizza ed esplora, non è necessario includere autorizzazioni come see_lookml_dashboards, see_user_dashboards e explore nel set di autorizzazioni Scarica e condividi, poiché queste autorizzazioni non contengono autorizzazioni secondarie necessarie per il set di autorizzazioni Scarica e condividi.

Infine, per il nostro insieme di autorizzazioni Amministratore limitato, aggiungeremo la maggior parte delle autorizzazioni amministrative nella parte inferiore dell'albero, escludendo i privilegi manage_models e sudo che il CEO vuole solo per sé. Ecco come si presenta:

Al termine, i set 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: l'insieme 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.
  • Scarica e condividi: l'insieme 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.
  • Visualizza ed esplora: il set di autorizzazioni Visualizza ed esplora 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 appartenenti 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 raggruppare gli utenti. Creeremo gruppi sia per i dipendenti standard che per i responsabili di ogni reparto, perché alla fine corrisponderanno ai diversi ruoli che creeremo in un secondo momento. I vicepresidenti faranno parte di un gruppo a parte e il CEO non ha bisogno di un gruppo. Al termine, nella pagina Gruppi dovrebbero essere elencati i seguenti gruppi 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. Per istruzioni su come aggiungere utenti ai gruppi, consulta la pagina della documentazione relativa a Gruppi.

Quando aggiungi utenti ai gruppi che abbiamo creato, ricorda che, a causa del modo in cui abbiamo strutturato le autorizzazioni, i gruppi di livello superiore possono essere inclusi nei gruppi di livello inferiore. Ad esempio, vogliamo che i VP siano nel gruppo Finanza, ma non vogliamo che i responsabili delle vendite siano nel gruppo Prodotto. Un modo efficace per affrontare il problema è iniziare aggiungendo gli utenti ai gruppi di livello superiore (ad esempio i VP), in modo da poterli aggiungere come gruppo ai livelli inferiori.

6. Creare ruoli

Ora che abbiamo creato i set di modelli, i set di autorizzazioni e i gruppi, possiamo riunirli tutti utilizzando i ruoli. Ogni ruolo avrà un unico set di autorizzazioni e un unico set di modelli e potrà includere uno o più gruppi. Poiché i ruoli devono includere un insieme di modelli, creeremo di nuovo ruoli sia per i dipendenti standard sia per i gestori 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 gestione per il reparto e al vicepresidente. Ad esempio, assegna il ruolo Finanza standard ai gruppi Finanza e Gestore finanziario e al vicepresidente della finanza.
  • Ruoli di gestione:i ruoli di gestione avranno il set di autorizzazioni Scarica e condividi, insieme al set di modelli corrispondente. Questi ruoli devono essere assegnati al gruppo di gestori del reparto corrispondente e al vicepresidente del reparto.
  • Ruoli di gestione:i ruoli di gestione avranno il set di autorizzazioni Scarica e condividi, insieme al set di modelli corrispondente. Questi ruoli devono essere assegnati al gruppo di gestori del reparto corrispondente e al vicepresidente del reparto.
  • Ruolo VP: il ruolo VP avrà il set di autorizzazioni Amministratore limitato e il set di modelli Tutti. Questo ruolo verrà assegnato al gruppo VP.

7. Modificare l'accesso ai contenuti

Il passaggio successivo consiste nell'organizzare le autorizzazioni di accesso alle cartelle in modo che ogni gruppo abbia accesso ai propri contenuti (e solo a quelli). Di seguito è riportato il layout delle cartelle nella nostra istanza di esempio, che può essere visualizzata dalla pagina Accesso ai contenuti nel pannello di amministrazione:

La cartella Condivisa contiene le cartelle Finanza, Prodotto e Vendite, che contengono cartelle per l'uso dei reparti.

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

In base alle regole per l'accesso alle cartelle, vogliamo assegnare l'accesso Visualizza a tutti gli utenti della cartella Condivisa. Assegneremo a ogni gruppo l'accesso Visualizza alle cartelle principali nell'albero sopra le cartelle a cui il gruppo avrà accesso. In questo modo, mentre esploriamo 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 in una cartella in cui vogliamo controllare chi la vede. Nel nostro esempio, vogliamo che solo il CEO e i VP dispongano di queste autorizzazioni; tutti gli altri avranno solo accesso di visualizzazione alle cartelle di cui hanno bisogno.

8. Aggiungere limitazioni di accesso ai dati con gli attributi utente

Questa sezione illustra i metodi per impedire a utenti specifici di accedere a righe o colonne di dati specifici di un modello a cui hanno accesso. Ricorda che il nostro CEO vuole che i venditori possano visualizzare i dati relativi alle loro attività individuali, ma non a quelle di altri. I responsabili delle vendite, invece, devono essere in grado di visualizzare i dati di ogni venditore. A tal fine, utilizzeremo gli attributi utente e il parametro sql_always_where.

Creare attributi utente

Innanzitutto, creeremo un nuovo attributo utente denominato access_level nascosto agli utenti. In questo modo potremo 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 utente: modifica
  • Nascondi valori: No

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

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

Poiché l'ordine di queste regole è importante, vogliamo posizionare i valori di accesso più elevati nella parte superiore dell'elenco, in modo da sostituire i valori di accesso più bassi verso la parte inferiore. Questo comportamento è spiegato ulteriormente nella pagina della documentazione relativa agli attributi utente.

Filtrare i dati delle righe con gli attributi utente

Supponiamo che sia già stata creata un'esplorazione contenente tutte le informazioni sulle vendite. Controlleremo il livello di accesso dell'utente che esegue la query sull'esplorazione. 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 siano accessibili solo le righe di ciascun venditore. Se il livello di accesso è Premium o Completo, la query non verrà filtrata. Per impostazione predefinita, abbiamo un attributo utente denominato Name, che corrisponde al nome dell'utente di Looker. Il codice LookML per l'esplorazione sarà simile al seguente:

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

Filtrare i dati delle colonne con gli attributi utente

Infine, nel modello finanziario sono presenti alcune colonne con 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 relativa agli attributi utente, per concedere solo agli utenti con il livello di accesso Completo la possibilità di visualizzare i campi PII.

Ecco fatto. Abbiamo completato la configurazione dei controlli di accesso ai contenuti e ai dati e tutti i nostri utenti sono liberi di esplorare Looker. In questo modo, possiamo assicurarci che vedano solo i contenuti che abbiamo autorizzato.