در سطح جهانی، بسیاری از سازمانها دادههای تجاری مهمی دارند که در بین مخازن محتوای مختلف پراکنده شدهاند، که دسترسی به این اطلاعات را به شیوهای کارآمد و منسجم دشوار میکند. ایجاد یک تجربه جستجوی یکپارچه و امن یک چالش مهم برای سازمان ها است زیرا هر مخزن شامل طیف گسترده ای از قالب های سند و مکانیسم های کنترل دسترسی است.
آمازون کندرا یک سرویس جستجوی سازمانی هوشمند است که به کاربران امکان می دهد در مخازن محتوای مختلف جستجو کنند. مشتریان مسئول احراز هویت و اجازه دادن به کاربران برای دسترسی به برنامه جستجوی خود هستند و آمازون کندرا جستجوی ایمن را برای برنامههای کاربردی سازمانی فعال میکند و مطمئن میشود که نتایج جستجوی کاربر فقط شامل اسنادی است که کاربر مجاز به خواندن آنها است. آمازون کندرا به راحتی میتواند هویت تک تک کاربران و همچنین گروههای کاربری که جستجو را با اضافه کردن نشانههای جستجوی امن انجام میدهند، تأیید کند. با افزودن توکن های کاربر برای جستجوی ایمن، انجام جستجوهای فیلتر شده مبتنی بر دسترسی در آمازون کندرا ساده و ایمن می شود. میتوانید بهجای استفاده از فیلترهای مشخصه برای انجام این کار، اطلاعات دسترسی کاربر را بهطور ایمن در بار کوئری ارسال کنید. با استفاده از این ویژگی، آمازون کندرا می تواند اطلاعات توکن را تأیید کند و به طور خودکار آن را در نتایج جستجو برای فیلتر کردن دقیق و ایمن مبتنی بر دسترسی اعمال کند.
آمازون کندرا از کنترل دسترسی کاربر مبتنی بر توکن با استفاده از انواع توکن زیر پشتیبانی می کند:
- شناسه را باز کنید
- JWT با یک راز مشترک
- JWT با کلید عمومی
- JSON
قبلاً شاهد تظاهراتی بودیم کنترل دسترسی کاربر مبتنی بر توکن در آمازون کندرا با شناسه باز. در این پست، کنترل دسترسی کاربر مبتنی بر توکن را در آمازون کندرا با JWT با یک راز مشترک نشان میدهیم. JWT یا JSON Web Token یک استاندارد باز است که برای به اشتراک گذاری اطلاعات امنیتی بین مشتری و سرور استفاده می شود. این شامل اشیاء JSON کدگذاری شده، از جمله مجموعه ای از ادعاها است. JWT ها با استفاده از یک الگوریتم رمزنگاری امضا می شوند تا اطمینان حاصل شود که ادعاها پس از صدور توکن قابل تغییر نیستند. JWT ها در سناریوهای مربوط به مجوز و تبادل اطلاعات مفید هستند.
JWT ها از سه قسمت تشکیل شده اند که با نقاط (.) از هم جدا شده اند:
- سربرگ - شامل بخش هایی مانند نوع توکن، که JWT است، الگوریتم امضای مورد استفاده، مانند HMAC SHA256 یا RSA، و یک شناسه کلید اختیاری است.
- ظرفیت ترابری - این شامل چندین جفت کلید-مقدار است که نامیده می شوند ادعای، که توسط ارائه دهنده هویت صادر می شود. علاوه بر چندین ادعای مربوط به صدور و انقضای ژتون، ژتون همچنین می تواند حاوی اطلاعاتی در مورد شخص اصلی و مستاجر باشد.
- امضا - برای ایجاد قسمت امضا، سربرگ کدگذاری شده، بار رمزگذاری شده، یک رمز، الگوریتم مشخص شده در هدر را می گیرید و آن را امضا می کنید.
بنابراین، یک JWT به شکل زیر است:
نمونه هدر زیر است:
نمونه زیر نمونه بارگیری است:
JWT با یک کلید مخفی ایجاد می شود، و آن کلید مخفی برای شما خصوصی است، به این معنی که شما هرگز آن را برای عموم فاش نخواهید کرد یا آن را در داخل JWT تزریق نمی کنید. هنگامی که یک JWT از مشتری دریافت می کنید، می توانید JWT را با کلید مخفی ذخیره شده در سرور تأیید کنید. هر گونه تغییر در JWT منجر به خرابی تأیید (اعتبارسنجی JWT) می شود.
این پست نمونه استفاده از یک JWT با استفاده از کلید دسترسی مشترک و استفاده از آن برای ایمن سازی نمایه های Amazon Kendra با کنترل های دسترسی را نشان می دهد. در تولید، شما از یک ارائه دهنده خدمات احراز هویت امن به انتخاب خود و بر اساس نیازهای خود برای تولید JWT استفاده می کنید.
برای کسب اطلاعات بیشتر در مورد JWT ها، مراجعه کنید مقدمه ای بر JSON Web Tokens.
بررسی اجمالی راه حل
شبیه به پست با Open ID، این راهحل برای مجموعهای از کاربران و گروهها طراحی شده است تا درخواستهای جستجو را در مخزن اسناد انجام دهند، و نتایج فقط از اسنادی که مجاز به دسترسی در آن گروه هستند، بازگردانده میشوند. جدول زیر نشان میدهد که هر کاربر مجاز به دسترسی به کدام اسناد برای مورد استفاده ما است. اسنادی که در این مثال استفاده می شوند زیرمجموعه ای از اسناد عمومی AWS هستند.
کاربر | گروه | نوع سند مجاز برای دسترسی |
مهمان | . | وبلاگ ها |
پاتریشیا | مشتری | وبلاگ ها، راهنمای کاربر |
جیمز | حراجی | وبلاگ ها، راهنمای کاربر، مطالعات موردی |
جان | بازار یابی (Marketing) | وبلاگ ها، راهنمای کاربر، مطالعات موردی، گزارش های تحلیلگر |
مريم | معمار راه حل ها | وبلاگ ها، راهنمای کاربر، مطالعات موردی، گزارش های تحلیلگر، وایت پیپر |
نمودار زیر ایجاد یک JWT با یک کلید دسترسی مشترک برای کنترل دسترسی کاربران به اسناد خاص در فهرست آمازون کندرا را نشان می دهد.
هنگامی که یک نمایه آمازون کندرا یک تماس API پرس و جو با توکن دسترسی کاربر دریافت می کند، رمز را با استفاده از یک کلید مخفی مشترک (که به طور ایمن در مدیر اسرار AWS) و پارامترهایی مانند نام کاربری و گروه ها را در بارگذاری دریافت می کند. نمایه Amazon Kendra نتایج جستجو را بر اساس فهرست کنترل دسترسی ذخیره شده (ACL) و اطلاعات دریافتی در JWT کاربر فیلتر می کند. این نتایج فیلتر شده در پاسخ به درخواست درخواست API ایجاد شده توسط برنامه بازگردانده می شوند.
پیش نیازها
برای انجام مراحل این پست، حتما موارد زیر را داشته باشید:
یک JWT با یک کلید مخفی مشترک ایجاد کنید
نمونه کد جاوا زیر نحوه ایجاد یک JWT با یک کلید مخفی مشترک با استفاده از منبع باز را نشان می دهد jsonwebtoken بسته بندی در تولید، شما از یک ارائه دهنده خدمات احراز هویت امن به انتخاب خود و بر اساس نیازهای خود برای تولید JWT استفاده خواهید کرد.
ما اطلاعات نام کاربری و گروهبندی را به عنوان ادعا در محموله ارسال میکنیم، JWT را با راز مشترک امضا میکنیم و یک JWT خاص برای آن کاربر ایجاد میکنیم. یک رشته 256 بیتی را به عنوان راز خود ارائه دهید و مقدار راز مشترک کدگذاری شده URL base64 را برای استفاده در مرحله بعد حفظ کنید.
یک فهرست آمازون کندرا با یک راز مشترک JWT ایجاد کنید
برای دستورالعمل های ایجاد نمایه آمازون کندرا، مراجعه کنید ایجاد یک شاخص. یادداشت کنید هویت AWS و مدیریت دسترسی نقش (IAM) که در طول فرآیند ایجاد کردید. دسترسی نقش به سطل S3 و مدیر اسرار را به دنبال آن فراهم کنید اصل حداقل امتیاز. به عنوان مثال به سیاست ها مراجعه کنید نمونه سیاست های مبتنی بر هویت IAM. پس از ایجاد ایندکس، کنسول آمازون کندرا باید مانند تصویر زیر باشد.
مراحل زیر را برای افزودن راز خود تکمیل کنید:
- در کنسول آمازون کندرا، به کنترل دسترسی کاربر برگه در صفحه جزئیات فهرست شما.
- را انتخاب کنید ویرایش تنظیمات.
- از آنجایی که ما در حال اجرای کنترل دسترسی مبتنی بر توکن هستیم، انتخاب کنید بله زیر تنظیمات کنترل دسترسی.
- تحت پیکربندی توکن، انتخاب کنید JWT با راز مشترک برای نوع نشانه.
- برای نوع راز، انتخاب کنید جدید.
- برای نام مخفی، وارد
AmazonKendra-jwt-shared-secret
یا هر اسم دلخواه شما - برای شناسه کلید، شناسه کلید را برای مطابقت با JWT خود که در کد جاوا نمونه ایجاد کرده اید وارد کنید.
- برای الگوریتم، الگوریتم HS256 را انتخاب کنید.
- برای راز مشترک، راز رمزگذاری شده URL حفظ شده خود را که قبلاً از کد جاوا ایجاد شده است وارد کنید.
- را انتخاب کنید راز را ذخیره کنید.
این راز اکنون در Secrets Manager به عنوان یک مجموعه کلید وب JSON (JWKS) ذخیره خواهد شد. می توانید آن را در کنسول Secrets Manager پیدا کنید. برای جزئیات بیشتر مراجعه کنید استفاده از JSON Web Token (JWT) با راز مشترک.
- گسترش پیکربندی پیشرفته بخش.
در این مرحله، نام کاربری و گروههایی را تنظیم میکنیم که از ادعاهای JWT استخراج میشوند و در صورت معتبر بودن امضا با ACL مطابقت داده میشوند.
- برای نام کاربرینام کاربری را وارد کنید.
- برای گروه ها، وارد گروه ها شوید.
- فیلدهای اختیاری را به عنوان پیش فرض بگذارید.
- را انتخاب کنید بعدی، پس از آن را انتخاب کنید بروزرسانی.
سطل S3 خود را به عنوان منبع داده آماده کنید
برای تهیه یک سطل S3 به عنوان منبع داده، یک سطل S3 ایجاد کنید. در ترمینال با رابط خط فرمان AWS (AWS CLI) یا AWS CloudShell، دستورات زیر را برای آپلود اسناد و ابرداده ها در سطل منبع داده اجرا کنید:
اسناد مورد درخواست در یک سطل S3 ذخیره می شوند. هر نوع سند دارای یک پوشه جداگانه است: وبلاگها، مطالعات موردی، گزارشهای تحلیلگر، راهنمای کاربر، و کاغذهای سفید. این ساختار پوشه در پوشه ای به نام Data قرار دارد. فایل های فراداده از جمله ACL ها در پوشه ای به نام Meta قرار دارند.
ما از کانکتور Amazon Kendra S3 برای پیکربندی این سطل S3 به عنوان منبع داده استفاده می کنیم. هنگامی که منبع داده با نمایه آمازون کندرا همگام می شود، تمام اسناد را می خزد و فهرست می کند و همچنین ACL ها و ویژگی های سند را از فایل های ابرداده جمع آوری می کند. برای کسب اطلاعات بیشتر در مورد ACL ها با استفاده از فایل های ابرداده، مراجعه کنید ابرداده سند آمازون S3. برای این مثال از ویژگی custom استفاده می کنیم DocumentType
برای نشان دادن نوع سند پس از آپلود، ساختار سطل S3 شما باید مانند تصویر زیر باشد.
برای تنظیم ویژگی سفارشی DocumentType
، مراحل زیر را کامل کنید:
- شاخص Kendra خود را انتخاب کنید و انتخاب کنید تعریف وجهی در صفحه ناوبری
- را انتخاب کنید فیلد اضافه کنید.
- برای نام زمینه، وارد
DocumentType
. - برای نوع داده، انتخاب کنید رشته.
- را انتخاب کنید اضافه کردن.
اکنون می توانید اسناد را از سطلی که ایجاد کرده اید به فهرست آمازون کندرا با استفاده از رابط S3 وارد کنید. برای دستورالعمل کامل، مراجعه کنید دریافت اسناد از طریق رابط آمازون Kendra S3.
- در تنظیمات همگام سازی را پیکربندی کنید بخش، برای محل منبع داده را وارد کنید، سطل S3 خود را وارد کنید (
s3://kendra-demo-bucket/
). - برای محل پوشه پیشوند فایل های فراداده، وارد
Meta/
. - گسترش پیکربندی اضافی.
- بر شامل الگوها برگه، برای پیشوند، وارد
Data/
.
برای اطلاعات بیشتر در مورد کانکتورهای پشتیبانی شده، رجوع کنید اتصالات.
- را انتخاب کنید بعدی، و سپس بعدی دوباره، سپس بروزرسانی.
- منتظر بمانید تا منبع داده ایجاد شود، سپس منبع داده را انتخاب کنید و انتخاب کنید اکنون همگام سازی کنید.
همگام سازی منبع داده می تواند 10 تا 15 دقیقه طول بکشد. وقتی همگام سازی شما کامل شد، آخرین وضعیت همگام سازی باید به عنوان نشان داده شود موفق.
یک شاخص آمازون کندرا را جستجو کنید
برای اجرای یک پرس و جو آزمایشی در فهرست خود، مراحل زیر را انجام دهید:
- در کنسول آمازون کندرا، انتخاب کنید محتوای نمایه شده را جستجو کنید در صفحه ناوبری
- گسترش پرس و جو را با یک نشانه دسترسی آزمایش کنید.
- را انتخاب کنید توکن را اعمال کنید.
- ما می توانیم یک JWT برای کاربر و گروه تولید کنیم. در این مثال، ما یک JWT برای
AWS-SA
گروه ما نام کاربری را به عنوان Mary و گروه ها را جایگزین می کنیمAWS-SA
در مرحله تولید JWT. - توکن تولید شده را وارد کرده و انتخاب کنید درخواست.
بر اساس ACL، ما باید از همه پوشهها نتیجه بگیریم: وبلاگها، راهنمای کاربر، مطالعات موردی، گزارشهای تحلیلگر، و کاغذهای سفید.
به طور مشابه، هنگامی که به عنوان جیمز از AWS-Sales
گروه و با گذراندن JWT مربوطه، فقط به وبلاگ ها، راهنمای کاربر و مطالعات موردی دسترسی داریم.
همچنین میتوانیم ایندکس را بهعنوان مهمان بدون پاس کردن توکن جستجو کنیم. مهمان فقط می تواند به مطالب موجود در پوشه وبلاگ ها دسترسی داشته باشد.
با استفاده از پرس و جوهای دیگری که می توانید به عنوان کاربران و گروه های مختلف به آن فکر کنید، آزمایش کنید و نتایج را مشاهده کنید.
پاک کردن
برای جلوگیری از متحمل شدن هزینه های آینده، منابعی را که به عنوان بخشی از این راه حل ایجاد کرده اید، پاکسازی کنید. برای حذف نمایه آمازون کندرا و سطل S3 ایجاد شده در حین آزمایش راه حل، مراجعه کنید پاک کردن. برای حذف راز Secrets Manager مراجعه کنید یک راز AWS Secrets Manager را حذف کنید.
نتیجه
در این پست دیدیم که چگونه آمازون کندرا می تواند جستجوهای ایمن انجام دهد که فقط نتایج جستجو را بر اساس دسترسی کاربر برمی گرداند. با افزودن یک JWT با یک کلید مخفی مشترک، به راحتی میتوانیم هویت تک تک کاربران و همچنین گروههای کاربری که جستجو را انجام میدهند تأیید کنیم. این رویکرد مشابه را می توان به الف تعمیم داد JWT با کلید عمومی. برای کسب اطلاعات بیشتر به ادامه مطلب مراجعه نمایید استفاده از JSON Web Token (JWT) با راز مشترک.
درباره نویسنده
نیتین اوسبیوس یک معمار راه حل های سازمانی Sr. در AWS با بیش از 18 سال تجربه در مهندسی نرم افزار و معماری سازمانی است. او با مشتریان همکاری می کند تا به آنها کمک کند تا برنامه های کاربردی با معماری خوبی بر روی پلت فرم AWS بسازند. او مشتاق حل چالش های فناوری و کمک به مشتریان در سفر ابری است.
کروتی جایاسیمها رائو یک معمار راه حل های شریک با تمرکز بر هوش مصنوعی و ML است. او راهنمایی های فنی را برای شرکای AWS در پیروی از بهترین شیوه ها برای ایجاد راه حل های ایمن، انعطاف پذیر و بسیار در دسترس در AWS Cloud ارائه می دهد.
ایشان بری یک مهندس نرم افزار در خدمات وب آمازون است که روی Amazon Kendra، یک موتور جستجوی سازمانی کار می کند. او علاقه زیادی به امنیت دارد و در 2 سال گذشته روی اجزای کلیدی ویژگی های کنترل دسترسی Kendra کار کرده است.
آکاش بهاتیا یک معمار راه حل اصلی با AWS است. تمرکز فعلی او کمک به مشتریان سازمانی برای دستیابی به نتایج تجاری خود از طریق معماری و اجرای راه حل های نوآورانه و انعطاف پذیر در مقیاس است. او بیش از 15 سال است که در زمینه فناوری در شرکتهایی از Fortune 100 تا استارتآپهای تولیدی، هوافضا و خردهفروشی کار میکند.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- پلاتوبلاک چین. Web3 Metaverse Intelligence. دانش تقویت شده دسترسی به اینجا.
- ضرب کردن آینده با آدرین اشلی. دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/secure-your-amazon-kendra-indexes-with-the-acl-using-a-jwt-shared-secret-key/
- :است
- $UP
- 10
- 100
- 11
- سال 15
- 420
- 7
- 8
- 9
- a
- قادر
- درباره ما
- دسترسی
- انجام دادن
- دقیق
- رسیدن
- در میان
- اضافه
- هوافضا
- پس از
- AI
- الگوریتم
- معرفی
- اجازه می دهد تا
- آمازون
- آمازون کندرا
- آمازون خدمات وب
- در میان
- روانکاو
- و
- API
- کاربرد
- برنامه های کاربردی
- درخواست
- روش
- معماری
- هستند
- AS
- At
- خواص
- تصدیق
- مجوز
- بطور خودکار
- در دسترس
- AWS
- مستقر
- BE
- زیرا
- بودن
- بهترین
- بهترین شیوه
- میان
- بیت
- وبلاگ ها
- ساختن
- کسب و کار
- by
- صدا
- نام
- CAN
- مورد
- مطالعات موردی
- به چالش
- چالش ها
- انتخاب
- را انتخاب کنید
- ادعای
- کلاس
- مشتری
- ابر
- رمز
- شرکت
- کامل
- اجزاء
- پیکر بندی
- کنسول
- شامل
- شامل
- محتوا
- محتویات
- کنترل
- گروه شاهد
- متناظر
- هزینه
- ایجاد
- ایجاد شده
- ایجاد
- ایجاد
- بحرانی
- عضو سازمانهای سری ومخفی
- رمزنگاری
- جاری
- سفارشی
- مشتریان
- داده ها
- تاریخ
- به طور پیش فرض
- نشان دادن
- نشان می دهد
- طراحی
- جزئیات
- جزئیات
- مختلف
- مشکل
- پراکنده
- سند
- اسناد و مدارک
- پایین
- در طی
- هر
- به آسانی
- را قادر می سازد
- موتور
- مهندس
- مهندسی
- اطمینان حاصل شود
- وارد
- سرمایه گذاری
- مثال
- تبادل
- تجربه
- شکست
- ویژگی
- امکانات
- زمینه
- فایل ها
- فیلتر
- فیلترها برای تصفیه آب
- تمرکز
- به دنبال
- پیروی
- برای
- ثروت
- از جانب
- کامل
- آینده
- افزایش
- تولید می کنند
- تولید
- نسل
- گروه
- گروه ها
- مهمان
- راهنمایی
- راهنما
- آیا
- هدر
- کمک
- خیلی
- چگونه
- چگونه
- HTML
- HTTP
- HTTPS
- ID
- شناسه
- هویت
- اجرای
- واردات
- in
- شامل
- از جمله
- شاخص
- فهرستها
- فرد
- اطلاعات
- ابتکاری
- فوری
- در عوض
- دستورالعمل
- هوشمند
- ISS
- صدور
- صادر
- IT
- ITS
- جاوه
- جان
- سفر
- json
- Jwt
- کلید
- کلید
- بچه
- یاد گرفتن
- پسندیدن
- لاین
- فهرست
- نگاه کنيد
- شبیه
- مطالب
- ساخته
- ساخت
- ساخت
- مدیر
- روش
- تولید
- بسیاری
- مسابقه
- تطبیق
- به معنی
- متا
- متاداده
- دقیقه
- ML
- بیش
- نام
- تحت عنوان
- هدایت
- جهت یابی
- جدید
- اشیاء
- مشاهده کردن
- of
- on
- باز کن
- منبع باز
- سفارش
- سازمان های
- دیگر
- نمای کلی
- بسته
- با ما
- جفت
- قطعه
- پارامترهای
- بخش
- شریک
- شرکای
- بخش
- عبور
- عبور
- احساساتی
- گذشته
- انجام
- انجام
- سکو
- افلاطون
- هوش داده افلاطون
- PlatoData
- سیاست
- پست
- شیوه های
- آماده
- قبلا
- اصلی
- خصوصی
- روند
- تولید
- ارائه
- ارائه دهنده
- فراهم می کند
- عمومی
- نمایش ها
- محدوده
- اعم
- خواندن
- گرفتن
- اخذ شده
- دریافت
- با توجه
- جایگزین کردن
- گزارش ها
- مخزن
- مورد نیاز
- انعطاف پذیر
- منابع
- پاسخ
- مسئوليت
- نتیجه
- نتایج
- خرده فروشی
- نگه داشتن
- برگشت
- فاش کردن
- نقش
- rsa
- دویدن
- مقیاس
- سناریوها
- جستجو
- موتور جستجو
- راز
- بخش
- امن
- امن
- ایمن
- تیم امنیت لاتاری
- جداگانه
- سرویس
- ارائه دهنده خدمات
- خدمات
- تنظیم
- چند
- SHA256
- اشتراک گذاری
- به اشتراک گذاشته شده
- باید
- نشان
- نشان می دهد
- امضاء
- امضاء شده
- قابل توجه
- امضای
- مشابه
- ساده شده
- نرم افزار
- مهندس نرمافزار
- مهندسی نرم افزار
- راه حل
- مزایا
- حل کردن
- منبع
- خاص
- مشخص شده
- استاندارد
- شروع یو پی اس
- گام
- مراحل
- ذخیره شده
- ساده
- رشته
- ساختار
- مطالعات
- چنین
- پشتیبانی
- پشتیبانی از
- سیستم
- جدول
- گرفتن
- فنی
- پیشرفته
- مستاجر
- پایانه
- آزمون
- تست
- که
- La
- اطلاعات
- شان
- آنها
- اینها
- سه
- از طریق
- زمان
- به
- رمز
- نشانه
- انواع
- یکپارچه
- URL
- استفاده
- استفاده کنید
- مورد استفاده
- کاربر
- کاربران
- تصدیق
- اعتبار سنجی
- ارزش
- مختلف
- تایید
- بررسی
- عمودی
- وب
- خدمات وب
- خوب
- که
- در حین
- کاغذهای سفید
- WHO
- وسیع
- دامنه گسترده
- اراده
- با
- در داخل
- بدون
- مشغول به کار
- کارگر
- با این نسخهها کار
- کارگاه های آموزشی
- سال
- شما
- شما
- زفیرنت
- زیپ