Küresel olarak birçok kuruluş, çeşitli içerik havuzlarına dağılmış kritik iş verilerine sahiptir ve bu da bu bilgilere düzenli ve uyumlu bir şekilde erişmeyi zorlaştırır. Birleşik ve güvenli bir arama deneyimi oluşturmak, kuruluşlar için önemli bir zorluktur çünkü her havuz çok çeşitli belge formatları ve erişim kontrol mekanizmaları içerir.
Amazon Kendrası kullanıcıların farklı içerik havuzlarında arama yapmasına izin veren akıllı bir kurumsal arama hizmetidir. Arama uygulamalarına erişim elde etmek için kullanıcıların kimliğinin doğrulanmasından ve yetkilendirilmesinden müşteriler sorumludur ve Amazon Kendra, bir kullanıcının arama sorgusunun sonuçlarının yalnızca kullanıcının okuma yetkisine sahip olduğu belgeleri içerdiğinden emin olarak kurumsal uygulamalar için güvenli arama sağlar. Amazon Kendra, güvenli arama belirteçlerinin eklenmesiyle arama yapan kullanıcı gruplarının yanı sıra bireysel kullanıcıların kimliğini kolayca doğrulayabilir. Güvenli arama için kullanıcı belirteçleri eklenerek, Amazon Kendra'da erişim tabanlı filtrelenmiş aramalar basitleştirilir ve güvenli hale getirilir. Bunu gerçekleştirmek için öznitelik filtreleri kullanmak yerine kullanıcı erişim bilgilerini sorgu yükünde güvenli bir şekilde iletebilirsiniz. Bu özellik sayesinde Amazon Kendra, doğru ve güvenli erişim tabanlı filtreleme için belirteç bilgilerini doğrulayabilir ve otomatik olarak arama sonuçlarına uygulayabilir.
Amazon Kendra, aşağıdaki belirteç türlerini kullanarak belirteç tabanlı kullanıcı erişim denetimini destekler:
- Açık kimlik
- Paylaşılan bir sır ile JWT
- Ortak anahtarlı JWT
- JSON
Daha önce bir gösteri gördük Open ID ile Amazon Kendra'da belirteç tabanlı kullanıcı erişimi denetimi. Bu gönderide, paylaşılan bir sır ile JWT ile Amazon Kendra'da belirteç tabanlı kullanıcı erişim denetimini gösteriyoruz. JWT veya JSON Web Token, güvenlik bilgilerini bir istemci ile sunucu arasında paylaşmak için kullanılan açık bir standarttır. Bir dizi talep dahil olmak üzere kodlanmış JSON nesneleri içerir. JWT'ler, belirteç verildikten sonra taleplerin değiştirilememesini sağlamak için bir kriptografik algoritma kullanılarak imzalanır. JWT'ler, yetkilendirme ve bilgi alışverişi ile ilgili senaryolarda kullanışlıdır.
JWT'ler noktalarla (.) ayrılmış üç bölümden oluşur:
- üstbilgi – JWT olan belirteç türü, HMAC SHA256 veya RSA gibi kullanılan imzalama algoritması ve isteğe bağlı bir anahtar tanımlayıcı gibi parçalar içerir.
- Yükünü – Bu, adı verilen birkaç anahtar/değer çifti içerir. iddia, kimlik sağlayıcı tarafından verilir. Simgenin verilmesi ve sona ermesiyle ilgili birkaç iddiaya ek olarak, belirteç ayrıca münferit anapara ve kiracı hakkında bilgi içerebilir.
- imza – İmza kısmını oluşturmak için kodlanmış başlığı, kodlanmış yükü, bir sırrı, başlıkta belirtilen algoritmayı alıp imzalarsınız.
Bu nedenle, bir JWT aşağıdaki gibi görünür:
Aşağıda örnek bir başlık verilmiştir:
Örnek yük aşağıdadır:
JWT, gizli bir anahtarla oluşturulur ve bu gizli anahtar size özeldir; bu, onu asla halka açıklamayacağınız veya JWT'nin içine enjekte etmeyeceğiniz anlamına gelir. İstemciden bir JWT aldığınızda, JWT'yi sunucuda saklanan gizli anahtarla doğrulayabilirsiniz. JWT'de yapılacak herhangi bir değişiklik, doğrulama (JWT doğrulama) başarısızlığına neden olacaktır.
Bu gönderi, paylaşılan bir erişim anahtarı kullanan bir JWT'nin örnek kullanımını ve erişim denetimleriyle Amazon Kendra dizinlerini güvenli hale getirmek için kullanımını gösterir. Üretimde, JWT'ler oluşturmak için gereksinimlerinize dayalı olarak seçtiğiniz bir güvenli kimlik doğrulama hizmeti sağlayıcısı kullanırsınız.
JWT'ler hakkında daha fazla bilgi edinmek için bkz. JSON Web Jetonlarına Giriş.
Çözüme genel bakış
Benzer Facebook post Open ID ile bu çözüm, bir dizi kullanıcı ve grubun bir belge havuzunda arama sorguları yapması için tasarlanmıştır ve sonuçlar yalnızca o grup içinde erişim yetkisi verilen belgelerden döndürülür. Aşağıdaki tablo, kullanım durumumuz için her bir kullanıcının hangi belgelere erişme yetkisine sahip olduğunu özetlemektedir. Bu örnekte kullanılan belgeler, AWS genel belgelerinin bir alt kümesidir.
kullanıcı | grup | Erişim için Yetkilendirilen Belge Türü |
Konuk | . | Bloglar |
Patricia | Hesap | Bloglar, kullanım kılavuzları |
James | Satış | Bloglar, kullanıcı kılavuzları, vaka çalışmaları |
John | Pazarlama | Bloglar, kullanıcı kılavuzları, vaka çalışmaları, analist raporları |
Mary | Çözüm Mimarı | Bloglar, kullanıcı kılavuzları, vaka çalışmaları, analist raporları, teknik incelemeler |
Aşağıdaki diyagram, kullanıcıların Amazon Kendra dizinindeki belirli belgelere erişimini denetlemek için paylaşılan erişim anahtarına sahip bir JWT'nin oluşturulmasını göstermektedir.
Bir Amazon Kendra dizini, kullanıcı erişim belirteciyle bir sorgu API çağrısı aldığında, paylaşılan bir gizli anahtar (güvenli bir şekilde depolanır) kullanarak belirteci doğrular. AWS Sırları Yöneticisi) ve yükteki kullanıcı adı ve gruplar gibi parametreleri alır. Amazon Kendra dizini, saklanan Erişim Kontrol Listesine (ACL) ve kullanıcının JWT'sinde alınan bilgilere göre arama sonuçlarını filtreler. Bu filtrelenmiş sonuçlar, uygulama tarafından yapılan sorgu API çağrısına yanıt olarak döndürülür.
Önkoşullar
Bu gönderideki adımları takip etmek için aşağıdakilere sahip olduğunuzdan emin olun:
Paylaşılan bir gizli anahtarla bir JWT oluşturun
Aşağıdaki örnek Java kodu, açık kaynak kullanılarak paylaşılan bir gizli anahtarla bir JWT'nin nasıl oluşturulacağını gösterir. jsonwebtoken paket. Üretimde, JWT'ler oluşturmak için gereksinimlerinize dayalı olarak seçtiğiniz bir güvenli kimlik doğrulama hizmeti sağlayıcısı kullanacaksınız.
Kullanıcı adını ve grup bilgilerini payload'da talep olarak iletiyoruz, JWT'yi paylaşılan sır ile imzalıyoruz ve o kullanıcıya özel bir JWT oluşturuyoruz. Gizli diziniz olarak 256 bitlik bir dize sağlayın ve daha sonraki bir adımda kullanmak üzere base64 URL kodlu paylaşılan sırrın değerini koruyun.
JWT paylaşılan sırrıyla bir Amazon Kendra dizini oluşturun
Amazon Kendra dizini oluşturmaya ilişkin talimatlar için bkz. indeks oluşturma. Not edin AWS Kimlik ve Erişim Yönetimi işlem sırasında oluşturduğunuz (IAM) rolü. Şunları izleyerek S3 grubuna ve Secrets Manager'a rol erişimi sağlayın: en az ayrıcalık ilkesi. Örnek politikalar için bkz. Örnek IAM kimlik tabanlı politikalar. Dizini oluşturduktan sonra, Amazon Kendra konsolunuz aşağıdaki ekran görüntüsü gibi görünmelidir.
Sırrınızı eklemek için aşağıdaki adımları tamamlayın:
- Amazon Kendra konsolunda şuraya gidin: Kullanıcı erişim kontrolü dizin ayrıntısı sayfanızdaki sekme.
- Klinik Ayarları düzenle.
- Belirteç tabanlı erişim denetimi uyguladığımız için, Evet altında Erişim kontrolü ayarları.
- Altında Jeton yapılandırması, seçmek Paylaşılan sır ile JWT için Jeton türü.
- İçin sır türü, seçmek yeni.
- İçin Gizli isim, girmek
AmazonKendra-jwt-shared-secret
veya seçtiğiniz herhangi bir isim. - İçin Anahtar Kimliği, örnek Java kodunda oluşturduğunuz JWT'nizle eşleşen anahtar kimliğini girin.
- İçin Algoritma, HS256 algoritmasını seçin.
- İçin Paylaşılan sır, daha önce Java kodundan oluşturulmuş tutulan base64 URL kodlu sırrınızı girin.
- Klinik Sırrı kaydet.
Sır şimdi Secrets Manager'da bir JSON Web Anahtar Kümesi (JWKS) olarak depolanacak. Secrets Manager konsolunda bulabilirsiniz. Daha fazla ayrıntı için bkz. Paylaşılan bir sır ile JSON Web Simgesi (JWT) kullanma.
- genişletmek Gelişmiş yapılandırma Bölüm.
Bu adımda, imza geçerli olduğunda JWT taleplerinden çıkarılacak ve ACL ile eşleştirilecek kullanıcı adı ve grupları kuruyoruz.
- İçin Kullanıcı AdıKullanıcı adı girin.
- İçin Gruplar, grupları girin.
- İsteğe bağlı alanları varsayılan olarak bırakın.
- Klinik Sonraki, Daha sonra seçmek Güncelleme.
S3 klasörünüzü veri kaynağı olarak hazırlayın
Veri kaynağı olarak bir S3 grubu hazırlamak için bir S3 grubu oluşturun. ile terminalde AWS Komut Satırı Arayüzü (AWS CLI) veya AWS BulutKabuğu, belgeleri ve meta verileri veri kaynağı grubuna yüklemek için aşağıdaki komutları çalıştırın:
Sorgulanan belgeler bir S3 kovasında saklanır. Her belge türünün ayrı bir klasörü vardır: bloglar, vaka çalışmaları, analist raporları, kullanıcı kılavuzları ve teknik incelemeler. Bu klasör yapısı, Data adlı bir klasörde bulunur. ACL'leri içeren meta veri dosyaları, Meta adlı bir klasördedir.
Bu S3 klasörünü veri kaynağı olarak yapılandırmak için Amazon Kendra S3 bağlayıcısını kullanıyoruz. Veri kaynağı Amazon Kendra dizini ile eşitlendiğinde, tüm belgeleri tarar ve dizine ekler, ayrıca meta veri dosyalarından ACL'leri ve belge özniteliklerini toplar. Meta veri dosyalarını kullanan ACL'ler hakkında daha fazla bilgi edinmek için bkz. Amazon S3 belge meta verileri. Bu örnek için, özel özelliği kullanıyoruz DocumentType
Belgenin türünü belirtmek için. Yüklemeden sonra, S3 klasör yapınız aşağıdaki ekran görüntüsü gibi görünmelidir.
Özel niteliği ayarlamak için DocumentType
, aşağıdaki adımları tamamlayın:
- Kendra dizininizi seçin ve seçin Faset tanımı Gezinti bölmesinde.
- Klinik Alan ekle.
- İçin Alan adı, girmek
DocumentType
. - İçin Veri tipi, seçmek dizi.
- Klinik Ekle.
Artık S3 konektörünü kullanarak oluşturduğunuz klasörden Amazon Kendra dizinine belge alabilirsiniz. Talimatların tamamı için bkz. Amazon Kendra S3 Connector Aracılığıyla Belgeleri Alma.
- içinde Senkronizasyon ayarlarını yapılandırın bölümü Veri kaynağı konumunu girin, S3 klasörünüzü girin (
s3://kendra-demo-bucket/
). - İçin Meta veri dosyaları öneki klasör konumu, girmek
Meta/
. - Genişletmek Ek yapılandırma.
- Üzerinde Desenleri dahil et sekme için Önek, girmek
Data/
.
Desteklenen bağlayıcılar hakkında daha fazla bilgi için bkz. konektörler.
- Klinik Sonraki, Daha sonra Sonraki tekrar, o zaman Güncelleme.
- Veri kaynağının oluşturulmasını bekleyin, ardından veri kaynağını seçin ve Şimdi senkronize et.
Veri kaynağı senkronizasyonunun tamamlanması 10-15 dakika sürebilir. Senkronizasyon tamamlandığında, Son senkronizasyon durumu olarak göstermeli Başarılı.
Amazon Kendra dizini sorgulama
Dizininizde bir test sorgusu çalıştırmak için aşağıdaki adımları tamamlayın:
- Amazon Kendra konsolunda şunu seçin: Dizine eklenen içeriği ara Gezinti bölmesinde.
- Genişletmek Erişim belirteci ile test sorgusu.
- Klinik Belirteci uygula.
- Kullanıcı ve grup için bir JWT oluşturabiliriz. Bu örnekte, için bir JWT oluşturuyoruz.
AWS-SA
grup. Kullanıcı adını Mary olarak ve grupları olarak değiştiriyoruzAWS-SA
JWT oluşturma adımında. - Oluşturulan belirteci girin ve seçin Tamam.
ACL'ye göre, tüm klasörlerin sonuçları olmalıyız: bloglar, kullanıcı kılavuzları, vaka incelemeleri, analist raporları ve teknik incelemeler.
Benzer şekilde, şu adresten James olarak oturum açtığınızda: AWS-Sales
grubu ve ilgili JWT'yi geçerek, yalnızca bloglara, kullanıcı kılavuzlarına ve vaka incelemelerine erişimimiz var.
Dizini bir belirteç geçirmeden konuk olarak da arayabiliriz. Konuk, yalnızca bloglar klasöründeki içeriklere erişebilir.
Farklı kullanıcı ve gruplar olarak oturum açtığınızda aklınıza gelebilecek diğer sorguları kullanarak denemeler yapın ve sonuçları gözlemleyin.
Temizlemek
İleride maliyet oluşmasını önlemek için bu çözümün bir parçası olarak oluşturduğunuz kaynakları temizleyin. Çözümü test ederken oluşturulan Amazon Kendra dizinini ve S3 klasörünü silmek için bkz. Temizlemek. Secrets Manager sırrını silmek için bkz. Bir AWS Secrets Manager sırrını silme.
Sonuç
Bu gönderide, Amazon Kendra'nın yalnızca kullanıcı erişimine dayalı olarak arama sonuçları döndüren güvenli aramaları nasıl gerçekleştirebildiğini gördük. Paylaşılan bir gizli anahtara sahip bir JWT'nin eklenmesiyle, bireysel kullanıcıların yanı sıra arama yapan kullanıcı gruplarının kimliklerini kolayca doğrulayabiliriz. Bu benzer yaklaşım şu şekilde genişletilebilir: Ortak anahtarlı JWT. Daha fazla bilgi edinmek için bkz. Paylaşılan bir sır ile JSON Web Simgesi (JWT) kullanma.
Yazarlar Hakkında
Nitin Eusebios AWS'de Yazılım Mühendisliği ve Kurumsal Mimari alanlarında 18 yıldan fazla deneyime sahip Kıdemli Kurumsal Çözümler Mimarıdır. AWS platformunda iyi tasarlanmış uygulamalar oluşturmalarına yardımcı olmak için müşterilerle birlikte çalışır. Teknoloji zorluklarını çözme ve müşterilere bulut yolculuklarında yardımcı olma konusunda tutkulu.
Kruthi Jayasimha Rao AI ve ML'ye odaklanan bir İş Ortağı Çözümleri Mimarıdır. AWS Cloud'da güvenli, esnek ve yüksek oranda erişilebilir çözümler oluşturmak için en iyi uygulamaları takip etme konusunda AWS Çözüm Ortaklarına teknik rehberlik sağlar.
İshaan Berry Amazon Web Services'ta bir kurumsal arama motoru olan Amazon Kendra üzerinde çalışan bir Yazılım Mühendisidir. Güvenlik konusunda tutkulu ve son 2 yılda Kendra'nın Erişim Kontrolü özelliklerinin temel bileşenleri üzerinde çalıştı.
Akaş Bhatia AWS'de Temel Çözümler mimarıdır. Şu anki odak noktası, kurumsal müşterilerin ölçekte yenilikçi ve esnek çözümler tasarlayıp uygulayarak iş sonuçlarına ulaşmalarına yardımcı olmaktır. Fortune 15'den yeni kurulan şirketlere kadar çeşitli şirketlerde Üretim, Havacılık ve Perakende dikeylerinde 100 yılı aşkın bir süredir teknoloji alanında çalışmaktadır.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- Plato blok zinciri. Web3 Metaverse Zekası. Bilgi Güçlendirildi. Buradan Erişin.
- Adryenn Ashley ile Geleceği Basmak. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/secure-your-amazon-kendra-indexes-with-the-acl-using-a-jwt-shared-secret-key/
- :dır-dir
- $UP
- 10
- 100
- 11
- 15 yıl
- 420
- 7
- 8
- 9
- a
- Yapabilmek
- Hakkımızda
- erişim
- başarmak
- doğru
- Başarmak
- karşısında
- ilave
- Uzay
- Sonra
- AI
- algoritma
- Türkiye
- veriyor
- Amazon
- Amazon Kendrası
- Amazon Web Servisleri
- arasında
- analist
- ve
- api
- Uygulama
- uygulamaları
- Tamam
- yaklaşım
- mimari
- ARE
- AS
- At
- öznitelikleri
- Doğrulama
- yetki
- otomatik olarak
- mevcut
- AWS
- merkezli
- BE
- Çünkü
- olmak
- İYİ
- en iyi uygulamalar
- arasında
- Bit
- birisinde
- inşa etmek
- iş
- by
- çağrı
- denilen
- CAN
- dava
- Durum çalışmaları
- meydan okuma
- zorluklar
- seçim
- Klinik
- iddia
- sınıf
- müşteri
- bulut
- kod
- Şirketler
- tamamlamak
- bileşenler
- yapılandırma
- konsolos
- içermek
- içeren
- içerik
- içindekiler
- kontrol
- kontroller
- uyan
- maliyetler
- yaratmak
- çevrimiçi kurslar düzenliyorlar.
- Oluşturma
- oluşturma
- kritik
- kripto
- kriptografik
- akım
- görenek
- Müşteriler
- veri
- Tarih
- Varsayılan
- göstermek
- gösteriyor
- tasarlanmış
- ayrıntı
- ayrıntılar
- farklı
- zor
- dağınık, dağılmış
- belge
- evraklar
- aşağı
- sırasında
- her
- kolayca
- sağlar
- Motor
- mühendis
- Mühendislik
- sağlamak
- Keşfet
- kuruluş
- örnek
- takas
- deneyim
- Başarısızlık
- Özellikler(Hazırlık aşamasında)
- Özellikler
- Alanlar
- dosyalar
- süzme
- filtreler
- odak
- takip et
- takip etme
- İçin
- Kısmet
- itibaren
- tam
- gelecek
- Kazanç
- oluşturmak
- oluşturulan
- nesil
- grup
- Grubun
- Konuk
- rehberlik
- Rehberler
- Var
- başlıkları
- yardım
- büyük ölçüde
- Ne kadar
- Nasıl Yapılır
- HTML
- http
- HTTPS
- ID
- tanımlayıcı
- Kimlik
- uygulanması
- ithalat
- in
- dahil
- Dahil olmak üzere
- indeks
- indeksler
- bireysel
- bilgi
- yenilikçi
- anlık
- yerine
- talimatlar
- Akıllı
- ISS
- yayınlama
- Veriliş
- IT
- ONUN
- Java
- John
- seyahat
- json
- jwt
- anahtar
- anahtarlar
- Çocuk
- ÖĞRENİN
- sevmek
- çizgi
- Liste
- Bakın
- gibi görünmek
- GÖRÜNÜYOR
- yapılmış
- yapmak
- Yapımı
- müdür
- tavır
- üretim
- çok
- Maç
- eşleşti
- anlamına geliyor
- Meta
- Metadata
- dakika
- ML
- Daha
- isim
- adlı
- Gezin
- Navigasyon
- yeni
- nesneler
- gözlemek
- of
- on
- açık
- açık kaynak
- sipariş
- organizasyonlar
- Diğer
- ana hatlar
- paket
- Kanal
- çiftleri
- bölmesi
- parametreler
- Bölüm
- Partner
- ortaklar
- parçalar
- geçmek
- Geçen
- tutkulu
- geçmiş
- Yapmak
- icra
- platform
- Platon
- Plato Veri Zekası
- PlatoVeri
- politikaları
- Çivi
- uygulamalar
- Hazırlamak
- Önceden
- Anapara
- özel
- süreç
- üretim
- sağlamak
- sağlayan
- sağlar
- halka açık
- sorgular
- menzil
- değişen
- Okumak
- teslim almak
- Alınan
- alır
- ilişkin
- değiştirmek
- Raporlar
- Depo
- Yer Alan Kurallar
- esnek
- Kaynaklar
- yanıt
- sorumlu
- sonuç
- Sonuçlar
- perakende
- tutmak
- dönüş
- açığa vurmak
- Rol
- rsa
- koşmak
- ölçek
- senaryolar
- Ara
- arama motoru
- Gizli
- Bölüm
- güvenli
- Secured
- Güvenli
- güvenlik
- ayrı
- hizmet
- Servis Sağlayıcı
- Hizmetler
- set
- birkaç
- SHA256
- paylaş
- Paylaşılan
- meli
- şov
- Gösteriler
- işaret
- imzalı
- önemli
- imza
- benzer
- basitleştirilmiş
- Yazılım
- Yazılım Mühendisi
- yazılım Mühendisliği
- çözüm
- Çözümler
- Çözme
- Kaynak
- özel
- Belirtilen
- standart
- start-up
- adım
- Basamaklar
- saklı
- aerodinamik
- dizi
- yapı
- çalışmalar
- böyle
- destekli
- Destekler
- sistem
- tablo
- Bizi daha iyi tanımak için
- Teknik
- Teknoloji
- kiracı
- terminal
- test
- Test yapmak
- o
- The
- Bilgi
- ve bazı Asya
- Onları
- Bunlar
- üç
- İçinden
- zaman
- için
- simge
- Jeton
- türleri
- birleşik
- URL
- kullanım
- kullanım
- kullanım durumu
- kullanıcı
- kullanıcılar
- DOĞRULA
- onaylama
- değer
- çeşitli
- Doğrulama
- doğrulamak
- sektörler
- ağ
- web hizmetleri
- İYİ
- hangi
- süre
- Whitepaper'lar
- DSÖ
- geniş
- Geniş ürün yelpazesi
- irade
- ile
- içinde
- olmadan
- işlenmiş
- çalışma
- çalışır
- Atölyeler
- yıl
- Sen
- zefirnet
- zip