Best Practice: Ordner schützen Eine Schritt-für-Schritt-Anleitung für den Zugriff auf Inhalte

Diese Best Practices spiegeln die Empfehlungen eines interdisziplinären Teams erfahrener Looker wider. Diese Erkenntnisse basieren auf jahrelanger Erfahrung in der Zusammenarbeit mit Looker-Kunden – von der Implementierung bis hin zum langfristigen Erfolg. Die Best Practices sind so konzipiert, dass sie für die meisten Nutzer und Situationen funktionieren. Bei der Implementierung sollten Sie jedoch wie immer nach bestem Wissen und Gewissen vorgehen.

Auf dieser Seite finden Administratoren von Looker-Instanzen ein Beispiel für die Einrichtung von Inhaltszugriffssteuerungen. Wir gehen den Implementierungsprozess durch, beginnend mit einem neuen Projekt und weiter über Modelle, Modellsätze, Berechtigungssätze, Gruppen, Rollen und Nutzerattribute.

Zuerst eine Analogie, um die wichtigsten Looker-Funktionen in diesem Zusammenhang zu verstehen:

Ein Projekt ist wie ein Zuhause.

Ein Modell ist ein Raum im Zuhause, der mit bestimmten Inhalten gefüllt ist.

Ein Modellsatz besteht aus mehreren Räumen oder einem einzelnen Raum (Schlafzimmer, Küche).

Eine Berechtigungsgruppe ist eine Aktivitätscheckliste, in der festgelegt wird, was Personen in einem Raum tun dürfen (Essen, Spielen, Schlafen).

Mit einer Gruppe können Sie Personen mit gemeinsamen Merkmalen (Erwachsene, Kinder, Gäste) kombinieren.

Mit einer Rolle können Sie Gruppen von Personen ihre Aktivitätschecklisten in verschiedenen Gruppenräumen zuweisen.

Ein Nutzerattribut ist ein Schlüssel, mit dem bestimmte Gegenstände im Haus geöffnet werden können (Teekanne, Elektrowerkzeuge).

Szenario

Im Folgenden finden Sie ein Beispiel für ein Start-up mit Finanz-, Vertriebs- und Produktteams. Die CEO ist unsere einzige Administratorin und möchte, dass jedes Team nur die für sie relevanten Inhalte sieht. Die VPs der einzelnen Teams sollten jedoch Zugriff auf die Inhalte aller Teams haben. Sie möchte unterschiedliche Funktionszugriffe für Mitarbeiter, Manager und Vizepräsidenten.

  • Standardnutzer sollten in der Lage sein, Daten in ihren eigenen Modellen anzusehen und zu analysieren.
  • Manager sollten Standardzugriff haben und außerdem Inhalte herunterladen und planen können.
  • Vizepräsidenten sollten fast alle Berechtigungen haben, mit Ausnahme einiger, die nur für den CEO reserviert sind.

Der Geschäftsführer möchte, dass die Vertriebsmitarbeiter die Daten zu ihren eigenen Aktivitäten sehen können, aber nicht die individuellen Verkaufszahlen anderer Vertriebsmitarbeiter. Vertriebsleiter sollten jedoch die Zahlen aller Verkäufer sehen können. Außerdem gibt es einige Finanzfelder mit sensiblen Informationen, die für die Standardmitarbeiter, die dieses Modell verwenden, ausgeblendet werden sollen.

Hier ist das Organigramm:

Organisationsdiagramm für das Start-up in diesem Beispiel.

Dieses Diagramm zeigt die folgende Organisationsstruktur für unser Beispiel-Start-up:

  • CEO
    • VP Finance
      • Finanzmanager
        • Buchhalter
    • VP of Sales
      • Sales Manager West
        • Vertriebsmitarbeiter West
      • Sales Manager East
        • Vertriebsmitarbeiter (Osten)
    • VP für Produkte
      • Produktmanager
        • Engineer

Die Implementierung der gewünschten Zugriffssteuerungen umfasst die folgenden Schritte:

  1. Projekt erstellen:Ein Projekt ist die strukturelle Verknüpfung zwischen einer Datenbankverbindung und Datenmodellen.
  2. Modelle hinzufügen:Legen Sie fest, welche Daten für welche Nutzer sichtbar sein sollen.
  3. Modellsätze erstellen:Gruppieren Sie relevante Modelle.
  4. Berechtigungssätze erstellen:Hier können Sie explizit festlegen, welche Aktionen Nutzer innerhalb eines Modellsatzes ausführen können.
  5. Gruppen erstellen:Sie können ähnliche Nutzer in Gruppen zusammenfassen.
  6. Rollen erstellen:Erstellen Sie die Verbindungen zwischen Modellsätzen, Berechtigungssätzen und Gruppen.
  7. Zugriff auf Inhalte bearbeiten:Hier können Sie festlegen, welche Dashboards und Looks Nutzer über Ordner aufrufen können.
  8. Datenfilter hinzufügen:Sie können die Daten, auf die bestimmte Nutzer innerhalb eines Modells zugreifen können, weiter filtern.

1. Projekt erstellen

Zuerst 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. Andernfalls können Sie die Seite LookML-Projekte aufrufen, indem Sie in Looker im Bereich Entwickeln die Option Projekte und dann Neues LookML-Projekt auswählen. Eine ausführliche Anleitung zum Erstellen eines neuen Projekts finden Sie auf der Dokumentationsseite Modell generieren.

Auf der Seite Neues Projekt erstellen wir ein Projekt mit den folgenden Einstellungen:

  • Geben Sie im Bereich Name einen Namen für das Projekt ein.
  • Wählen Sie im Bereich Startpunkt die Option Modell aus Datenbankschema generieren aus.
  • Wählen Sie im Drop-down-Menü Verbindung den Namen der Datenbankverbindung aus.
  • Wählen Sie in diesem Beispiel im Bereich Ansichten erstellen aus die Option Alle Tabellen aus, damit 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.

Nach dem Erstellen eines Projekts werden Sie zum automatisch generierten LookML-Modell des Projekts weitergeleitet. Klicken Sie jetzt auf die Schaltfläche Git konfigurieren, um die Versionskontrolle für das Projekt einzurichten. Eine ausführliche Anleitung zum Einrichten der Versionskontrolle finden Sie auf der Seite Git-Verbindung einrichten und testen.

2. Modelle hinzufügen

Ein Datenmodell ist wie ein anpassbares Portal für die Datenbank. Mit den einzelnen Modellen werden unter Umständen unterschiedliche Daten für unterschiedliche Nutzer bereitgestellt. In unserem Beispiel benötigen unsere Vertriebsmitarbeiter andere Daten als unsere Entwickler. Daher fügen wir separate Modelle hinzu, um den einzelnen Nutzergruppen die entsprechenden Informationen aus der Datenbank zur Verfügung zu stellen.

In unserem LookML-Projekt fügen wir neue LookML-Modelldateien mit den Namen der gewünschten Modelle (finance, sales und product) hinzu. Achten Sie darauf, in jeder Modelldatei mindestens ein Explore zu definieren. So können wir das Modell beim Erstellen von Modellsätzen auswählen. Andernfalls werden sie nicht in der Auswahl angezeigt. Weitere Informationen zur Verwendung des Parameters explore in Ihrer Modelldatei finden Sie auf der Dokumentationsseite Informationen zu Modell- und Ansichtsdateien.

Nachdem wir die Modelle hinzugefügt haben, müssen wir sie noch konfigurieren. Um die Modelle zu konfigurieren, kehren wir zur Seite Projekte im Bereich Entwickeln zurück. Dort sollte jetzt bei jedem Modellname in roter Schrift „Konfiguration für die Verwendung erforderlich“ angezeigt werden.

Wählen Sie neben jedem Modell Konfigurieren aus. Wir prüfen, ob der Projektname und die Verbindungen, die wir für dieses Modell zulassen, korrekt sind, und speichern das Modell dann.

Auf der Seite „Modell konfigurieren“ können Sie den Modellnamen, das Projekt und die zulässigen Verbindungen für das Modell prüfen.

Nachdem alle Modelle richtig konfiguriert sind, werden die roten Meldungen zu Konfigurationsproblemen nicht mehr angezeigt.

Denken Sie daran, dass in Looker die Berechtigung see_lookml oder develop für ein Modell einem Nutzer für alle Modelle in diesem Projekt gewährt wird. Daher sollten Sie separate Projekte erstellen, wenn Sie die Berechtigung zum Ansehen oder Entwickeln von LookML partitionieren möchten. Andernfalls sollten Sie einfach ein neues Modell erstellen. Mithilfe von Modellberechtigungen lässt sich dafür sorgen, dass nur bestimmte Personen bestimmte Daten abfragen können.

Weitere Informationen zu Berechtigungen finden Sie in unserer Dokumentation zu Rollen.

3. Modellsätze erstellen

Nachdem die Datenmodelle für jede Abteilung konfiguriert wurden, fügen wir die entsprechenden Modelle für jede Abteilung den von uns erstellten Modellsätzen hinzu. Um neue Modellsätze zu erstellen, rufen wir im Bereich Verwaltung die Seite Rollen auf und wählen Neuer Modellsatz aus. Weitere Informationen zum Erstellen neuer Modellsätze finden Sie auf der Dokumentationsseite Rollen.

Sobald die neuen Modellsätze erstellt wurden, werden sie auf der Seite Rollen im Abschnitt Modellsätze angezeigt, wie im folgenden Beispielscreenshot:

Die Finanz-, Produkt- und Vertriebsmodelle entsprechen den Modellsätzen „Finanzen“, „Produkt“ und „Vertrieb“ auf der Seite „Modellsätze“.

4. Berechtigungssätze erstellen

Als Nächstes erstellen wir Berechtigungsgruppen mit den gerade erstellten Modellgruppen. Wie bereits bei der Einrichtung des Szenarios erwähnt, sollen vier Berechtigungsstufen den vier hierarchischen Ebenen im Organigramm entsprechen. Höhere Ebenen sollten die Berechtigungen der darunter liegenden Ebenen enthalten. In unserem Szenario definieren wir die Berechtigungssätze so:

  • Der CEO hat die Berechtigung Administrator.
  • VPs haben die Berechtigung Eingeschränkter Administrator.
  • Administratoren haben die Berechtigung Herunterladen und teilen.
  • Standardmitarbeiter haben die Berechtigung Ansehen und analysieren.

Um neue Berechtigungsgruppen zu erstellen, rufen wir im Bereich Verwaltung die Seite Rollen auf und wählen Neue Berechtigungsgruppe aus. Für jede Berechtigungsstufe wählen wir die entsprechenden Berechtigungen aus. Im Allgemeinen sollten sich Berechtigungssätze möglichst wenig überschneiden. Jeder Satz sollte nur die spezifischen Berechtigungen enthalten, die die Nutzer mit diesem Berechtigungssatz haben sollen. Das liegt daran, dass wir einigen Nutzern mehrere Berechtigungssätze zuweisen werden und genau wissen möchten, was mit jedem Berechtigungssatz erlaubt ist. Aufgrund der Baumstruktur ist jedoch oft eine gewisse Überschneidung erforderlich.

In unserem Beispiel soll die Berechtigung Anzeigen und untersuchen festgelegt werden, damit Nutzer Inhalte ansehen, Fragen stellen und nützliche Kacheln speichern können. Daher gewähren wir ihm die Berechtigungen zum Ansehen von Inhalten (z. B. see_looks und see_user_dashboards), die Berechtigung explore und die Berechtigung save_content. Die bemerkenswerten Ausnahmen hier sind see_lookml, die wir möglicherweise nur für Entwickler wünschen, und see_sql, die wir für diejenigen reservieren, die sowohl SQL verstehen als auch berechtigt sind, die Datenbankstruktur aufzurufen. Alle diese Berechtigungen sind ausschließlich für den Zweig access_data gültig. Wir gewähren keine der see-Berechtigungen unten im Stammbaum, da es sich um Administratorberechtigungen handelt.

Der Berechtigungssatz Herunterladen und freigeben wird die Berechtigung zum Herunterladen, Planen, Freigeben und Erstellen öffentlicher Looks hinzugefügt (wodurch Looks für Nutzer außerhalb von Looker freigegeben werden können) sowie see_schedules (da Nutzer Zeitpläne erstellen können, ist es logisch, dass sie sie auch im Admin-Bereich aufrufen können).

Die einzigen Felder, die bei der Konfiguration der Berechtigungssätze Ansehen und ansehen und Herunterladen und teilen ausgewählt wurden, sind die übergeordneten Berechtigungen, die zum Auswählen der hinzugefügten untergeordneten Berechtigungen unter dem Zweig access_data erforderlich sind. Da Nutzer mit der Berechtigungsgruppe Herunterladen und teilen auch die Berechtigungsgruppe Ansehen und erkunden haben, ist es nicht erforderlich, Berechtigungen wie see_lookml_dashboards, see_user_dashboards und explore in die Berechtigungsgruppe Herunterladen und teilen aufzunehmen. Diese Berechtigungen enthalten keine untergeordneten Berechtigungen, die für die Berechtigungsgruppe Herunterladen und teilen erforderlich sind.

Für die Berechtigungsgruppe Eingeschränkter Administrator fügen wir die meisten administrativen Berechtigungen unten im Stammbaum hinzu, mit Ausnahme der Berechtigungen manage_models und sudo, die die Geschäftsführerin nur für sich selbst haben möchte. Das sieht so aus:

Nach Abschluss sollten die Berechtigungssätze die folgenden Berechtigungen enthalten:

  • Administrator: Der Berechtigungssatz Administrator, der dem CEO unseres Beispielunternehmens vorbehalten ist, umfasst alle Berechtigungen.
  • Eingeschränkte Administratorrechte: Der Berechtigungssatz Eingeschränkte Administratorrechte umfasst die Berechtigungen create_prefetches, login_special_email, manage_homepage, manage_spaces, see_alerts, see_datagroups, see_logs, see_pdts, see_queries, see_users und update_datagroups.
  • Herunterladen und teilen: Die Berechtigungsgruppe Herunterladen und teilen 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 und send_to_sftp.
  • Anzeigen und analysieren: Die Berechtigungsgruppe Anzeigen und analysieren umfasst die Berechtigungen access_data, create_table_calculations, explore, save_content, see_drill_overlay, see_lookml_dashboards, see_looks und see_user_dashboards.

Die Berechtigungen, die zu einem vorhandenen Berechtigungssatz gehören, finden Sie auf der Seite Rollen im Bereich Berechtigungssätze.

5. Gruppen erstellen

Im nächsten Schritt erstellen wir die Gruppen und ordnen die Nutzer zu. Wir erstellen Gruppen sowohl für Mitarbeiter als auch für Manager in jeder Abteilung, da diese später den verschiedenen Rollen entsprechen, die wir später erstellen. Die Vizepräsidenten 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 entsprechenden 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 wir die Gruppen erstellt haben, müssen wir ihnen Nutzer hinzufügen. Eine Anleitung zum Hinzufügen von Nutzern zu Gruppen finden Sie auf der Dokumentationsseite Google Groups.

Denken Sie beim Hinzufügen von Nutzern zu den von uns erstellten Gruppen daran, dass aufgrund der Strukturierung der Berechtigungen die Gruppen der höheren Ebene in den Gruppen der niedrigeren Ebene enthalten sein können. Beispiel: Wir möchten, dass die VPs in der Gruppe Finanzen, aber nicht die Vertriebsmanager in der Gruppe Produkt sind. Eine effiziente Methode ist, zuerst Nutzer zu den Gruppen der höheren Ebene hinzuzufügen (z. B. VPs), damit wir sie den niedrigeren Ebenen als Gruppe hinzufügen können.

6. Rollen erstellen

Nachdem wir unsere Modellsätze, Berechtigungssätze und Gruppen eingerichtet haben, können wir sie mithilfe von Rollen zusammenführen. Jede Rolle hat einen einzelnen Berechtigungssatz und einen einzelnen Modellsatz und kann eine oder mehrere Gruppen umfassen. Da Rollen einen Modellsatz enthalten müssen, erstellen wir wieder Rollen für jede Abteilung, sowohl für Mitarbeiter als auch für Manager.

  • Standardrollen: Standardrollen umfassen die Berechtigungsgruppe Anzeigen und Explores sowie die entsprechende Modellgruppe. Weisen Sie den Standard- und Verwaltungsgruppen für diese Abteilung und dem Vizepräsidenten Standardrollen zu. Weisen Sie beispielsweise der Gruppe Finanzen, der Gruppe Finanzmanager und dem Vizepräsidenten für Finanzen die Rolle Standard-Finanzen zu.
  • Leiterrollen:Leiterrollen haben die Berechtigung Herunterladen und freigeben sowie den entsprechenden Modellsatz. Diese Rollen sollten der Verwaltungsgruppe der entsprechenden Abteilung und dem Vizepräsidenten der Abteilung zugewiesen werden.
  • Leiterrollen:Leiterrollen haben die Berechtigung Herunterladen und freigeben sowie den entsprechenden Modellsatz. Diese Rollen sollten der Verwaltungsgruppe der entsprechenden Abteilung und dem Vizepräsidenten der Abteilung zugewiesen werden.
  • VP-Rolle: Die VP-Rolle hat die Berechtigungsgruppe Eingeschränkter Administrator und das Modell Alle. Diese Rolle wird der Gruppe VPs zugewiesen.

7. Zugriff auf Inhalte bearbeiten

Im nächsten Schritt ordnen wir die Berechtigungen für den Ordnerzugriff so zu, dass jede Gruppe Zugriff auf ihre eigenen (und nur auf ihre eigenen) Inhalte hat. Hier sehen Sie das Layout der Ordner in unserer Beispielinstanz. Sie können es aufrufen, indem Sie im Admin-Bereich die Seite Zugriff auf Inhalte aufrufen:

Der Ordner „Gemeinsam“ enthält die Ordner „Finanzen“, „Produkt“ und „Vertrieb“, die wiederum Ordner für die jeweiligen Abteilungen enthalten.

Der Zugriff auf Ordner folgt den Regeln der hierarchischen Vererbung. Weitere Informationen dazu finden Sie in unseren Dokumentationen zu Zugriffsebenen und zur Zugriffssteuerung und Berechtigungsverwaltung.

Gemäß den Regeln für den Ordnerzugriff möchten wir allen Nutzern im Ordner Gemeinsam Lesezugriff Anzeigen gewähren. Wir gewähren jeder Gruppe Lesezugriff auf die übergeordneten Ordner im Verzeichnis über den Ordnern, auf die die Gruppe Zugriff haben soll. Wenn wir also den Baum nach unten durchlaufen und nicht möchten, dass eine Gruppe einen Ordner sehen kann, schließen wir diese Gruppe beim Gewähren des Zugriffs aus.

Wir können die Zugriffsebene Zugriff verwalten, Bearbeiten für Gruppen in einem Ordner festlegen, für den wir festlegen möchten, wer ihn sehen darf. In unserem Beispiel sollen nur der CEO und die VPs diese Berechtigungen haben. Alle anderen Nutzer erhalten nur Lesezugriff auf die benötigten Ordner.

8. Einschränkungen für den Datenzugriff mit Nutzerattributen hinzufügen

In diesem Abschnitt werden Methoden beschrieben, mit denen Sie verhindern können, dass bestimmte Nutzer auf bestimmte Zeilen oder Spalten von Daten in einem Modell zugreifen, auf das sie Zugriff haben. Denken Sie daran, dass unser CEO möchte, dass die Vertriebsmitarbeiter die Daten zu ihren eigenen Aktivitäten sehen können, aber nicht die Aktivitäten anderer. Vertriebsleiter sollten jedoch die Zahlen aller Verkäufer sehen 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 leer.

Beim Erstellen des Felds konfigurieren wir drei Zugriffsebenen: Basic, Premium und Full. Wir weisen diese Ebenen den Gruppen „Standard“, „Manager“ und „VP“ zu. Das geht im selben Bereich auf dem Tab Werte gruppieren. Weitere Informationen finden Sie in der Dokumentation zu Nutzerattributen im Abschnitt Nutzergruppen Werte zuweisen.

Da die Reihenfolge dieser Regeln wichtig ist, sollten die höchsten Zugriffswerte oben in der Liste stehen, um die niedrigeren Zugriffswerte unten zu überschreiben. Weitere Informationen zu diesem Verhalten finden Sie auf der Dokumentationsseite Nutzerattribute.

Zeilendaten mit Benutzerattributen filtern

Angenommen, es wird bereits ein Explore mit allen Verkaufsinformationen erstellt. Wir prüfen die Zugriffsebene des Nutzers, der die explorative Datenanalyse abfragt. Wenn die Zugriffsebene Standard ist (die wir allen unseren Standardverkäufern zugewiesen haben), wird die explorative Datenanalyse immer nach dem Namen des Nutzers gefiltert, sodass nur die Zeilen der einzelnen Verkäufer für ihn zugänglich sind. Wenn die Zugriffsebene Premium oder Vollständig ist, wird die Abfrage nicht herausgefiltert. Standardmäßig gibt es das Nutzerattribut Name, das den Namen des Looker-Nutzers enthält. Die LookML für die Explore sieht so aus:

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

Spaltendaten mithilfe von Benutzerattributen filtern

Außerdem gibt es im Finanzmodell einige Spalten mit personenidentifizierbaren Informationen, die wir für einige Nutzer ebenfalls ausblenden möchten. Dazu können wir die von uns erstellten Nutzerattribute und die Anleitung zum Anwenden von Berechtigungen auf Datenbankebene in Looker auf der Seite Nutzerattribute verwenden, um nur Nutzern mit der Zugriffsebene Vollständig die Möglichkeit zu geben, die Felder mit personenidentifizierbaren Informationen zu sehen.

Das war's auch schon. Wir haben die Einstellungen für den Inhalts- und Datenzugriff eingerichtet. Alle Nutzer können Looker jetzt kostenlos ausprobieren. So können wir sicher sein, dass sie nur die Inhalte sehen, die wir ihnen erlaubt haben.