Amazon QuickSight is een volledig beheerde, cloud-native business intelligence (BI)-service waarmee u eenvoudig verbinding kunt maken met uw gegevens, interactieve dashboards kunt maken en deze kunt delen met tienduizenden gebruikers, hetzij binnen QuickSight zelf, hetzij ingebed in software als een service-apps (SaaS).
QuickSight Enterprise Edition heeft onlangs beveiliging op rijniveau (RLS) toegevoegd met behulp van tags, een nieuwe functie waarmee ontwikkelaars รฉรฉn dashboard kunnen delen met tienduizenden gebruikers, terwijl ervoor wordt gezorgd dat elke gebruiker alleen bepaalde gegevens kan zien en er toegang toe heeft. Dit betekent dat wanneer een onafhankelijke softwareleverancier (ISV) een in QuickSight ingebed dashboard aan zijn app toevoegt, zij hun eindgebruikers niet in QuickSight hoeven in te richten en eenvoudig tags kunnen instellen om gegevens te filteren op basis van wie het dashboard is. wordt geserveerd. Als een ISV bijvoorbeeld een dashboard wil opzetten dat moet worden gedeeld met 20,000 gebruikers verdeeld over 100 klanten van een app, waarbij alle gebruikers binnen een klant toegang hebben tot identieke gegevens, kunt u met deze nieuwe functie รฉรฉn dashboard delen voor alle gebruikers, zonder dat u de 20,000 gebruikers in QuickSight hoeft in te stellen of te beheren.
RLS, afgedwongen met behulp van tags, zorgt ervoor dat elke eindgebruiker alleen gegevens ziet die voor hem of haar relevant zijn, terwijl QuickSight automatisch schaalt om te voldoen aan de gelijktijdigheid van gebruikers om ervoor te zorgen dat elke eindgebruiker consistent snelle prestaties ziet. In dit bericht bekijken we hoe dit kan worden geรฏmplementeerd.
Overzicht oplossingen
Om dashboards te embedden zonder gebruikersinrichting, gebruiken we de API Genereer EmbedURL voor anonieme gebruiker, dat werkt met QuickSight's prijsstelling van sessiecapaciteit. Met deze API bepaalt en beheert de embedding server (logica in de SaaS-app) de identiteit van de gebruiker aan wie het dashboard wordt getoond (in tegenstelling tot dat deze identiteit binnen QuickSight wordt ingericht en beheerd).
Het volgende diagram toont een voorbeeldworkflow van ingebedde dashboards die gegevens beveiligen op basis van wie toegang heeft tot de applicatie met behulp van RLS met tags.
In dit geval beschikt een ISV over een SaaS-applicatie waartoe twee eindgebruikers toegang hebben. De รฉรฉn is manager en de ander is werftoezichter. Beide gebruikers hebben toegang tot dezelfde applicatie en hetzelfde QuickSight-dashboard dat is ingebed in de applicatie en ze zijn niet ingericht in QuickSight. Wanneer de sitesupervisor toegang krijgt tot het dashboard, ziet hij alleen gegevens die betrekking hebben op zijn site, en wanneer de manager het dashboard opent, ziet hij gegevens die betrekking hebben op alle sites die hij beheert.
Om dit gedrag te bereiken, gebruiken we een nieuwe functie waarmee de beveiliging op rijniveau kan worden geconfigureerd met behulp van tags. Deze methode voor het beveiligen van gegevens op ingebedde dashboards werkt alleen wanneer dashboards zijn ingesloten zonder gebruikersinrichting (ook wel anonieme inbedding). Het proces omvat twee stappen:
- Stel tagsleutels in voor de kolommen van de gegevenssets die worden gebruikt om het dashboard te bouwen.
- Stel waarden in voor de tagsleutels tijdens runtime wanneer u het dashboard anoniem insluit.
Stel tagsleutels in voor kolommen in de gegevenssets die worden gebruikt om het dashboard te bouwen
ISV's of ontwikkelaars kunnen kolommen instellen op de datasets met behulp van de CreateDataset
or UpdateDataset
API's als volgt:
In de voorgaande voorbeeldcode, row-level-permission-tag-configuration
is het element dat u kunt gebruiken om tagsleutels voor de kolommen van een gegevensset te definiรซren. Voor elke tag kunt u de volgende optionele items definiรซren:
- TagMultiValueDelimiter โ Als deze optie in een kolom is ingesteld, kunt u tijdens runtime meer dan รฉรฉn waarde aan de tag doorgeven. De waarden worden begrensd door de tekenreeks die voor deze optie is ingesteld. In dit voorbeeld wordt een komma ingesteld als scheidingstekenreeks.
- MatchAllWaarde โ Als deze optie op een kolom is ingesteld, kunt u tijdens runtime alle waarden van een kolom doorgeven. De waarden worden weergegeven door de tekenreeks die voor deze optie is ingesteld. In dit voorbeeld wordt een asterisk ingesteld als een match all-tekenreeks.
Nadat we onze tags hebben gedefinieerd, kunnen we deze regels in- of uitschakelen met behulp van de Status
onderdeel van de API. In dit geval wordt de waarde ingesteld op ENABLED
. Om de regels uit te schakelen, is de waarde DISABLED
. Nadat de tags zijn ingeschakeld, kunnen we tijdens runtime waarden doorgeven aan de tags om de weergegeven gegevens te beveiligen op basis van wie toegang heeft tot het dashboard.
Elke gegevensset kan maximaal 50 tagsleutels bevatten.
Wij ontvangen de volgende reactie op de CreateDataset
or UpdateDataset
API:
Geef auteurs toegang tot gegevens die zijn beschermd door tagsleutels tijdens het schrijven van analyses
Nadat tagssleutels zijn ingesteld en ingeschakeld op de gegevensset, is deze beveiligd. Auteurs die deze dataset gebruiken om een โโdashboard te schrijven, zien geen gegevens. Bij het ontwerpen van een dashboard moeten ze machtigingen krijgen om alle gegevens in de gegevensset te bekijken. Om QuickSight-auteurs toestemming te geven om gegevens in de gegevensset te bekijken, maakt u een machtigingsbestand of een regelsgegevensset. Voor meer informatie, zie Gegevenssetregels maken voor beveiliging op rijniveau. Hier volgt een voorbeeld van een gegevensset met regels.
UserName | kolom_naam_1 | kolom_naam_2 | kolom_naam_3 |
beheerder/voorbeeldauteur |
In deze voorbeeldgegevensset hebben we de gebruikersnaam van de auteur vermeld in de kolom Gebruikersnaam. De andere drie kolommen zijn de kolommen uit de dataset waarop we tagsleutels instellen. De waarden voor deze kolommen worden leeg gelaten voor de auteur die aan deze tabel is toegevoegd. Hierdoor kan de auteur alle gegevens in deze kolommen zonder enige beperking bekijken wanneer hij analyses maakt.
Stel waarden in voor de tagsleutels tijdens runtime bij het insluiten van het dashboard
Nadat de tagsleutels zijn ingesteld voor kolommen van de gegevenssets, stellen ontwikkelaars tijdens runtime waarden in voor de sleutels bij het insluiten van het dashboard. Ontwikkelaars noemen de API GenerateDashboardEmbedURLForAnonymousUser
om het dashboard in te sluiten en waarden door te geven aan de tagsleutels in het element SessionTags
, zoals weergegeven in de volgende voorbeeldcode:
Omdat deze functie gegevens beveiligt voor gebruikers die niet in QuickSight zijn ingericht, is de API-aanroep bedoeld AnonymousUser
only en daarom werkt deze functie alleen met de API GenerateDashboardEmbedURLForAnonymousUser
.
De voorgaande voorbeeldcode bevat de volgende componenten:
- Voor
tag_name_1
, stel je twee waarden in (value1
envalue2
) de ... gebruikenTagMultiValueDelimiter
gedefinieerd bij het instellen van de tagsleutels (in dit geval een komma). - Voor
tag_name_2
, stelt u รฉรฉn waarde in als een asterisk. Hierdoor kunnen aan deze tagsleutel alle waarden voor die kolom worden toegewezen, omdat we asterisk hebben gedefinieerd als deMatchAllValue
bij het eerder instellen van een tagsleutel op de kolom. - Voor
tag_name_3
, stelt u รฉรฉn waarde in (value3
).
API-antwoorddefinitie
Het antwoord van de API heeft de EmbedURL
, Status
en RequestID
. U kunt deze URL in uw HTML-pagina insluiten. Gegevens in dit dashboard worden beveiligd op basis van de waarden die worden doorgegeven aan de tagsleutels bij het aanroepen van de insluitings-API GenerateDashboardEmbedURLForAnonymousUser
:
- EmbedUrl (tekenreeks) โ Een URL voor eenmalig gebruik die u op uw server-side webpagina kunt plaatsen om uw dashboard in te sluiten. Deze URL is 5 minuten geldig. De API-bewerking levert de URL een
auth_code
waarde die รฉรฉn (en slechts รฉรฉn) aanmelding mogelijk maakt voor een gebruikerssessie die maximaal 10 uur geldig is. Deze URL geeft het dashboard weer waarop RLS-regels worden toegepast op basis van de waarden die zijn ingesteld voor de RLS-tagsleutels. - Status (geheel getal) โ De HTTP-status van het verzoek.
- AanvraagID (tekenreeks) โ De AWS-verzoek-ID voor deze bewerking.
Fijnmazige toegangscontrole
Door gebruik te maken van dynamic kunt u een fijnmazige toegangscontrole realiseren AWS Identiteits- en toegangsbeheer (IAM) beleidsgeneratie. Voor meer informatie, zie SaaS-tenants isoleren met dynamisch gegenereerd IAM-beleid. Bij gebruik van de GenerateEmbedUrlForAnonymousUser
API voor het insluiten, moet u twee resourcetypen vermelden in het IAM-beleid: de naamruimte ARN's waartoe uw anonieme gebruikers virtueel behoren, en de dashboard-ARN's die kunnen worden gebruikt in de AuthorizedResourceArns
parameterwaarde invoeren. De sessies die met deze API worden gegenereerd, hebben toegang tot de geautoriseerde bronnen en de bronnen (dashboards) die worden gedeeld met de naamruimte.
Omdat anonieme gebruikers deel uitmaken van een naamruimte, zijn alle dashboards die met de naamruimte worden gedeeld voor hen toegankelijk, ongeacht of ze expliciet worden doorgegeven via de AuthorizedResourceArns
parameter.
Om ervoor te zorgen dat de identiteit van de beller een URL kan genereren voor elke gebruiker en elk dashboard, wordt de Resource
blok van het beleid kan worden ingesteld *
. Om de identiteit van de beller toe te staan โโeen URL te genereren voor elke anonieme gebruiker in een specifieke naamruimte (zoals Tenant1
), De Resource
een deel van het beleid kan worden ingesteld arn:aws:quicksight:us-east-1:<YOUR_AWS_ACCOUNT_ID>:namespace/Tenant1
. Dit is hetzelfde voor de dashboard-ID. Voor het dynamisch genereren van beleid kunt u ook tijdelijke aanduidingen gebruiken voor de naamruimte en gebruikers.
De volgende code is een voorbeeld van IAM-beleid:
Gebruik geval
OkTank is een ISV in de gezondheidszorg. Ze hebben een SaaS-applicatie die door verschillende ziekenhuizen in verschillende regio's van het land wordt gebruikt om hun inkomsten te beheren. OkTank heeft duizenden gezondheidszorgmedewerkers toegang tot hun applicatie en heeft activiteiten met betrekking tot hun bedrijf ingebed in een QuickSight-dashboard in hun applicatie. OkTank wil hun gebruikers niet afzonderlijk in QuickSight beheren, maar wil gegevens beveiligen op basis van welke gebruiker vanuit welk ziekenhuis toegang heeft tot hun applicatie. OkTank beveiligt de gegevens op de dashboards tijdens runtime met behulp van beveiliging op rijniveau met behulp van tags.
OkTank heeft ziekenhuizen (North Hospital, South Hospital en Downtown Hospital) in de regio's Centraal, Oost, Zuid en West.
In dit voorbeeld hebben de volgende gebruikers toegang tot de OkTank-applicatie en het ingebedde dashboard. Elke gebruiker heeft een bepaald niveau aan beperkingsregels die bepalen tot welke gegevens hij toegang heeft in de dashboards. PowerUser
is een superuser die de gegevens van alle ziekenhuizen en regioโs kan inzien.
De gebruiker van de OkTank-applicatie | Ziekenhuis | Regio |
NoordGebruiker | Noord Ziekenhuis | Centraal en Oost |
NoordAdmin | Noord Ziekenhuis | Alle regio's |
ZuidGebruiker | Zuid-ziekenhuis | Zuiden |
ZuidAdmin | Zuid-ziekenhuis | Alle regio's |
poweruser | Alle ziekenhuizen | Alle regio's |
Geen van deze gebruikers is ingericht in QuickSight. OkTank beheert deze gebruikers in een eigen applicatie en weet daardoor tot welke regio en ziekenhuis elke gebruiker behoort. Wanneer een van deze gebruikers toegang krijgt tot het ingebedde QuickSight-dashboard in de applicatie, moet OkTank de gegevens op het dashboard beveiligen, zodat gebruikers alleen de gegevens voor hun regio en ziekenhuis kunnen zien.
Eerst heeft OkTank tagsleutels gemaakt voor de dataset die ze gebruiken om het dashboard aan te sturen. In hun UpdateDataset
API-oproep, de RowLevelPermissionTagConfiguration
element op de dataset is als volgt:
Ten tweede, tijdens runtime bij het insluiten van het dashboard via het GenerateDashboardEmbedURLForAnonymousUser
API, stellen ze in SessionTags
voor elke gebruiker.
SessionTags
For NorthUser
in de GenerateDashboardEmbedURLForAnonymousUser
API-aanroepen zijn als volgt:
SessionTags
For NorthAdmin
zijn als volgt:
SessionTags
For SouthUser
zijn als volgt:
SessionTags
For SouthAdmin
zijn als volgt:
SessionTags
For PowerUser
zijn als volgt:
De volgende schermafbeelding laat zien wat SouthUser
ziet met betrekking tot Ziekenhuis Zuid in de regio Zuid.
De volgende schermafbeelding laat zien wat SouthAdmin
ziet met betrekking tot Zuid-ziekenhuis in alle regio's.
De volgende schermafbeelding laat zien wat PowerUser
ziet betrekking hebbend op alle ziekenhuizen in alle regio's.
Op basis van sessietags heeft OkTank gegevens op de ingebedde dashboards beveiligd, zodat elke gebruiker alleen specifieke gegevens ziet op basis van zijn toegang. Jij kan toegang tot het dashboard als een van de gebruikers (door de gebruiker te wijzigen in het vervolgkeuzemenu rechtsboven) en zie hoe de gegevens veranderen op basis van de geselecteerde gebruiker.
Over het geheel genomen kan OkTank, met beveiliging op rijniveau met behulp van tags, een overtuigende analyse-ervaring bieden binnen hun SaaS-applicatie, terwijl ervoor wordt gezorgd dat elke gebruiker alleen de juiste gegevens ziet zonder gebruikers in QuickSight te hoeven inrichten en beheren. QuickSight biedt een zeer schaalbare, veilige analyseoptie die u binnen enkele dagen kunt instellen en uitrollen naar productie, in plaats van weken of maanden eerder.
Conclusie
De combinatie van het insluiten van een dashboard voor gebruikers die niet zijn ingericht in QuickSight en beveiliging op rijniveau met behulp van tags stelt ontwikkelaars en ISV's in staat om snel en eenvoudig geavanceerde, aangepaste analyses op te zetten voor hun applicatiegebruikers, allemaal zonder enige infrastructuuropstelling of -beheer, terwijl ze kunnen worden geschaald naar miljoenen gebruikers . Voor meer updates van Ingebouwde QuickSight-analyses, Zie Wat is er nieuw in de Amazon QuickSight-gebruikershandleiding.
Over de auteurs
Raji Sivasubramaniam is een Specialist Solutions Architect bij AWS, met de nadruk op Analytics. Raji heeft 20 jaar ervaring in het ontwerpen van end-to-end Enterprise Data Management-, Business Intelligence- en Analytics-oplossingen voor Fortune 500- en Fortune 100-bedrijven over de hele wereld. Ze heeft diepgaande ervaring met geรฏntegreerde gezondheidszorggegevens en -analyses met een grote verscheidenheid aan gezondheidszorgdatasets, waaronder beheerde markten, targeting op artsen en patiรซntanalyses. In haar vrije tijd houdt Raji van wandelen, yoga en tuinieren.
Srikanth Baheti is een gespecialiseerde World Wide Sr. Solution Architect voor Amazon QuickSight. Hij begon zijn carriรจre als adviseur en werkte voor meerdere particuliere en overheidsorganisaties. Later werkte hij voor PerkinElmer Health and Sciences & eResearch Technology Inc, waar hij verantwoordelijk was voor het ontwerpen en ontwikkelen van high-traffic webapplicaties, zeer schaalbare en onderhoudbare datapijplijnen voor rapportageplatforms met behulp van AWS-services en Serverless computing.
Kareem Syed-Mohammed is productmanager bij Amazon QuickSight. Hij richt zich op embedded analytics, API's en ervaring van ontwikkelaars. Voorafgaand aan QuickSight werkte hij als PM bij AWS Marketplace en Amazon Retail. Kareem begon zijn carriรจre als ontwikkelaar en vervolgens PM voor callcentertechnologieรซn, Local Expert en Ads voor Expedia. Hij werkte korte tijd als consultant bij McKinsey and Company.
- '
- "
- &
- 000
- 100
- 11
- toegang
- Account
- Actie
- advertenties
- Alles
- Amazone
- analytics
- api
- APIs
- gebruiken
- Aanvraag
- toepassingen
- apps
- auteurs
- AWS
- bouw
- bedrijfsdeskundigen
- business intelligence
- Bellen
- Inhoud
- Carriรจre
- code
- Kolom
- Bedrijven
- afstand
- computergebruik
- consultant
- Klanten
- dashboards
- gegevens
- gegevensbeheer
- Ontwikkelaar
- ontwikkelaars
- Downtown
- medewerkers
- Enterprise
- ervaring
- SNELLE
- Kenmerk
- Overheid
- Gezondheid
- gezondheidszorg
- hier
- Hoge
- wandelen
- Ziekenhuis
- ziekenhuizen
- Hoe
- HTTPS
- IAM
- Identiteit
- Inclusief
- informatie
- Infrastructuur
- Intelligentie
- interactieve
- IT
- sleutel
- toetsen
- Niveau
- lokaal
- maken
- management
- Markt
- markt
- Match
- maanden
- nieuwe functie
- noorden
- Operations
- Keuze
- Overige
- prestatie
- arts
- platforms
- beleidsmaatregelen
- energie
- privaat
- Product
- Productie
- hulpbron
- Resources
- antwoord
- <HR>Retail
- inkomsten
- Rollen
- reglement
- SaaS
- scaling
- WETENSCHAPPEN
- veiligheid
- ziet
- gekozen
- Serverless
- Diensten
- reeks
- het instellen van
- Delen
- gedeeld
- Bermuda's
- Locaties
- So
- Software
- Oplossingen
- Zuiden
- Tussenruimte
- gestart
- Statement
- Status
- Technologies
- Technologie
- niet de tijd of
- top
- verkeer
- updates
- gebruikers
- waarde
- web
- Webapplicaties
- West
- WIE
- binnen
- workflow
- Bedrijven
- wereld
- jaar
- Yoga