Na globalni ravni ima veliko organizacij kritične poslovne podatke, razpršene med različnimi repozitoriji vsebine, zaradi česar je težko dostopati do teh informacij na poenostavljen in koheziven način. Ustvarjanje poenotene in varne izkušnje iskanja je pomemben izziv za organizacije, saj vsak repozitorij vsebuje široko paleto formatov dokumentov in mehanizmov za nadzor dostopa.
Amazonska Kendra je inteligentna storitev iskanja v podjetju, ki uporabnikom omogoča iskanje po različnih repozitorijih vsebine. Stranke so odgovorne za preverjanje pristnosti in avtorizacijo uporabnikov za dostop do njihove iskalne aplikacije, Amazon Kendra pa omogoča varno iskanje za poslovne aplikacije, pri čemer zagotavlja, da rezultati uporabnikove iskalne poizvedbe vključujejo samo dokumente, za katere je uporabnik pooblaščen, da jih bere. Amazon Kendra lahko preprosto potrdi identiteto posameznih uporabnikov in uporabniških skupin, ki izvajajo iskanja, z dodatkom varnih iskalnih žetonov. Z dodajanjem uporabniških žetonov za varno iskanje je izvajanje filtriranih iskanj na podlagi dostopa v Amazon Kendra poenostavljeno in varno. Informacije o uporabniškem dostopu lahko varno posredujete v obremenitvi poizvedbe, namesto da bi to dosegli s filtri atributov. S to funkcijo lahko Amazon Kendra potrdi podatke o žetonu in jih samodejno uporabi v rezultatih iskanja za natančno in varno filtriranje na podlagi dostopa.
Amazon Kendra podpira nadzor uporabniškega dostopa na podlagi žetonov z uporabo naslednjih vrst žetonov:
- Odpri ID
- JWT s skupno skrivnostjo
- JWT z javnim ključem
- JSON
Pred tem smo videli predstavitev nadzor uporabniškega dostopa na podlagi žetonov v Amazon Kendra z Open ID. V tej objavi prikazujemo nadzor uporabniškega dostopa na podlagi žetonov v Amazon Kendra z JWT s skupno skrivnostjo. JWT ali spletni žeton JSON je odprt standard, ki se uporablja za izmenjavo varnostnih informacij med odjemalcem in strežnikom. Vsebuje kodirane objekte JSON, vključno z nizom zahtevkov. JWT-ji so podpisani s kriptografskim algoritmom, ki zagotavlja, da zahtevkov po izdaji žetona ni mogoče spremeniti. JWT-ji so uporabni v scenarijih v zvezi z avtorizacijo in izmenjavo informacij.
JWT so sestavljeni iz treh delov, ločenih s pikami (.):
- Glava – Vsebuje dele, kot je vrsta žetona, ki je JWT, uporabljeni algoritem za podpisovanje, kot je HMAC SHA256 ali RSA, in izbirni identifikator ključa.
- Obremenitev – To vsebuje več parov ključ-vrednost, imenovanih terjatve, ki jih izda ponudnik identitete. Poleg več zahtevkov v zvezi z izdajo in potekom žetona lahko žeton vsebuje tudi podatke o posameznem principalu in najemniku.
- podpis – Če želite ustvariti podpisni del, vzamete kodirano glavo, kodirano koristno vsebino, skrivnost, algoritem, določen v glavi, in to podpišete.
Zato je JWT videti takole:
Sledi vzorčna glava:
Sledi vzorčni tovor:
JWT je ustvarjen s skrivnim ključem in ta skrivni ključ je zaseben za vas, kar pomeni, da tega ne boste nikoli razkrili javnosti ali vnesli v JWT. Ko prejmete JWT od odjemalca, lahko preverite JWT s skrivnim ključem, shranjenim na strežniku. Kakršna koli sprememba JWT bo povzročila napako pri preverjanju (potrjevanju JWT).
Ta objava prikazuje vzorčno uporabo JWT z uporabo ključa za dostop v skupni rabi in njegovo uporabo za zaščito indeksov Amazon Kendra z nadzorom dostopa. V produkciji za ustvarjanje JWT-jev uporabljate ponudnika storitev varnega preverjanja pristnosti po vaši izbiri in na podlagi vaših zahtev.
Če želite izvedeti več o JWT, glejte Uvod v spletne žetone JSON.
Pregled rešitev
Podoben objava z Open ID je ta rešitev zasnovana za niz uporabnikov in skupin, ki izvajajo iskalne poizvedbe v repozitorij dokumentov, rezultati pa so vrnjeni samo iz tistih dokumentov, ki so pooblaščeni za dostop znotraj te skupine. Naslednja tabela prikazuje, do katerih dokumentov ima vsak uporabnik pooblaščen dostop za naš primer uporabe. Dokumenti, uporabljeni v tem primeru, so podmnožica javnih dokumentov AWS.
uporabnik | skupina | Vrsta dokumenta, pooblaščena za dostop |
Gost | . | blogi |
Patricia | Pomoč | Blogi, uporabniški vodiči |
James | Prodaja | Blogi, uporabniški priročniki, študije primerov |
John | Trženje | Blogi, uporabniški priročniki, študije primerov, poročila analitikov |
Mary | Rešitve Arhitekt | Spletni dnevniki, uporabniški priročniki, študije primerov, poročila analitikov, tehnične informacije |
Naslednji diagram ponazarja ustvarjanje JWT s ključem za dostop v skupni rabi za nadzor dostopa uporabnikov do določenih dokumentov v indeksu Amazon Kendra.
Ko indeks Amazon Kendra prejme klic API-ja za poizvedbo z žetonom za dostop uporabnika, potrdi žeton s skrivnim ključem v skupni rabi (varno shranjen v Upravitelj skrivnosti AWS) in dobi parametre, kot so uporabniško ime in skupine v tovoru. Indeks Amazon Kendra filtrira rezultate iskanja na podlagi shranjenega seznama za nadzor dostopa (ACL) in informacij, prejetih v uporabnikovem JWT. Ti filtrirani rezultati so vrnjeni kot odgovor na klic API-ja poizvedbe, ki ga izvede aplikacija.
Predpogoji
Če želite slediti korakom v tej objavi, se prepričajte, da imate naslednje:
Ustvarite JWT s skrivnim ključem v skupni rabi
Naslednji vzorec kode Java prikazuje, kako ustvariti JWT s skrivnim ključem v skupni rabi z uporabo odprte kode jsonwebtoken paket. V produkciji boste za ustvarjanje JWT-jev uporabljali ponudnika storitev varnega preverjanja pristnosti po vaši izbiri in na podlagi vaših zahtev.
Uporabniško ime in informacije o skupinah posredujemo kot zahtevke v koristnem tovoru, podpišemo JWT s skupno skrivnostjo in ustvarimo JWT, ki je specifičen za tega uporabnika. Navedite 256-bitni niz kot vašo skrivnost in obdržite vrednost skupne skrivnosti URL base64, kodirane za uporabo v kasnejšem koraku.
Ustvarite indeks Amazon Kendra s skupno skrivnostjo JWT
Za navodila o ustvarjanju indeksa Amazon Kendra glejte Ustvarjanje indeksa. Zabeležite si AWS upravljanje identitete in dostopa (IAM), ki ste jo ustvarili med postopkom. Zagotovite dostop vloge do vedra S3 in upravitelja skrivnosti po načelo najmanj privilegijev. Na primer politike, glejte Primer pravilnikov, ki temeljijo na identiteti IAM. Ko ustvarite indeks, bi morala biti vaša konzola Amazon Kendra videti kot naslednji posnetek zaslona.
Izvedite naslednje korake, da dodate svojo skrivnost:
- Na konzoli Amazon Kendra se pomaknite do Nadzor uporabniškega dostopa na strani s podrobnostmi vašega indeksa.
- Izberite Uredi nastavitve.
- Ker izvajamo nadzor dostopa na podlagi žetonov, izberite Da pod Nastavitve nadzora dostopa.
- Pod Konfiguracija žetona, izberite JWT s skupno skrivnostjo za Vrsta žetona.
- za Vrsta skrivnosti, izberite Novo.
- za Skrivno ime, vnesite
AmazonKendra-jwt-shared-secret
ali katero koli ime po vaši izbiri. - za ID ključa, vnesite ID ključa, ki se ujema z vašim JWT, ki ste ga ustvarili v vzorčni kodi Java.
- za Algoritem, izberite algoritem HS256.
- za Skupna skrivnost, vnesite svojo ohranjeno skrivno kodo URL base64, ki ste jo prej ustvarili iz kode Java.
- Izberite Shrani skrivnost.
Skrivnost bo zdaj shranjena v upravitelju skrivnosti kot nabor spletnih ključev JSON (JWKS). Najdete ga lahko na konzoli Secrets Manager. Za več podrobnosti glejte Uporaba spletnega žetona JSON (JWT) s skupno skrivnostjo.
- Razširi Napredna konfiguracija oddelek.
V tem koraku nastavimo uporabniško ime in skupine, ki bodo ekstrahirane iz zahtevkov JWT in ujemane z ACL, ko bo podpis veljaven.
- za Uporabniško ime¸ vnesite uporabniško ime.
- za skupine, vstopite v skupine.
- Izbirna polja pustite kot privzeta.
- Izberite Naslednji, nato izberite Nadgradnja.
Pripravite svoje vedro S3 kot vir podatkov
Če želite pripraviti vedro S3 kot vir podatkov, ustvarite vedro S3. V terminalu z Vmesnik ukazne vrstice AWS (AWS CLI) oz AWS CloudShell, zaženite naslednje ukaze za nalaganje dokumentov in metapodatkov v vedro vira podatkov:
Dokumenti, po katerih se izvaja poizvedba, so shranjeni v vedru S3. Vsaka vrsta dokumenta ima ločeno mapo: blogi, študije primerov, poročila analitikov, uporabniški priročniki in bele knjige. Ta struktura mape je v mapi z imenom Data. Datoteke z metapodatki, vključno z ACL-ji, so v mapi z imenom Meta.
Za konfiguracijo tega vedra S3 kot vira podatkov uporabljamo konektor Amazon Kendra S3. Ko je vir podatkov sinhroniziran z indeksom Amazon Kendra, išče po vsebini in indeksira vse dokumente ter zbira sezname ACL in atribute dokumentov iz datotek z metapodatki. Če želite izvedeti več o ACL-jih z metapodatkovnimi datotekami, glejte Metapodatki dokumenta Amazon S3. Za ta primer uporabljamo atribut po meri DocumentType
za označevanje vrste dokumenta. Po nalaganju bi morala biti struktura vedra S3 videti kot ta posnetek zaslona.
Za nastavitev atributa po meri DocumentType
, izvedite naslednje korake:
- Izberite svoj indeks Kendra in izberite Opredelitev vidika v podoknu za krmarjenje.
- Izberite Dodaj polje.
- za Ime polja, vnesite
DocumentType
. - za Vrsta podatkov, izberite String.
- Izberite Dodaj.
Zdaj lahko s priključkom S3 vnesete dokumente iz vedra, ki ste ga ustvarili, v indeks Amazon Kendra. Za popolna navodila glejte Prenos dokumentov prek priključka Amazon Kendra S3.
- v Konfigurirajte nastavitve sinhronizacije odsek, za Vnesite lokacijo vira podatkov, vnesite svoje vedro S3 (
s3://kendra-demo-bucket/
). - za Metapodatki datoteke predpono mapo, vnesite
Meta/
. - Razširi Dodatna konfiguracija.
- o Vključite vzorce zavihek, za Prefiks, vnesite
Data/
.
Za več informacij o podprtih konektorjih glejte Priključki.
- Izberite Naslednji, Potem Naslednji spet, potem Nadgradnja.
- Počakajte, da se ustvari vir podatkov, nato izberite vir podatkov in izberite Sinhronizirajte zdaj.
Sinhronizacija vira podatkov lahko traja 10–15 minut. Ko je sinhronizacija končana, Stanje zadnje sinhronizacije naj kaže kot Uspešno.
Izvedite poizvedbo po indeksu Amazon Kendra
Če želite zagnati preizkusno poizvedbo na svojem indeksu, izvedite naslednje korake:
- Na konzoli Amazon Kendra izberite Iskanje po indeksirani vsebini v podoknu za krmarjenje.
- Razširi Preizkusite poizvedbo z dostopnim žetonom.
- Izberite Uporabi žeton.
- Ustvarimo lahko JWT za uporabnika in skupino. V tem primeru ustvarimo JWT za
AWS-SA
skupina. Uporabniško ime zamenjamo kot Mary in skupine kotAWS-SA
v koraku generiranja JWT. - Vnesite ustvarjeni žeton in izberite Uporabi.
Na podlagi ACL bi morali biti rezultati iz vseh map: blogov, uporabniških priročnikov, študij primerov, poročil analitikov in belih knjig.
Podobno, ko ste prijavljeni kot James iz AWS-Sales
skupini in opravimo ustrezen JWT, imamo dostop samo do spletnih dnevnikov, uporabniških vodnikov in študij primerov.
Po indeksu lahko iščemo tudi kot gost brez posredovanja žetona. Gost lahko dostopa le do vsebin v mapi blogov.
Eksperimentirajte z drugimi poizvedbami, ki si jih lahko zamislite, ko ste prijavljeni kot različni uporabniki in skupine, in opazujte rezultate.
Čiščenje
Da se izognete prihodnjim stroškom, počistite vire, ki ste jih ustvarili kot del te rešitve. Če želite izbrisati indeks Amazon Kendra in vedro S3, ustvarjeno med preskušanjem rešitve, glejte Pospravi. Če želite izbrisati skrivnost upravitelja skrivnosti, glejte Izbrišite skrivnost upravitelja skrivnosti AWS.
zaključek
V tej objavi smo videli, kako lahko Amazon Kendra izvaja varna iskanja, ki vrnejo le rezultate iskanja na podlagi uporabniškega dostopa. Z dodatkom JWT s skupnim skrivnim ključem lahko preprosto preverimo identiteto posameznih uporabnikov in skupin uporabnikov, ki izvajajo iskanja. Ta podoben pristop je mogoče razširiti na a JWT z javnim ključem. Če želite izvedeti več, glejte Uporaba spletnega žetona JSON (JWT) s skupno skrivnostjo.
O avtorjih
Nitin Evzebij je višji arhitekt za podjetniške rešitve pri AWS z več kot 18-letnimi izkušnjami na področju programskega inženiringa in podjetniške arhitekture. Sodeluje s strankami, da jim pomaga zgraditi dobro arhitekturne aplikacije na platformi AWS. Navdušuje ga reševanje tehnoloških izzivov in pomoč strankam pri njihovem potovanju v oblak.
Kruthi Jayasimha Rao je arhitekt partnerskih rešitev s poudarkom na AI in ML. Zagotavlja tehnične smernice partnerjem AWS pri upoštevanju najboljših praks za gradnjo varnih, odpornih in zelo razpoložljivih rešitev v oblaku AWS.
Ishaan Berry je programski inženir pri Amazon Web Services, ki dela na Amazon Kendra, poslovnem iskalniku. Navdušen je nad varnostjo in je v zadnjih 2 letih delal na ključnih komponentah Kendrinih funkcij za nadzor dostopa.
Akash Bhatia je glavni arhitekt rešitev pri AWS. Trenutno se osredotoča na pomoč podjetniškim strankam pri doseganju poslovnih rezultatov z arhitekturo in implementacijo inovativnih in prožnih rešitev v velikem obsegu. Že več kot 15 let dela na področju tehnologije v podjetjih, ki segajo od Fortune 100 do novoustanovljenih podjetij v proizvodnih, vesoljskih in maloprodajnih vertikalah.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- Platoblockchain. Web3 Metaverse Intelligence. Razširjeno znanje. Dostopite tukaj.
- Kovanje prihodnosti z Adryenn Ashley. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/machine-learning/secure-your-amazon-kendra-indexes-with-the-acl-using-a-jwt-shared-secret-key/
- : je
- $GOR
- 10
- 100
- 11
- 15 let
- 420
- 7
- 8
- 9
- a
- Sposobna
- O meni
- dostop
- doseganje
- natančna
- Doseči
- čez
- Poleg tega
- Aerospace
- po
- AI
- algoritem
- vsi
- omogoča
- Amazon
- Amazonska Kendra
- Amazon Web Services
- med
- Analitik
- in
- API
- uporaba
- aplikacije
- Uporabi
- pristop
- Arhitektura
- SE
- AS
- At
- lastnosti
- Preverjanje pristnosti
- pooblastilo
- samodejno
- Na voljo
- AWS
- temeljijo
- BE
- ker
- počutje
- BEST
- najboljše prakse
- med
- Bit
- blogi
- izgradnjo
- poslovni
- by
- klic
- se imenuje
- CAN
- primeru
- Primeri dobre prakse
- izziv
- izzivi
- izbira
- Izberite
- terjatve
- razred
- stranke
- Cloud
- Koda
- Podjetja
- dokončanje
- deli
- konfiguracija
- Konzole
- vsebujejo
- Vsebuje
- vsebina
- Vsebina
- nadzor
- Nadzor
- Ustrezno
- stroški
- ustvarjajo
- ustvaril
- Ustvarjanje
- Oblikovanje
- kritično
- kripto
- kriptografijo
- Trenutna
- po meri
- Stranke, ki so
- datum
- Datum
- privzeto
- izkazati
- dokazuje,
- zasnovan
- Podatki
- Podrobnosti
- drugačen
- težko
- razpršen
- dokument
- Dokumenti
- navzdol
- med
- vsak
- enostavno
- omogoča
- Motor
- inženir
- Inženiring
- zagotovitev
- Vnesite
- Podjetje
- Primer
- Izmenjava
- izkušnje
- Napaka
- Feature
- Lastnosti
- Področja
- datoteke
- filtriranje
- Filtri
- Osredotočite
- sledi
- po
- za
- Fortune
- iz
- polno
- Prihodnost
- Gain
- ustvarjajo
- ustvarila
- generacija
- skupina
- Skupine
- Gost
- Navodila
- Vodniki
- Imajo
- Glave
- pomoč
- zelo
- Kako
- Kako
- HTML
- http
- HTTPS
- ID
- identifikator
- identiteta
- izvajanja
- uvoz
- in
- vključujejo
- Vključno
- Indeks
- indekse
- individualna
- Podatki
- inovativne
- instant
- Namesto
- Navodila
- Inteligentna
- ISS
- izdaja
- Izdala
- IT
- ITS
- Java
- John
- Potovanje
- json
- Jwt
- Ključne
- tipke
- Kid
- UČITE
- kot
- vrstica
- Seznam
- Poglej
- izgleda kot
- POGLEDI
- je
- Znamka
- Izdelava
- upravitelj
- Način
- proizvodnja
- več
- Stave
- ujema
- pomeni
- Meta
- metapodatki
- Minute
- ML
- več
- Ime
- Imenovan
- Krmarjenje
- ostalo
- Novo
- predmeti
- opazujejo
- of
- on
- odprite
- open source
- Da
- organizacije
- Ostalo
- obrisi
- paket
- Stran
- parov
- podokno
- parametri
- del
- partner
- partnerji
- deli
- mimo
- Podaje
- strastno
- preteklosti
- Izvedite
- izvajati
- platforma
- platon
- Platonova podatkovna inteligenca
- PlatoData
- politike
- Prispevek
- vaje
- Pripravimo
- prej
- , ravnateljica
- zasebna
- Postopek
- proizvodnja
- zagotavljajo
- Ponudnik
- zagotavlja
- javnega
- poizvedbe
- območje
- obsegu
- Preberi
- prejeti
- prejetih
- prejme
- o
- zamenjajte
- Poročila
- Skladišče
- Zahteve
- odporno
- viri
- Odgovor
- odgovorna
- povzroči
- Rezultati
- Trgovina na drobno
- ohranijo
- vrnitev
- razkrivajo
- vloga
- RSA
- Run
- Lestvica
- scenariji
- Iskalnik
- iskalnik
- skrivnost
- Oddelek
- zavarovanje
- Zavarovano
- Varno
- varnost
- ločena
- Storitev
- Ponudnik storitev
- Storitve
- nastavite
- več
- SHA256
- Delite s prijatelji, znanci, družino in partnerji :-)
- deli
- shouldnt
- Prikaži
- Razstave
- podpisati
- podpisano
- pomemben
- podpis
- Podoben
- poenostavljeno
- Software
- Software Engineer
- inženiring programske opreme
- Rešitev
- rešitve
- Reševanje
- vir
- specifična
- določeno
- standardna
- start-up podjetij
- Korak
- Koraki
- shranjeni
- racionaliziran
- String
- Struktura
- Študije
- taka
- Podprti
- Podpira
- sistem
- miza
- Bodite
- tehnični
- Tehnologija
- najemnik
- terminal
- Test
- Testiranje
- da
- O
- informacije
- njihove
- Njih
- te
- 3
- skozi
- čas
- do
- žeton
- Boni
- Vrste
- poenoteno
- URL
- Uporaba
- uporaba
- primeru uporabe
- uporabnik
- Uporabniki
- POTRDI
- potrjevanje
- vrednost
- različnih
- Preverjanje
- preverjanje
- vertikale
- web
- spletne storitve
- Dobro
- ki
- medtem
- whitepapere
- WHO
- široka
- Širok spekter
- bo
- z
- v
- brez
- delal
- deluje
- deluje
- Delavnice
- let
- Vi
- Vaša rutina za
- zefirnet
- Zip