Amazon QuickSight este un serviciu de business intelligence (BI) complet gestionat, nativ din cloud, care facilitează conectarea la datele dvs., crearea tablourilor de bord interactive și partajarea acestora cu zeci de mii de utilizatori, fie în QuickSight, fie încorporat în software ca un aplicații de serviciu (SaaS).
QuickSight Enterprise Edition a adăugat recent securitate la nivel de rând (RLS) folosind etichete, o nouă caracteristică care permite dezvoltatorilor să partajeze un singur tablou de bord cu zeci de mii de utilizatori, asigurându-se în același timp că fiecare utilizator poate vedea și are acces doar la anumite date. Aceasta înseamnă că, atunci când un furnizor independent de software (ISV) adaugă un tablou de bord încorporat QuickSight în aplicația sa, nu trebuie să-și furnizeze utilizatorii finali în QuickSight și poate pur și simplu să configureze etichete pentru a filtra datele în funcție de cine este tabloul de bord. fiind servit la. De exemplu, dacă un ISV dorea să creeze un tablou de bord care urma să fie partajat cu 20,000 de utilizatori din 100 de clienți ai unei aplicații, toți utilizatorii dintr-un client având acces la date identice, această nouă caracteristică vă permite să partajați un singur tablou de bord pentru toți utilizatorii, fără a fi necesar să configurați sau să gestionați cei 20,000 de utilizatori din QuickSight.
RLS impus prin utilizarea etichetelor se asigură că fiecare utilizator final vede doar datele relevante pentru el, în timp ce QuickSight se scalează automat pentru a satisface concurența utilizatorilor pentru a se asigura că fiecare utilizator final vede performanță constantă rapidă. În această postare, ne uităm la modul în care acest lucru poate fi implementat.
Prezentare generală a soluțiilor
Pentru a încorpora tablouri de bord fără aprovizionarea utilizatorului, folosim API-ul GenerateEmbedURLForAnonymousUser, care funcționează cu QuickSight stabilirea prețurilor pentru capacitatea de sesiune. Cu acest API, serverul de încorporare (logica în aplicația SaaS) determină și gestionează identitatea utilizatorului căruia îi este afișat tabloul de bord (spre deosebire de faptul că această identitate este furnizată și gestionată în QuickSight).
Următoarea diagramă prezintă un exemplu de flux de lucru de tablouri de bord încorporate care securizează datele în funcție de cine accesează aplicația folosind RLS cu etichete.
În acest caz, un ISV are o aplicație SaaS care este accesată de doi utilizatori finali. Unul este manager, iar celălalt este supervizor de șantier. Ambii utilizatori accesează aceeași aplicație și același tablou de bord QuickSight încorporat în aplicație și nu sunt furnizați în QuickSight. Când supervizorul site-ului accesează tabloul de bord, văd numai date referitoare la site-ul său, iar când managerul accesează tabloul de bord, văd date referitoare la toate site-urile pe care le administrează.
Pentru a obține acest comportament, folosim o nouă caracteristică care permite configurarea securității la nivel de rând folosind etichete. Această metodă de securizare a datelor pe tablourile de bord încorporate funcționează numai atunci când tablourile de bord sunt încorporate fără furnizarea utilizatorului (numită și încorporare anonimă). Procesul include doi pași:
- Configurați cheile etichetelor pe coloanele seturi de date utilizate pentru a construi tabloul de bord.
- Setați valori pentru cheile de etichetă în timpul execuției atunci când încorporați tabloul de bord în mod anonim.
Configurați cheile etichetelor pe coloanele din seturile de date utilizate pentru a crea tabloul de bord
ISV-urile sau dezvoltatorii pot seta coloane pe seturile de date folosind CreateDataset
or UpdateDataset
API-uri după cum urmează:
În exemplul de cod precedent, row-level-permission-tag-configuration
este elementul pe care îl puteți utiliza pentru a defini cheile etichetelor pe coloanele unui set de date. Pentru fiecare etichetă, puteți defini următoarele elemente opționale:
- TagMultiValueDelimiter – Această opțiune, atunci când este setată pe o coloană, vă permite să transmiteți mai mult de o valoare etichetei în timpul execuției, iar valorile sunt delimitate de șirul setat pentru această opțiune. În acest exemplu, o virgulă este setată ca șir delimitator.
- MatchAllValue – Această opțiune, atunci când este setată pe o coloană, vă permite să transmiteți toate valorile unei coloane în timpul execuției, iar valorile sunt reprezentate de șirul setat pentru această opțiune. În acest exemplu, un asterisc este setat ca o potrivire cu toate șirurile.
După ce ne definim etichetele, putem activa sau dezactiva aceste reguli folosind Status
element al API-ului. În acest caz, valoarea este setată la ENABLED
. Pentru a dezactiva regulile, valoarea este DISABLED
. După ce etichetele sunt activate, putem transmite valori etichetelor în timpul execuției pentru a securiza datele afișate în funcție de cine accesează tabloul de bord.
Fiecare set de date poate avea până la 50 de chei de etichetă.
Primim următorul răspuns pentru CreateDataset
or UpdateDataset
API-uri:
Permiteți autorilor să acceseze date protejate de chei de etichetă atunci când creează analize
După ce cheile etichetelor sunt setate și activate pe setul de date, acesta este securizat. Autorii care folosesc acest set de date pentru a crea un tablou de bord nu văd nicio dată. Trebuie să li se acorde permisiuni pentru a vedea oricare dintre datele din setul de date atunci când creează un tablou de bord. Pentru a acorda autorilor QuickSight permisiunea de a vedea datele din setul de date, creați un fișier de permisiuni sau un set de date cu reguli. Pentru mai multe informații, vezi Crearea regulilor setului de date pentru securitatea la nivel de rând. Următorul este un exemplu de set de date de reguli.
Nume de utilizator | nume_coloană_1 | nume_coloană_2 | nume_coloană_3 |
admin/sampleauthor |
În acest exemplu de set de date, avem numele de utilizator al autorului listat în coloana UserName. Celelalte trei coloane sunt coloanele din setul de date pe care am setat cheile etichetelor. Valorile sunt lăsate goale pentru aceste coloane pentru autorul adăugat la acest tabel. Acest lucru îi permite autorului să vadă toate datele din aceste coloane fără nicio restricție atunci când creează analize.
Setați valori pentru cheile etichetelor în timpul execuției atunci când încorporați tabloul de bord
După ce cheile etichetelor sunt setate pentru coloanele setului de date, dezvoltatorii setează valori pentru chei în timpul execuției atunci când încorporează tabloul de bord. Dezvoltatorii apelează API-ul GenerateDashboardEmbedURLForAnonymousUser
pentru a încorpora tabloul de bord și a transmite valori cheilor de etichetă din element SessionTags
, așa cum se arată în următorul exemplu de cod:
Deoarece această caracteristică securizează datele pentru utilizatorii care nu sunt furnizați în QuickSight, apelul API este pentru AnonymousUser
numai și, prin urmare, această caracteristică funcționează numai cu API GenerateDashboardEmbedURLForAnonymousUser
.
Exemplul de cod precedent are următoarele componente:
- Pentru
tag_name_1
, setați două valori (value1
șivalue2
) folosindTagMultiValueDelimiter
definite la setarea tastelor de etichetă (în acest caz, o virgulă). - Pentru
tag_name_2
, setați o valoare ca asterisc. Acest lucru permite acestei chei de etichetă să aibă toate valorile pentru acea coloană atribuite, deoarece am definit asteriscul dreptMatchAllValue
când setați mai devreme o cheie de etichetă pe coloană. - Pentru
tag_name_3
, ai setat o valoare (value3
).
Definiția răspunsului API
Răspunsul API-ului are EmbedURL
, Status
, și RequestID
. Puteți încorpora această adresă URL în pagina dvs. HTML. Datele din acest tablou de bord sunt securizate pe baza valorilor transmise cheilor de etichetă atunci când apelați API-ul de încorporare GenerateDashboardEmbedURLForAnonymousUser
:
- EmbedUrl (șir) – O adresă URL de unică folosință pe care o puteți pune în pagina dvs. web de pe partea serverului pentru a vă încorpora tabloul de bord. Această adresă URL este valabilă timp de 5 minute. Operația API oferă URL-ului un
auth_code
valoare care permite o singură conectare (și doar una) la o sesiune de utilizator care este valabilă până la 10 ore. Această adresă URL redă tabloul de bord cu reguli RLS aplicate pe baza valorilor setate pentru cheile etichetelor RLS. - Stare (întreg) – Starea HTTP a cererii.
- RequestId (șir) – ID-ul cererii AWS pentru această operațiune.
Control de acces cu granulație fină
Puteți obține un control fin al accesului utilizând dinamic Gestionarea identității și accesului AWS (IAM) generare de politici. Pentru mai multe informații, consultați Izolarea chiriașilor SaaS cu politici IAM generate dinamic. Când utilizați GenerateEmbedUrlForAnonymousUser
API pentru încorporare, trebuie să menționați două tipuri de resurse în politica IAM: ARN-urile spațiului de nume cărora le aparțin utilizatorii dvs. anonimi și ARN-urile tabloului de bord care pot fi utilizate în AuthorizedResourceArns
valoarea parametrului de intrare. Sesiunile generate folosind acest API pot accesa resursele autorizate și pe cele (tablouri de bord) partajate cu spațiul de nume.
Deoarece utilizatorii anonimi fac parte dintr-un spațiu de nume, toate tablourile de bord partajate cu spațiul de nume sunt accesibile acestora, indiferent dacă sunt transmise în mod explicit prin intermediul AuthorizedResourceArns
parametru.
Pentru a permite identității apelantului să genereze o adresă URL pentru orice utilizator și orice tablou de bord, Resource
bloc al politicii poate fi setat la *
. Pentru a permite identității apelantului să genereze o adresă URL pentru orice utilizator anonim într-un anumit spațiu de nume (cum ar fi Tenant1
), Resource
o parte a politicii poate fi setată la arn:aws:quicksight:us-east-1:<YOUR_AWS_ACCOUNT_ID>:namespace/Tenant1
. Acesta este același lucru pentru ID-ul tabloului de bord. Pentru generarea dinamică a politicilor, puteți utiliza și substituenți pentru spațiul de nume și utilizatori.
Următorul cod este un exemplu de politică IAM:
Utilizare caz
OkTank este un ISV în domeniul sănătății. Au o aplicație SaaS care este utilizată de diferite spitale din diferite regiuni ale țării pentru a-și gestiona veniturile. OkTank are mii de angajați din domeniul sănătății care accesează aplicația lor și a încorporat operațiuni legate de afacerea lor într-un tablou de bord QuickSight din aplicația lor. OkTank nu vrea să-și gestioneze utilizatorii în QuickSight separat și dorește să securizeze datele în funcție de utilizatorul din care spital le accesează aplicația. OkTank securizează datele de pe tablourile de bord în timpul execuției folosind securitatea la nivel de rând folosind etichete.
OkTank are spitale (Spitalul de Nord, Spitalul de Sud și Spitalul din centrul orașului) în regiunile Central, Est, Sud și Vest.
În acest exemplu, următorii utilizatori accesează aplicația OkTank și tabloul de bord încorporat. Fiecare utilizator are un anumit nivel de reguli de restricție care definesc ce date poate accesa în tablourile de bord. PowerUser
este un super utilizator care poate vedea datele pentru toate spitalele și regiunile.
Utilizatorul aplicației OkTank | Spital | Regiune |
NorthUser | Spitalul de Nord | Central și Est |
NorthAdmin | Spitalul de Nord | Toate regiunile |
SouthUser | Spitalul de Sud | Sud |
SouthAdmin | Spitalul de Sud | Toate regiunile |
utilizator puternic | Toate spitalele | Toate regiunile |
Niciunul dintre acești utilizatori nu a fost furnizat în QuickSight. OkTank gestionează acești utilizatori în propria aplicație și, prin urmare, știe cărei regiune și spital îi aparține fiecare utilizator. Când oricare dintre acești utilizatori accesează tabloul de bord QuickSight încorporat în aplicație, OkTank trebuie să securizeze datele de pe tabloul de bord, astfel încât utilizatorii să poată vedea numai datele pentru regiunea și spitalul lor.
În primul rând, OkTank a creat chei de etichetă pe setul de date pe care îl folosesc pentru a alimenta tabloul de bord. În lor UpdateDataset
Apelul API, the RowLevelPermissionTagConfiguration
elementul din setul de date este după cum urmează:
În al doilea rând, în timpul execuției, când încorporați tabloul de bord prin intermediul GenerateDashboardEmbedURLForAnonymousUser
API, au setat SessionTags
pentru fiecare utilizator.
SessionTags
pentru NorthUser
în GenerateDashboardEmbedURLForAnonymousUser
Apelurile API sunt după cum urmează:
SessionTags
pentru NorthAdmin
sunt după cum urmează:
SessionTags
pentru SouthUser
sunt după cum urmează:
SessionTags
pentru SouthAdmin
sunt după cum urmează:
SessionTags
pentru PowerUser
sunt după cum urmează:
Următoarea captură de ecran arată ce SouthUser
vede referitor la Spitalul de Sud din regiunea de Sud.
Următoarea captură de ecran arată ce SouthAdmin
vede referitor la Spitalul de Sud din toate regiunile.
Următoarea captură de ecran arată ce PowerUser
se referă la toate spitalele din toate regiunile.
Pe baza etichetelor de sesiune, OkTank a securizat date pe tablourile de bord încorporate, astfel încât fiecare utilizator să vadă doar date specifice pe baza accesului său. Puteți accesează tabloul de bord ca unul dintre utilizatori (prin schimbarea utilizatorului în meniul derulant din dreapta sus) și vedeți cum se modifică datele în funcție de utilizatorul selectat.
În general, cu securitatea la nivel de rând folosind etichete, OkTank este capabil să ofere o experiență de analiză convingătoare în cadrul aplicației SaaS, asigurându-se în același timp că fiecare utilizator vede numai datele corespunzătoare fără a fi necesar să furnizeze și să gestioneze utilizatorii în QuickSight. QuickSight oferă o opțiune de analiză extrem de scalabilă și sigură pe care o puteți configura și lansa în producție în câteva zile, în loc de săptămâni sau luni înainte.
Concluzie
Combinația dintre încorporarea tabloului de bord pentru utilizatorii care nu sunt furnizați în QuickSight și securitatea la nivel de rând folosind etichete le permite dezvoltatorilor și ISV-urilor să configureze rapid și ușor analize sofisticate, personalizate pentru utilizatorii aplicațiilor lor - toate fără nicio configurare sau gestionare a infrastructurii, în timp ce scalarea la milioane de utilizatori . Pentru mai multe actualizări de la Analiză încorporată QuickSight, A se vedea Ce este nou în Ghidul utilizatorului Amazon QuickSight.
Despre Autori
Raji Sivasubramaniam este arhitect specializat în soluții la AWS, concentrându-se pe Analytics. Raji are 20 de ani de experiență în arhitectura de soluții end-to-end Enterprise Data Management, Business Intelligence și Analytics pentru companiile Fortune 500 și Fortune 100 din întreaga lume. Ea are o experiență aprofundată în date și analize integrate de asistență medicală, cu o mare varietate de seturi de date de asistență medicală, inclusiv piața gestionată, direcționarea către medic și analiza pacienților. În timpul ei liber, Raji îi place drumețiile, yoga și grădinărit.
Srikanth Baheti este un arhitect specializat în soluții World Wide Sr. pentru Amazon QuickSight. Și-a început cariera ca consultant și a lucrat pentru mai multe organizații private și guvernamentale. Mai târziu, a lucrat pentru PerkinElmer Health and Sciences & eResearch Technology Inc, unde a fost responsabil pentru proiectarea și dezvoltarea de aplicații web cu trafic mare, conducte de date extrem de scalabile și de întreținere pentru platformele de raportare care utilizează serviciile AWS și calculul fără server.
Kareem Syed-Mohammed este manager de produs la Amazon QuickSight. El se concentrează pe analizele încorporate, API-urile și experiența dezvoltatorilor. Înainte de QuickSight, a fost PM la AWS Marketplace și Amazon retail. Kareem și-a început cariera ca dezvoltator și apoi PM pentru tehnologiile call center, Expert local și Reclame pentru Expedia. A lucrat pentru o scurtă perioadă ca consultant la McKinsey and Company.
- '
- "
- &
- 000
- 100
- 11
- acces
- Cont
- Acțiune
- Anunţuri
- TOATE
- Amazon
- Google Analytics
- api
- API-uri
- aplicaţia
- aplicație
- aplicatii
- Apps
- Autorii
- AWS
- construi
- afaceri
- business intelligence
- apel
- Capacitate
- Carieră
- cod
- Coloană
- Companii
- companie
- tehnica de calcul
- consultant
- clienţii care
- tablou de bord
- de date
- management de date
- Dezvoltator
- Dezvoltatorii
- Downtown
- de angajați
- Afacere
- experienţă
- FAST
- Caracteristică
- Guvern
- Sănătate
- de asistență medicală
- aici
- Înalt
- drumeții
- Spital
- spitale
- Cum
- HTTPS
- IAM
- Identitate
- Inclusiv
- informații
- Infrastructură
- Inteligență
- interactiv
- IT
- Cheie
- chei
- Nivel
- local
- Efectuarea
- administrare
- Piață
- piaţă
- Meci
- luni
- optiune noua
- North
- Operațiuni
- Opțiune
- Altele
- performanță
- medic
- Platforme
- Politica
- putere
- privat
- Produs
- producere
- resursă
- Resurse
- răspuns
- cu amănuntul
- venituri
- sul
- norme
- SaaS
- scalare
- ȘTIINȚE
- securitate
- vede
- selectate
- serverless
- Servicii
- set
- instalare
- Distribuie
- comun
- Pantaloni scurți
- Centre de cercetare
- So
- Software
- soluţii
- Sud
- Spaţiu
- început
- Declarație
- Stare
- Tehnologii
- Tehnologia
- timp
- top
- trafic
- actualizări
- utilizatorii
- valoare
- web
- aplicații web
- Vest
- OMS
- în
- flux de lucru
- fabrică
- lume
- ani
- yoga