Diese Best Practices spiegeln die Empfehlungen eines funktionsübergreifenden Teams erfahrener Looker-Mitarbeiter wider. Diese Erkenntnisse stammen aus jahrelanger Erfahrung in der Zusammenarbeit mit Looker-Kunden von der Implementierung bis zum langfristigen Erfolg. Die beschriebenen Vorgehensweisen sind so formuliert, dass sie für die meisten Nutzer und Situationen geeignet sind. Bei der Implementierung ist jedoch immer unser Urteilsvermögen gefragt.
Auf dieser Seite finden Administratoren von Looker-Instanzen eine Anleitung zum Einrichten der Zugriffssteuerung für Inhalte. Wir führen den Implementierungsprozess durch, beginnend mit einem neuen Projekt und fahren dann mit Modellen, Modellsätzen, Berechtigungssätzen, Gruppen, Rollen und Nutzerattributen fort.
Zunächst eine Analogie, um die wichtigsten Looker-Funktionen in diesem Kontext zu verstehen:
Ein Projekt ist wie ein Zuhause.Ein model ist ein Raum in Ihrem Zuhause, in dem es viele bestimmte Inhalte gibt.
Ein Modellsatz ist eine Gruppe von Räumen oder ein einzelnes Zimmer (Schlafzimmer, Küche).
Ein Berechtigungssatz ist eine Checkliste für Aktivitäten, die angibt, was Personen in einem Raum tun dürfen (essen, spielen, schlafen).
In einer Gruppe können Personen mit gemeinsamen Merkmalen (Erwachsene, Kinder, Gäste) kombiniert werden.
Mit einer Rolle können Sie Personen Checklisten für verschiedene Gruppen von Räumen zuweisen.
Ein Nutzerattribut ist ein Schlüssel, mit dem Sie bestimmte Gegenstände im Haus öffnen können, z. B. eine Teekanne oder ein Elektrowerkzeug.
Szenario
Das folgende Beispiel zeigt ein Start-up mit Finanz-, Vertriebs- und Produktteams. Die CEO ist unser einziger Administrator. Sie möchte, dass jedes Team nur die Inhalte sieht, die für es relevant sind, mit der Ausnahme, dass der VP eines jeden Teams Zugriff auf die Inhalte aller Teams haben soll. Sie möchte unterschiedliche Funktionen für Standardmitarbeiter, Vorgesetzte und VPs haben.
- Standardmitarbeiter sollten Daten in ihrem eigenen Modell ansehen und untersuchen können.
- Administratoren sollten Standardzugriff haben und außerdem in der Lage sein, Inhalte herunterzuladen und zu planen.
- VPs sollten fast alle Berechtigungen haben, mit Ausnahme einiger, die nur dem CEO vorbehalten sind.
Der CEO möchte, dass Verkäufer die Daten für ihre eigenen Aktivitäten anzeigen können, aber nicht die einzelnen Verkaufszahlen eines anderen Verkäufers. Sales Manager sollten jedoch in der Lage sein, die Zahlen aller Verkäufer anzuzeigen. Und schließlich gibt es noch einige Finanzfelder mit vertraulichen Informationen, die sie für Standardmitarbeiter, die dieses Modell verwenden, verbergen möchte.
Hier das Organigramm:
Das obige Diagramm zeigt die folgende Organisationsstruktur für unser Beispiel-Start-up:
- CEO
- Vice President, Finanzen
- Finanzmanager
- Buchhalter
- Vertriebsleitung
- Vertriebsmanager West
- Vertriebsmitarbeiter West
- Vertriebsmanager Ost
- Vertriebsmitarbeiter Osten
- VP für Produkte
- Produktmanager
- Engineer
Die Implementierung der gewünschten Zugriffskontrollen umfasst die folgenden Schritte:
- Projekt erstellen:Ein Projekt ist die strukturelle Verbindung zwischen einer Datenbankverbindung und Datenmodellen.
- Modelle hinzufügen:Entscheiden Sie, welche Daten welchen Nutzern präsentiert werden sollen.
- Modellsätze erstellen:Gruppieren Sie relevante Modelle.
- Berechtigungssätze erstellen:Definieren Sie explizit die Aktionen, die Nutzer innerhalb eines Modellsatzes ausführen können.
- Gruppen erstellen:Ähnliche Nutzer werden in Gruppen zusammengefasst.
- Rollen erstellen:Erstellen Sie die Verbindungen zwischen Modellsätzen, Berechtigungssätzen und Gruppen.
- Zugriff auf Inhalte bearbeiten: Legen Sie fest, welche Dashboards und Looks-Benutzer über Ordner ansehen können.
- Datenfilter hinzufügen:Sie können die Daten weiter filtern, auf die bestimmte Nutzer innerhalb eines Modells zugreifen können.
1. Projekt erstellen
Als Erstes benötigen wir ein Projekt, das ein Container für ein oder mehrere Modelle ist. Wenn Sie bereits ein Projekt eingerichtet haben, können Sie diesen Schritt überspringen. Alternativ können Sie die Seite LookML-Projekte aufrufen, indem Sie im Abschnitt Develop von Looker die Option Projekte und dann Neues LookML-Projekt auswählen, um ein neues Projekt zu erstellen. Eine ausführlichere Anleitung zum Erstellen eines neuen Projekts finden Sie auf der Dokumentationsseite Neues LookML-Projekt erstellen.
Auf der Seite Neues Projekt erstellen wir ein Projekt mit den folgenden Einstellungen:
- Im Abschnitt Name geben wir dem Projekt einen Namen.
- Wählen Sie im Abschnitt Ausgangspunkt die Option Modell aus Datenbankschema generieren aus.
- Im Drop-down-Menü Verbindung wählen wir den Namen unserer Datenbankverbindung aus.
- In diesem Beispiel wählen wir im Abschnitt Ansichten erstellen aus die Option Alle Tabellen aus, sodass der LookML-Generator eine Ansichtsdatei für jede Tabelle in Ihrer Datenbank erstellt.
Nachdem die gewünschten Einstellungen für das neue Projekt konfiguriert wurden, wählen wir Projekt erstellen aus.
Beim Erstellen eines Projekts werden Sie zum automatisch generierten LookML-Modell des Projekts weitergeleitet. An dieser Stelle müssen Sie die Schaltfläche Git konfigurieren verwenden, um die Versionsverwaltung für das Projekt einzurichten. Eine ausführliche Anleitung zum Einrichten der Versionsverwaltung finden Sie auf der Dokumentationsseite Git-Verbindung einrichten und testen.
2. Modelle hinzufügen
Ein Datenmodel ist wie ein anpassbares Portal in die Datenbank. Jedes Modell kann Nutzern unterschiedliche Daten zur Verfügung stellen. In unserem Beispiel benötigen unsere Vertriebsmitarbeiter andere Daten als unsere Entwickler, also fügen wir separate Modelle hinzu, um jedem Nutzertyp die entsprechenden Informationen aus der Datenbank bereitzustellen.
In unserem LookML-Projekt fügen wir neue LookML-Modelldateien mit den Namen der gewünschten Modelle (finance
, sales
und product
) hinzu. Definieren Sie in jeder Modelldatei mindestens ein Explore, damit wir das Modell beim Erstellen von Modellsätzen auswählen können (andernfalls werden die Modelle nicht in der Auswahl angezeigt). Weitere Informationen zur Verwendung des explore
-Parameters in der Modelldatei finden Sie auf der Dokumentationsseite Informationen zu Modell- und Ansichtsdateien.
Nachdem die Modelle hinzugefügt wurden, müssen sie noch konfiguriert werden. Zum Konfigurieren der Modelle kehren wir im Abschnitt Entwickeln zur Seite Projekte zurück. Dort sollte neben jedem Modellnamen jetzt der rote Text „Konfiguration für Verwendung erforderlich“ angezeigt werden.
Wählen Sie neben jedem Modell Konfigurieren aus. Wir prüfen, ob der Projektname und die Verbindungen, die dieses Modell verwenden darf, korrekt sind. Speichern Sie dann die Einstellungen.
Nachdem alle Modelle richtig konfiguriert wurden, werden die zuvor aufgetretenen roten Konfigurationsproblemmeldungen nicht mehr angezeigt.
Wenn Sie einem Nutzer in Looker die Berechtigung see_lookml
oder develop
für ein Modell gewähren, wird ihm diese Berechtigung für alle Modelle in diesem Projekt gewährt. Daher sollten Sie separate Projekte erstellen, wenn Sie die Berechtigung zum Anzeigen oder Entwickeln von LookML-Codes partitionieren möchten. Andernfalls sollten Sie einfach ein neues Modell erstellen. Modellberechtigungen reichen aus, um sicherzustellen, dass nur bestimmte Personen bestimmte Daten abfragen können.
Weitere Informationen zu Berechtigungen finden Sie in der Dokumentation zu Rollen.
3. Modellsätze erstellen
Nachdem Sie die Datenmodelle für jede Abteilung konfiguriert haben, fügen wir das entsprechende Modell für jede Abteilung den von uns erstellten Modellsätzen hinzu. Zum Erstellen neuer Modellsätze rufen Sie im Admin-Steuerfeld die Seite Rollen auf und wählen Neue Modellgruppe aus. Weitere Anleitungen zum Erstellen neuer Modellsätze finden Sie auf der Dokumentationsseite Rollen.
Sobald die neuen Modellsätze erstellt wurden, werden sie wie im folgenden Beispiel-Screenshot auf der Seite Rollen im Abschnitt Modellgruppen angezeigt:
4. Berechtigungssätze erstellen
Als Nächstes erstellen wir mit den soeben erstellten Modellsätzen Berechtigungssätze. Wie bereits bei der Einrichtung des Szenarios erwähnt, möchten wir vier Berechtigungsebenen verwenden, die den vier hierarchischen Ebenen im Organigramm entsprechen, und höhere Ebenen sollten die Berechtigungen für die nachfolgenden Ebenen enthalten. In unserem Szenario identifizieren wir die Berechtigungssätze wie folgt:
- Der CEO hat die Berechtigung Administrator.
- Für VPs gilt die Berechtigung Eingeschränkte Verwaltung.
- Administratoren haben die Berechtigung Herunterladen und freigeben.
- Für Standardmitarbeiter ist die Berechtigung Anzeigen und Entdecken festgelegt.
Um neue Berechtigungssätze zu erstellen, rufen Sie im Admin-Steuerfeld die Seite Rollen auf und wählen Neuer Berechtigungssatz aus. Für jede Berechtigungsstufe wählen wir die entsprechenden Berechtigungen aus. Im Allgemeinen sollten sich Berechtigungssätze so wenig wie möglich überschneiden, wobei jeder Satz nur die spezifischen Berechtigungen enthält, die die Benutzer mit diesem Berechtigungssatz haben sollen. Dies liegt daran, dass wir einigen Nutzern mehrere Berechtigungssätze geben werden und wir genau wissen möchten, was jeder Berechtigungssatz zulässt. Aufgrund der Baumstruktur ist jedoch häufig eine gewisse Überschneidung erforderlich.
In unserem Beispiel soll die Berechtigung Ansehen und Entdecken festgelegt sein, damit Nutzer Inhalte ansehen, Fragen stellen und nützliche Kacheln speichern können. Daher erteilen wir ihnen Berechtigungen für das Anzeigen von Inhalten (z. B. see_looks
und see_user_dashboards
), die Berechtigungen explore
und save_content
. Die wichtigsten Ausnahmen hier sind see_lookml
, die wir möglicherweise nur für Entwickler benötigen, und see_sql
, die wir für diejenigen reservieren, die SQL verstehen und die Datenbankstruktur ansehen können. Alle diese Berechtigungen befinden sich ausschließlich im access_data
-Zweig. Es werden keine der see
-Berechtigungen unten in der Baumstruktur gewährt, da es sich um Administratorberechtigungen handelt.
Für den Berechtigungssatz Herunterladen und freigeben fügen wir die Berechtigungen zum Herunterladen, Planen, Freigeben und Erstellen öffentlicher Looks (dadurch die Freigabe von Looks für Nicht-Looker-Nutzer ermöglicht) sowie see_schedules
hinzu (da sie Zeitpläne erstellen können, ist es logisch, dass sie diese auch im Admin-Steuerfeld ansehen können).
Die einzigen Felder, die bei der Konfiguration der Berechtigungssätze Anzeigen und Entdecken und Herunterladen und freigeben ausgewählt wurden, sind die übergeordneten Berechtigungen, die erforderlich sind, um die hinzugefügten untergeordneten Berechtigungen im Zweig access_data
auszuwählen. Da Nutzer mit der Berechtigung Herunterladen und freigeben auch die Berechtigung Anzeigen und Entdecken haben, ist es daher nicht erforderlich, Berechtigungen wie see_lookml_dashboards
, see_user_dashboards
und explore
in die Berechtigung Herunterladen und freigeben aufzunehmen, da diese Berechtigungen keine untergeordneten Berechtigungen enthalten, die für die Berechtigung Herunterladen und freigeben erforderlich sind.
Schließlich fügen wir für den Berechtigungssatz Eingeschränkte Administratorrechte die meisten Administratorberechtigungen am unteren Rand der Baumstruktur hinzu, mit Ausnahme der Berechtigungen manage_models
und sudo
, die der CEO nur für sich selbst möchte. Das sieht so aus:
Anschließend enthalten die Berechtigungssätze die folgenden Berechtigungen:
- Administrator: Der Berechtigungssatz Administrator, der dem CEO unseres Beispielunternehmens vorbehalten ist, umfasst alle Berechtigungen.
- Eingeschränkte Administratoren: Diese Berechtigung umfasst die Berechtigungen
create_prefetches
,login_special_email
,manage_homepage
,manage_spaces
,see_alerts
,see_datagroups
,see_logs
,see_pdts
,see_queries
,see_users
undupdate_datagroups
. - Herunterladen und freigeben: Die Berechtigung Herunterladen und freigeben umfasst die Berechtigungen
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
undsend_to_sftp
. - Anzeigen und explorieren: Der Berechtigungssatz Anzeigen und Entdecken umfasst die Berechtigungen
access_data
,create_table_calculations
,explore
,save_content
,see_drill_overlay
,see_lookml_dashboards
,see_looks
undsee_user_dashboards
.
Sie können die Berechtigungen eines bestehenden Berechtigungssatzes einsehen, indem Sie auf der Seite Rollen den Bereich Berechtigungssätze aufrufen.
5. Gruppen erstellen
Der nächste Schritt besteht darin, die Gruppen zu erstellen und die Nutzer in Buckets zu verschieben. Wir werden in jeder Abteilung Gruppen sowohl für Standardmitarbeiter als auch für Manager erstellen, da diese letztendlich den verschiedenen Rollen entsprechen werden, die wir später erstellen. VPs befinden sich in einer eigenen Gruppe und der CEO benötigt keine Gruppe. Wenn Sie fertig sind, sollten auf der Seite Gruppen die folgenden Gruppen und ihre zugehörigen Gruppen-IDs aufgeführt sein, die automatisch von Looker generiert werden. Beispiel:
ID | Name |
---|---|
1 | Alle Nutzer |
3 | Finanzen |
4 | Vertrieb |
5 | Produkt |
7 | Sales Manager |
8 | Produktmanager |
9 | Finanzmanager |
10 | VPs |
Nachdem Sie die Gruppen erstellt haben, müssen Sie ihnen Nutzer hinzufügen. Eine Anleitung zum Hinzufügen von Nutzern zu Gruppen finden Sie auf der Dokumentationsseite Gruppen.
Wenn Sie Nutzer zu den von uns erstellten Gruppen hinzufügen, denken Sie daran, dass aufgrund der Struktur von Berechtigungen die Gruppen der höheren Ebene möglicherweise zu den Gruppen niedrigerer Ebenen gehören. Ein Beispiel: Die Vice Presidents sollen in der Gruppe Finanzen, aber nicht die Vertriebsmanager in der Gruppe Produkt. Ein effizienter Ansatz besteht darin, zunächst Nutzer zu den höherrangigen Gruppen (z. B. VPs) hinzuzufügen, damit wir sie als Gruppe zu den niedrigeren Ebenen hinzufügen können.
6. Rollen erstellen
Nachdem wir unsere Modellsätze, Berechtigungssätze und Gruppen erstellt haben, können wir sie alle mithilfe von Rollen zusammenfassen. Jede Rolle hat einen einzigen Berechtigungssatz und einen einzelnen Modellsatz und kann eine oder mehrere Gruppen enthalten. Da Rollen einen Modellsatz enthalten müssen, erstellen wir für jede Abteilung wieder Rollen für Standardmitarbeiter und für Manager.
- Standardrollen: Standardrollen enthalten die Berechtigungen Ansehen und Entdecken sowie den entsprechenden Modellsatz. Weisen Sie den Standard- und Managergruppen für diese Abteilung sowie dem VP Standardrollen zu. Weisen Sie beispielsweise die Rolle Standard-Finanzen den Gruppen Finanzen und Finanzmanager sowie dem VP der Finanzabteilung zu.
- Manager-Rollen:Für Manager-Rollen ist die Berechtigung Herunterladen und freigeben sowie das entsprechende Modell festgelegt. Diese Rollen sollten der Managergruppe der entsprechenden Abteilung und dem Vice President der Abteilung zugewiesen werden.
- Manager-Rollen:Für Manager-Rollen ist die Berechtigung Herunterladen und freigeben sowie das entsprechende Modell festgelegt. Diese Rollen sollten der Managergruppe der entsprechenden Abteilung und dem Vice President der Abteilung zugewiesen werden.
- VP-Rolle: Für diese Rolle werden die Berechtigungen Eingeschränkter Administrator und das Modell Alle festgelegt. Diese Rolle wird der Gruppe VPs zugewiesen.
7. Zugriff auf Inhalte bearbeiten
Der nächste Schritt besteht darin, die Zugriffsberechtigungen für die Ordner so zu organisieren, dass jede Gruppe Zugriff auf ihre eigenen (und nur auf ihre eigenen) Inhalte hat. Hier sehen Sie das Layout der Ordner in unserer Beispielinstanz. Rufen Sie dazu im Admin-Steuerfeld die Seite Zugriff auf Inhalte auf:
Der Zugriff auf Ordner folgt den Regeln der hierarchischen Übernahme. Weitere Informationen dazu finden Sie in unserer Dokumentation zu Zugriffsebenen und zur Zugriffssteuerung und Berechtigungsverwaltung.
Gemäß den Regeln für den Ordnerzugriff möchten wir allen Nutzern im Ordner Freigegeben die Zugriffsberechtigung Anzeigen gewähren. Jeder Gruppe erhält die Berechtigung Ansicht für die übergeordneten Ordner in der Baumansicht über den Ordnern, auf die die Gruppe Zugriff hat. Wenn wir also beim Durchlaufen der Baumstruktur nicht möchten, dass eine Gruppe einen Ordner sieht, wird diese Gruppe beim Gewähren des Zugriffs nicht mit einbezogen.
Wir können Gruppen in einem Ordner die Zugriffsebene Zugriff verwalten, Bearbeiten zuweisen. Sie haben die Möglichkeit, festzulegen, wer diesen Ordner sehen kann. In unserem Beispiel sollen nur der CEO und die VPs diese Berechtigungen haben. Alle anderen haben nur Lesezugriff auf die benötigten Ordner.
8. Datenzugriffsbeschränkungen mit Nutzerattributen hinzufügen
In diesem Abschnitt werden Methoden beschrieben, mit denen Sie verhindern können, dass bestimmte Nutzer auf bestimmte Datenzeilen oder -spalten aus einem Modell zugreifen, auf das sie Zugriff haben. Denken Sie daran, dass unser CEO möchte, dass Vertriebsmitarbeiter die Daten für ihre eigenen Aktivitäten einsehen können, nicht jedoch die Aktivitäten anderer. Vertriebsmanager sollten jedoch die Zahlen jedes Verkäufers anzeigen können. Dazu verwenden wir Nutzerattribute und den Parameter sql_always_where
.
Nutzerattribute erstellen
Zuerst erstellen wir ein neues Nutzerattribut namens access_level
, das für Nutzer ausgeblendet ist. So können wir Zugriffsebenen für die verschiedenen Gruppen definieren. Beim Erstellen des Nutzerattributs legen wir die folgenden Werte fest:
- Name:
access_level
- Label: Zugriffsebene
- Datentyp: String
- Nutzerzugriff: Bearbeiten
- Werte ausblenden: Nein
In unserem Beispiel lassen wir das Kästchen Standardwert festlegen deaktiviert.
Beim Erstellen des Felds werden drei Zugriffsebenen konfiguriert: Grundlegend, Premium und Uneingeschränkt. Wir weisen diese Ebenen jeweils den Gruppen „Standard“, „Manager“ und „VP“ zu. Dies erfolgt auf dem Tab Werte gruppieren im selben Abschnitt. Weitere Informationen finden Sie in der Dokumentation zu Nutzerattributen im Abschnitt Nutzergruppen Werte zuweisen.
Da die Reihenfolge dieser Regeln wichtig ist, möchten wir die höchsten Zugriffswerte oben in der Liste platzieren, um die niedrigeren Zugriffswerte weiter unten zu überschreiben. Dieses Verhalten wird auf der Dokumentationsseite Nutzerattribute näher erläutert.
Zeilendaten mit Nutzerattributen filtern
Wir gehen davon aus, dass bereits ein Explore mit allen Verkaufsinformationen erstellt wird. Wir überprüfen die Zugriffsebene des Nutzers, der den Explore abfragt. Lautet die Zugriffsebene Einfach, die wir allen unseren Standardverkäufern zugewiesen haben, filtern wir das Explore immer nach dem Namen des Benutzers, sodass nur die eigenen Zeilen jedes Vertriebsmitarbeiters zugänglich sind. Wenn die Zugriffsebene Premium oder Uneingeschränkt lautet, wird die Abfrage nicht gefiltert. Standardmäßig gibt es das Nutzerattribut Name. Das ist der Name des Looker-Nutzers. Der LookML-Code für das Explore sieht wie folgt aus:
explore: sales_info { sql_always_where: {% if {{_user_attributes['access_level']}} == "Basic" %} ${sales_info.name} = "{{_user_attributes['name']}}" % endif % ;; }
Spaltendaten mit Nutzerattributen filtern
Zu guter Letzt gibt es im Finanzmodell einige Spalten zu personenidentifizierbaren Informationen, die wir auch für einige unserer Nutzer ausblenden möchten. Dazu können wir die von uns erstellten Nutzerattribute zusammen mit der Anleitung zum Anwenden von Berechtigungen auf Datenbankebene in Looker auf der Dokumentationsseite Nutzerattribute verwenden, damit nur Nutzer mit der Zugriffsebene Vollständiger Zugriff die Felder für personenidentifizierbare Informationen sehen können.
Fertig! Wir haben die Einrichtung unserer Inhalts- und Datenzugriffskontrollen abgeschlossen und alle unsere Benutzer können Looker ausprobieren. Dadurch können wir sicher sein, dass diese Person nur die Inhalte sieht, die wir für sie freigegeben haben.