Amazon QuickSight ist ein vollständig verwalteter, Cloud-nativer Business Intelligence (BI)-Dienst, der es einfach macht, eine Verbindung zu Ihren Daten herzustellen, interaktive Dashboards zu erstellen und diese mit Zehntausenden von Benutzern zu teilen, entweder innerhalb von QuickSight selbst oder eingebettet in Software als Service-Apps (SaaS).
QuickSight Enterprise Edition hat kürzlich die Sicherheit auf Zeilenebene (RLS) mithilfe von Tags hinzugefügt, eine neue Funktion, die es Entwicklern ermöglicht, ein einziges Dashboard mit Zehntausenden von Benutzern zu teilen und gleichzeitig sicherzustellen, dass jeder Benutzer nur bestimmte Daten sehen und darauf zugreifen kann. Das heißt, wenn ein unabhängiger Softwareanbieter (ISV) seiner App ein in QuickSight eingebettetes Dashboard hinzufügt, muss er seine Endbenutzer nicht in QuickSight bereitstellen und kann einfach Tags einrichten, um Daten basierend auf dem Dashboard zu filtern serviert wird. Wenn ein ISV beispielsweise ein Dashboard einrichten möchte, das mit 20,000 Benutzern über 100 Kunden einer App geteilt werden soll, wobei alle Benutzer innerhalb eines Kunden Zugriff auf identische Daten haben, können Sie mit dieser neuen Funktion ein einziges Dashboard für teilen alle Benutzer, ohne die 20,000 Benutzer in QuickSight einrichten oder verwalten zu müssen.
Mithilfe von Tags erzwungenes RLS stellt sicher, dass jeder Endbenutzer nur die für ihn relevanten Daten sieht, während QuickSight automatisch skaliert, um die Parallelität der Benutzer zu erfüllen und sicherzustellen, dass jeder Endbenutzer eine konstant schnelle Leistung sieht. In diesem Beitrag schauen wir uns an, wie dies umgesetzt werden kann.
Lösungsüberblick
Um Dashboards ohne Benutzerbereitstellung einzubetten, verwenden wir die API Generieren Sie EmbedURLForAnonymousUser, das mit QuickSights funktioniert Preise für Sitzungskapazität. Mit dieser API bestimmt und verwaltet der Einbettungsserver (Logik in der SaaS-App) die Identität des Benutzers, dem das Dashboard angezeigt wird (im Gegensatz dazu, dass diese Identität in QuickSight bereitgestellt und verwaltet wird).
Das folgende Diagramm zeigt einen Beispielworkflow eingebetteter Dashboards, der Daten basierend darauf sichert, wer auf die Anwendung zugreift, indem er RLS mit Tags verwendet.
In diesem Fall verfügt ein ISV über eine SaaS-Anwendung, auf die zwei Endbenutzer zugreifen. Einer ist Manager, der andere Bauleiter. Beide Benutzer greifen auf dieselbe Anwendung und dasselbe in die Anwendung eingebettete QuickSight-Dashboard zu und werden nicht in QuickSight bereitgestellt. Wenn der Bauleiter auf das Dashboard zugreift, sieht er nur Daten zu seinem Standort, und wenn der Manager auf das Dashboard zugreift, sieht er Daten zu allen von ihm verwalteten Standorten.
Um dieses Verhalten zu erreichen, verwenden wir eine neue Funktion, die die Konfiguration der Sicherheit auf Zeilenebene mithilfe von Tags ermöglicht. Diese Methode zum Sichern von Daten auf eingebetteten Dashboards funktioniert nur, wenn Dashboards ohne Benutzerbereitstellung eingebettet sind (auch „ anonyme Einbettung). Der Prozess umfasst zwei Schritte:
- Richten Sie Tag-Schlüssel für die Spalten der Datensätze ein, die zum Erstellen des Dashboards verwendet werden.
- Legen Sie Werte für die Tag-Schlüssel zur Laufzeit fest, wenn Sie das Dashboard anonym einbetten.
Richten Sie Tag-Schlüssel für Spalten in den Datensätzen ein, die zum Erstellen des Dashboards verwendet werden
ISVs oder Entwickler können mithilfe von Spalten für die Datensätze festlegen CreateDataset
or UpdateDataset
APIs wie folgt:
Im vorherigen Beispielcode: row-level-permission-tag-configuration
ist das Element, mit dem Sie Tag-Schlüssel für die Spalten eines Datensatzes definieren können. Für jedes Tag können Sie die folgenden optionalen Elemente definieren:
- TagMultiValueDelimiter – Wenn diese Option für eine Spalte festgelegt ist, können Sie zur Laufzeit mehr als einen Wert an das Tag übergeben. Die Werte werden durch die für diese Option festgelegte Zeichenfolge begrenzt. In diesem Beispiel wird ein Komma als Trennzeichenfolge festgelegt.
- MatchAllValue – Wenn diese Option für eine Spalte festgelegt ist, können Sie alle Werte einer Spalte zur Laufzeit übergeben, und die Werte werden durch die für diese Option festgelegte Zeichenfolge dargestellt. In diesem Beispiel wird ein Sternchen als Zeichenfolge für alle Übereinstimmungen festgelegt.
Nachdem wir unsere Tags definiert haben, können wir diese Regeln mithilfe von aktivieren oder deaktivieren Status
Element der API. In diesem Fall wird der Wert auf gesetzt ENABLED
. Um die Regeln zu deaktivieren, lautet der Wert DISABLED
. Nachdem die Tags aktiviert wurden, können wir zur Laufzeit Werte an die Tags übergeben, um die angezeigten Daten basierend darauf zu schützen, wer auf das Dashboard zugreift.
Jeder Datensatz kann bis zu 50 Tag-Schlüssel haben.
Wir erhalten die folgende Antwort für die CreateDataset
or UpdateDataset
API:
Ermöglichen Sie Autoren beim Verfassen von Analysen den Zugriff auf Daten, die durch Tag-Schlüssel geschützt sind
Nachdem die Tag-Schlüssel für den Datensatz festgelegt und aktiviert wurden, ist er gesichert. Autoren, die diesen Datensatz zum Erstellen eines Dashboards verwenden, sehen keine Daten. Beim Erstellen eines Dashboards müssen ihnen Berechtigungen zum Anzeigen aller Daten im Datensatz erteilt werden. Um QuickSight-Autoren die Berechtigung zu erteilen, Daten im Datensatz anzuzeigen, erstellen Sie eine Berechtigungsdatei oder einen Regeldatensatz. Weitere Informationen finden Sie unter Erstellen von Datensatzregeln für die Sicherheit auf Zeilenebene. Im Folgenden finden Sie ein Beispiel für einen Regeldatensatz.
UserName | Spaltenname_1 | Spaltenname_2 | Spaltenname_3 |
Administrator/Beispielautor |
In diesem Beispieldatensatz ist der Benutzername des Autors in der Spalte „Benutzername“ aufgeführt. Die anderen drei Spalten sind die Spalten aus dem Datensatz, für den wir Tag-Schlüssel festlegen. Die Werte für diese Spalten bleiben für den Autor, der dieser Tabelle hinzugefügt wurde, leer. Dadurch kann der Autor beim Verfassen von Analysen alle Daten in diesen Spalten ohne Einschränkung sehen.
Legen Sie beim Einbetten des Dashboards zur Laufzeit Werte für die Tag-Schlüssel fest
Nachdem die Tag-Schlüssel für die Spalten der Datensätze festgelegt wurden, legen Entwickler beim Einbetten des Dashboards zur Laufzeit Werte für die Schlüssel fest. Entwickler rufen die API auf GenerateDashboardEmbedURLForAnonymousUser
um das Dashboard einzubetten und Werte an die Tag-Schlüssel im Element zu übergeben SessionTags
, wie im folgenden Beispielcode gezeigt:
Da diese Funktion Daten für Benutzer schützt, die nicht in QuickSight bereitgestellt werden, ist der API-Aufruf für AnonymousUser
nur und daher funktioniert diese Funktion nur mit der API GenerateDashboardEmbedURLForAnonymousUser
.
Der vorangehende Beispielcode besteht aus den folgenden Komponenten:
- Aussichten für
tag_name_1
, legen Sie zwei Werte fest (value1
undvalue2
) Verwendung derTagMultiValueDelimiter
wird beim Festlegen der Tag-Schlüssel definiert (in diesem Fall ein Komma). - Aussichten für
tag_name_2
, legen Sie einen Wert als Sternchen fest. Dadurch können diesem Tag-Schlüssel alle Werte für diese Spalte zugewiesen werden, da wir Sternchen als definiert habenMatchAllValue
wenn zuvor ein Tag-Schlüssel für die Spalte festgelegt wurde. - Aussichten für
tag_name_3
, Sie legen einen Wert fest (value3
).
API-Antwortdefinition
Die Antwort der API hat die EmbedURL
, Status
und RequestID
. Sie können diese URL in Ihre HTML-Seite einbetten. Die Daten in diesem Dashboard werden basierend auf den Werten gesichert, die beim Aufruf der Einbettungs-API an die Tag-Schlüssel übergeben werden GenerateDashboardEmbedURLForAnonymousUser
:
- EmbedUrl (Zeichenfolge) – Eine Einweg-URL, die Sie in Ihre serverseitige Webseite einfügen können, um Ihr Dashboard einzubetten. Diese URL ist 5 Minuten lang gültig. Die API-Operation stellt der URL eine zur Verfügung
auth_code
Wert, der eine (und nur eine) Anmeldung bei einer Benutzersitzung ermöglicht, die bis zu 10 Stunden gültig ist. Diese URL rendert das Dashboard mit angewendeten RLS-Regeln basierend auf den für die RLS-Tag-Schlüssel festgelegten Werten. - Status (Ganzzahl) – Der HTTP-Status der Anfrage.
- RequestId (Zeichenfolge) – Die AWS-Anfrage-ID für diesen Vorgang.
Feingranulare Zugangskontrolle
Durch die Verwendung von Dynamic können Sie eine differenzierte Zugriffskontrolle erreichen AWS Identity and Access Management and (IAM)-Richtliniengenerierung. Weitere Informationen finden Sie unter Isolieren von SaaS-Mandanten mit dynamisch generierten IAM-Richtlinien. Bei Verwendung der GenerateEmbedUrlForAnonymousUser
API zum Einbetten müssen Sie in der IAM-Richtlinie zwei Ressourcentypen erwähnen: die Namespace-ARNs, zu denen Ihre anonymen Benutzer virtuell gehören, und die Dashboard-ARNs, die in der verwendet werden können AuthorizedResourceArns
Eingabeparameterwert. Die mit dieser API generierten Sitzungen können auf die autorisierten und mit dem Namespace freigegebenen Ressourcen (Dashboards) zugreifen.
Da anonyme Benutzer Teil eines Namespace sind, können sie auf alle mit dem Namespace freigegebenen Dashboards zugreifen, unabhängig davon, ob sie explizit über übergeben werden AuthorizedResourceArns
Parameters.
Damit die Anruferidentität eine URL für jeden Benutzer und jedes Dashboard generieren kann, muss die Resource
Der Block der Richtlinie kann festgelegt werden *
. Damit die Anruferidentität eine URL für jeden anonymen Benutzer in einem bestimmten Namespace (z. B Tenant1
), Die Resource
Ein Teil der Richtlinie kann festgelegt werden arn:aws:quicksight:us-east-1:<YOUR_AWS_ACCOUNT_ID>:namespace/Tenant1
. Dies gilt auch für die Dashboard-ID. Für die dynamische Richtliniengenerierung können Sie auch Platzhalter für den Namensraum und die Benutzer verwenden.
Der folgende Code ist ein Beispiel für eine IAM-Richtlinie:
Anwendungsfall
OkTank ist ein ISV im Gesundheitsbereich. Sie verfügen über eine SaaS-Anwendung, die von verschiedenen Krankenhäusern in verschiedenen Regionen des Landes zur Verwaltung ihrer Einnahmen verwendet wird. OkTank hat Tausende von Mitarbeitern im Gesundheitswesen, die auf ihre Anwendung zugreifen, und eingebettete Vorgänge im Zusammenhang mit ihrem Unternehmen in ein QuickSight-Dashboard in ihrer Anwendung. OkTank möchte seine Benutzer in QuickSight nicht separat verwalten und Daten basierend darauf sichern, welcher Benutzer aus welchem Krankenhaus auf seine Anwendung zugreift. OkTank sichert die Daten auf den Dashboards zur Laufzeit durch Sicherheit auf Zeilenebene mithilfe von Tags.
OkTank verfügt über Krankenhäuser (North Hospital, South Hospital und Downtown Hospital) in den Regionen Zentral, Ost, Süd und West.
In diesem Beispiel greifen die folgenden Benutzer auf die Anwendung von OkTank und das eingebettete Dashboard zu. Für jeden Benutzer gelten bestimmte Einschränkungsregeln, die festlegen, auf welche Daten er in den Dashboards zugreifen kann. PowerUser
ist ein Superuser, der die Daten aller Krankenhäuser und Regionen sehen kann.
Benutzer der OkTank-Anwendung | Krankenhaus | Region |
NorthUser | Krankenhaus Nord | Mitte und Osten |
NordAdmin | Krankenhaus Nord | Alle Regionen |
SüdBenutzer | Krankenhaus Süd | Süd |
SüdAdmin | Krankenhaus Süd | Alle Regionen |
Poweruser | Alle Krankenhäuser | Alle Regionen |
Keiner dieser Benutzer wurde in QuickSight bereitgestellt. OkTank verwaltet diese Benutzer in seiner eigenen Anwendung und weiß daher, zu welcher Region und welchem Krankenhaus jeder Benutzer gehört. Wenn einer dieser Benutzer auf das eingebettete QuickSight-Dashboard in der Anwendung zugreift, muss OkTank die Daten auf dem Dashboard sichern, sodass Benutzer nur die Daten für ihre Region und ihr Krankenhaus sehen können.
Zunächst erstellte OkTank Tag-Schlüssel für den Datensatz, den sie für das Dashboard verwenden. In ihrem UpdateDataset
API-Aufruf, der RowLevelPermissionTagConfiguration
Das Element im Datensatz lautet wie folgt:
Zweitens zur Laufzeit beim Einbetten des Dashboards über GenerateDashboardEmbedURLForAnonymousUser
API, sie legen fest SessionTags
für jeden Benutzer.
SessionTags
für NorthUser
der GenerateDashboardEmbedURLForAnonymousUser
API-Aufrufe lauten wie folgt:
SessionTags
für NorthAdmin
sind wie folgt:
SessionTags
für SouthUser
sind wie folgt:
SessionTags
für SouthAdmin
sind wie folgt:
SessionTags
für PowerUser
sind wie folgt:
Der folgende Screenshot zeigt was SouthUser
sieht im Zusammenhang mit dem South Hospital in der Region Süd.
Der folgende Screenshot zeigt was SouthAdmin
Informationen zum South Hospital in allen Regionen.
Der folgende Screenshot zeigt was PowerUser
betrifft alle Krankenhäuser in allen Regionen.
Basierend auf Sitzungs-Tags hat OkTank die Daten in den eingebetteten Dashboards so gesichert, dass jeder Benutzer nur bestimmte Daten basierend auf seinem Zugriff sieht. Du kannst Greifen Sie auf das Dashboard zu als einer der Benutzer (indem Sie den Benutzer im Dropdown-Menü oben rechts ändern) und sehen Sie, wie sich die Daten basierend auf dem ausgewählten Benutzer ändern.
Insgesamt ist OkTank mit der Sicherheit auf Zeilenebene mithilfe von Tags in der Lage, ein überzeugendes Analyseerlebnis innerhalb seiner SaaS-Anwendung bereitzustellen und gleichzeitig sicherzustellen, dass jeder Benutzer nur die entsprechenden Daten sieht, ohne Benutzer in QuickSight bereitstellen und verwalten zu müssen. QuickSight bietet eine hoch skalierbare, sichere Analyseoption, die Sie innerhalb von Tagen statt Wochen oder Monaten einrichten und in der Produktion einführen können.
Zusammenfassung
Die Kombination aus der Einbettung eines Dashboards für Benutzer, die nicht in QuickSight bereitgestellt werden, und der Sicherheit auf Zeilenebene mithilfe von Tags ermöglicht es Entwicklern und ISVs, schnell und einfach anspruchsvolle, individuelle Analysen für ihre Anwendungsbenutzer einzurichten – alles ohne Infrastruktureinrichtung oder -verwaltung bei gleichzeitiger Skalierung für Millionen von Benutzern . Weitere Updates von Integrierte QuickSight-Analyse, Siehe Was ist neu im Amazon QuickSight-Benutzerhandbuch.
Über die Autoren
Raji Sivasubramaniam ist Specialist Solutions Architect bei AWS mit Schwerpunkt auf Analytics. Raji verfügt über 20 Jahre Erfahrung in der Entwicklung von End-to-End-Lösungen für Enterprise Data Management, Business Intelligence und Analytics für Fortune-500- und Fortune-100-Unternehmen auf der ganzen Welt. Sie verfügt über umfassende Erfahrung im Bereich integrierter Gesundheitsdaten und -analysen mit einer Vielzahl von Gesundheitsdatensätzen, einschließlich verwaltetem Markt, Arzt-Targeting und Patientenanalysen. In ihrer Freizeit geht Raji gerne wandern, Yoga machen und im Garten arbeiten.
Srikanth Baheti ist ein spezialisierter World Wide Sr. Solution Architect für Amazon QuickSight. Er begann seine Karriere als Berater und arbeitete für mehrere private und staatliche Organisationen. Später arbeitete er für PerkinElmer Health and Sciences & eResearch Technology Inc, wo er für das Design und die Entwicklung von High-Traffic-Webanwendungen, hochskalierbaren und wartbaren Datenpipelines für Berichtsplattformen mit AWS-Services und Serverless Computing verantwortlich war.
Kareem Syed-Mohammed ist Produktmanager bei Amazon QuickSight. Er konzentriert sich auf Embedded Analytics, APIs und Entwicklererfahrung. Vor QuickSight war er als PM für AWS Marketplace und Amazon Retail tätig. Kareem begann seine Karriere als Entwickler und dann als PM für Callcenter-Technologien, Local Expert und Ads für Expedia. Er arbeitete kurze Zeit als Berater bei McKinsey and Company.
- '
- "
- &
- 000
- 100
- 11
- Zugang
- Konto
- Action
- Siehe Werbung
- Alle
- Amazon
- Analytik
- Bienen
- APIs
- App
- Anwendung
- Anwendungen
- Apps
- Autoren
- AWS
- bauen
- Geschäft
- Business Intelligence
- rufen Sie uns an!
- Kapazität
- Karriere
- Code
- Kolonne
- Unternehmen
- Unternehmen
- Computing
- Berater
- Kunden
- Armaturenbrett
- technische Daten
- Datenmanagement
- Entwickler:in / Unternehmen
- Entwickler
- Innenstadt
- Mitarbeiter
- Unternehmen
- ERFAHRUNGEN
- FAST
- Merkmal
- der Regierung
- Gesundheit
- Gesundheitswesen
- hier
- High
- Wandern
- Krankenhaus
- Krankenhäuser
- Ultraschall
- HTTPS
- IAM
- Identitätsschutz
- Einschließlich
- Information
- Infrastruktur
- Intelligenz
- interaktive
- IT
- Wesentliche
- Tasten
- Niveau
- aus einer regionalen
- Making
- Management
- Markt
- Marktplatz
- Spiel
- Monat
- neue Funktion
- Norden
- Einkauf & Prozesse
- Option
- Andere
- Leistung
- Arzt
- Plattformen
- Datenschutzrichtlinien
- Werkzeuge
- privat
- Produkt
- Produktion
- Ressourcen
- Downloads
- Antwort
- Einzelhandel
- Einnahmen
- Rollen
- Ohne eine erfahrene Medienplanung zur Festlegung von Regeln und Strategien beschleunigt der programmatische Medieneinkauf einfach die Rate der verschwenderischen Ausgaben.
- SaaS
- Skalierung
- WISSENSCHAFTEN
- Sicherheitdienst
- sieht
- ausgewählt
- Serverlos
- Leistungen
- kompensieren
- Einstellung
- Teilen
- von Locals geführtes
- Short
- Seiten
- So
- Software
- Lösungen
- Süd
- Raumfahrt
- begonnen
- Erklärung
- Status
- Technologies
- Technologie
- Zeit
- Top
- der Verkehr
- Updates
- Nutzer
- Wert
- Netz
- Web Applikationen
- West
- WHO
- .
- Arbeitsablauf.
- Werk
- weltweit wie ausgehandelt und gekauft ausgeführt wird.
- Jahr
- Yoga