בעולם, לארגונים רבים יש נתונים עסקיים קריטיים המפוזרים בין מאגרי תוכן שונים, מה שמקשה על גישה למידע זה בצורה יעילה ומגובשת. יצירת חווית חיפוש מאוחדת ומאובטחת היא אתגר משמעותי עבור ארגונים מכיוון שכל מאגר מכיל מגוון רחב של פורמטים של מסמכים ומנגנוני בקרת גישה.
אמזון קנדרה הוא שירות חיפוש ארגוני חכם המאפשר למשתמשים לחפש בין מאגרי תוכן שונים. לקוחות אחראים לאימות והרשאה למשתמשים לקבל גישה לאפליקציית החיפוש שלהם, ואמזון קנדרה מאפשרת חיפוש מאובטח עבור יישומים ארגוניים, ומוודאת שתוצאות שאילתת החיפוש של המשתמש כוללות רק מסמכים שהמשתמש מורשה לקרוא. אמזון קנדרה יכולה לאמת בקלות את הזהות של משתמשים בודדים כמו גם קבוצות משתמשים שמבצעות חיפושים עם תוספת של אסימוני חיפוש מאובטחים. על ידי הוספת אסימוני משתמש לחיפוש מאובטח, ביצוע חיפושים מסוננים מבוססי גישה באמזון קנדרה מפושט ומאובטח. אתה יכול להעביר באופן מאובטח מידע גישה למשתמש במטען השאילתה במקום להשתמש במסנני תכונות כדי להשיג זאת. עם תכונה זו, אמזון קנדרה יכולה לאמת את מידע האסימון ולהחיל אותו אוטומטית על תוצאות החיפוש לצורך סינון מדויק ומאובטח מבוסס גישה.
אמזון קנדרה תומכת בקרת גישה של משתמשים מבוססת אסימונים באמצעות סוגי האסימונים הבאים:
- מזהה פתוח
- JWT עם סוד משותף
- JWT עם מפתח ציבורי
- JSON
בעבר ראינו הדגמה של בקרת גישת משתמש מבוססת אסימון באמזון קנדרה עם Open ID. בפוסט זה, אנו מדגימים בקרת גישה מבוססת אסימון באמזון קנדרה עם JWT עם סוד משותף. JWT, או JSON Web Token, הוא תקן פתוח המשמש לשיתוף מידע אבטחה בין לקוח לשרת. הוא מכיל אובייקטי JSON מקודדים, כולל קבוצה של תביעות. JWTs נחתמים באמצעות אלגוריתם קריפטוגרפי כדי להבטיח שלא ניתן לשנות את התביעות לאחר הנפקת האסימון. JWTs שימושיים בתרחישים לגבי הרשאות וחילופי מידע.
JWTs מורכבים משלושה חלקים מופרדים על ידי נקודות (.):
- כותרת - הוא מכיל חלקים כמו סוג האסימון, שהוא JWT, אלגוריתם החתימה בשימוש, כגון HMAC SHA256 או RSA, ומזהה מפתח אופציונלי.
- מטען – זה מכיל כמה זוגות מפתח-ערך, הנקראים טענות, המונפקים על ידי ספק הזהות. בנוסף למספר תביעות הנוגעות להנפקה ותפוגה של האסימון, האסימון יכול להכיל גם מידע על המנהל והדייר הבודדים.
- חתימה – כדי ליצור את חלק החתימה, אתה לוקח את הכותרת המקודדת, את המטען המקודד, סוד, את האלגוריתם שצוין בכותרת, וחותם על זה.
לכן, JWT נראה כך:
להלן כותרת לדוגמה:
להלן המטען לדוגמה:
ה-JWT נוצר עם מפתח סודי, והמפתח הסודי הזה הוא פרטי עבורך, מה שאומר שלעולם לא תחשוף אותו לציבור או תזריק אותו ל-JWT. כאשר אתה מקבל JWT מהלקוח, אתה יכול לאמת את ה-JWT עם המפתח הסודי המאוחסן בשרת. כל שינוי ב-JWT יגרום לכישלון אימות (אימות JWT).
פוסט זה מדגים את השימוש לדוגמה ב-JWT באמצעות מפתח גישה משותף והשימוש בו לאבטחת אינדקסים של אמזון קנדרה עם בקרות גישה. בייצור, אתה משתמש בספק שירותי אימות מאובטח לפי בחירתך ובהתבסס על הדרישות שלך כדי ליצור JWTs.
למידע נוסף על JWTs, עיין ב היכרות עם JSON Web Tokens.
סקירת פתרונות
בדומה ל פוסט עם Open ID, פתרון זה מיועד לקבוצה של משתמשים וקבוצות לבצע שאילתות חיפוש למאגר מסמכים, והתוצאות מוחזרות רק מאותם מסמכים המורשים לגישה בתוך אותה קבוצה. הטבלה הבאה מתארת לאילו מסמכים כל משתמש מורשה לגשת למקרה השימוש שלנו. המסמכים שבהם נעשה שימוש בדוגמה זו הם תת-קבוצה של מסמכים ציבוריים של AWS.
משתמש | קְבוּצָה | סוג המסמך מורשה לגישה |
אוֹרֵחַ | . | בלוגים |
פטרישיה | לקוח | בלוגים, מדריכי משתמשים |
ג'יימס | מבצעים | בלוגים, מדריכי משתמשים, מחקרי מקרה |
ג'ון | שיווק | בלוגים, מדריכי משתמשים, מקרים, דוחות אנליסטים |
מרי | אדריכל פתרונות | בלוגים, מדריכי משתמשים, מקרים, דוחות אנליסטים, ניירות לבנים |
התרשים הבא ממחיש את היצירה של JWT עם מפתח גישה משותף לשליטה בגישה למשתמשים למסמכים הספציפיים באינדקס אמזון קנדרה.
כאשר אינדקס אמזון קנדרה מקבל קריאת API של שאילתה עם אסימון גישה למשתמש, הוא מאמת את האסימון באמצעות מפתח סודי משותף (מאוחסן בצורה מאובטחת ב- מנהל סודות AWS) ומקבל פרמטרים כמו שם משתמש וקבוצות במטען. אינדקס Amazon Kendra מסנן את תוצאות החיפוש על סמך רשימת בקרת הגישה המאוחסנת (ACL) והמידע המתקבל ב-JWT של המשתמש. התוצאות המסוננות הללו מוחזרות בתגובה לקריאת ה-API של השאילתה שנעשתה על ידי האפליקציה.
תנאים מוקדמים
על מנת לבצע את השלבים בפוסט זה, ודא שיש לך את הדברים הבאים:
צור JWT עם מפתח סודי משותף
קוד ה-Java לדוגמה הבא מראה כיצד ליצור JWT עם מפתח סודי משותף באמצעות הקוד הפתוח jsonwebtoken חֲבִילָה. בייצור, תשתמש בספק שירותי אימות מאובטח לבחירתך ובהתבסס על הדרישות שלך ליצירת JWTs.
אנו מעבירים את שם המשתמש ומקבצים את המידע כטענות במטען, חותמים את ה-JWT עם הסוד המשותף, ומייצרים JWT ספציפי עבור אותו משתמש. ספק מחרוזת של 256 סיביות בתור הסוד שלך ושמור על הערך של הסוד המשותף המקודד ב-URL base64 לשימוש בשלב מאוחר יותר.
צור אינדקס אמזון קנדרה עם סוד משותף של JWT
להנחיות ליצירת אינדקס אמזון קנדרה, עיין ב יצירת אינדקס. רשום את ה AWS זהות וניהול גישה תפקיד (IAM) שיצרת במהלך התהליך. ספק את הגישה לתפקיד ל-S3 דלי ומנהל הסודות בעקבות ה עקרון הפחות זכות. למשל מדיניות, עיין ב דוגמה למדיניות מבוססת זהות של IAM. לאחר יצירת האינדקס, קונסולת אמזון קנדרה שלך צריכה להיראות כמו צילום המסך הבא.
השלם את השלבים הבאים כדי להוסיף את הסוד שלך:
- בקונסולת אמזון קנדרה, נווט אל בקרת גישה למשתמש הכרטיסייה בדף פרטי האינדקס שלך.
- בחרו ערוך הגדרות.
- מכיוון שאנו מיישמים בקרת גישה מבוססת אסימון, בחר יש תחת הגדרות בקרת גישה.
- תַחַת תצורת אסימון, בחר JWT עם סוד משותף ל סוג אסימון.
- בעד סוג סוד, בחר חדש.
- בעד שם סודי, להיכנס
AmazonKendra-jwt-shared-secret
או כל שם שתבחר. - בעד מזהה מפתח, הזן את מזהה המפתח שיתאים ל-JWT שלך שיצרת בקוד ה-Java לדוגמה.
- בעד אַלגוֹרִיתְם, בחר באלגוריתם HS256.
- בעד סוד משותף, הזן את הסוד המקודד שלך ב-base64 כתובת האתר שנוצר מקוד Java קודם לכן.
- בחרו שמור סוד.
הסוד יישמר כעת ב- Secrets Manager כ-JSON Web Key Set (JWKS). אתה יכול לאתר אותו במסוף מנהל הסודות. לפרטים נוספים, עיין ב שימוש ב-JSON Web Token (JWT) עם סוד משותף.
- הרחב תצורה מתקדמת סָעִיף.
בשלב זה, הגדרנו את שם המשתמש והקבוצות שיחולצו מתביעות JWT ויתואמו ל-ACL כאשר החתימה תקפה.
- בעד שם משתמשהכנס שם משתמש.
- בעד קבוצות, היכנס לקבוצות.
- השאר את השדות האופציונליים כברירת מחדל.
- בחרו הַבָּא, ואז לבחור עדכון.
הכן את דלי ה-S3 שלך כמקור נתונים
כדי להכין דלי S3 כמקור נתונים, צור דלי S3. בטרמינל עם ה ממשק שורת הפקודה של AWS (AWS CLI) או AWS CloudShell, הפעל את הפקודות הבאות כדי להעלות את המסמכים והמטא נתונים אל דלי מקור הנתונים:
המסמכים הנשאלים מאוחסנים בדלי S3. לכל סוג מסמך יש תיקייה נפרדת: בלוגים, מקרי מקרים, דוחות אנליסטים, מדריכים למשתמש ומאמרים לבנים. מבנה תיקיות זה כלול בתיקייה בשם Data. קבצי מטא נתונים כולל ה-ACLs נמצאים בתיקייה בשם Meta.
אנו משתמשים במחבר Amazon Kendra S3 כדי להגדיר את דלי S3 זה כמקור הנתונים. כאשר מקור הנתונים מסונכרן עם אינדקס אמזון קנדרה, הוא סורק ומוסיף לאינדקס את כל המסמכים וכן אוסף את ה-ACL ותכונות המסמך מקובצי המטא נתונים. למידע נוסף על ACLs באמצעות קובצי מטא נתונים, עיין ב מטא נתונים של מסמך אמזון S3. עבור דוגמה זו, אנו משתמשים בתכונה המותאמת אישית DocumentType
כדי לציין את סוג המסמך. לאחר ההעלאה, מבנה הדלי S3 שלך אמור להיראות כמו צילום המסך הבא.
כדי להגדיר את התכונה המותאמת אישית DocumentType
, השלם את השלבים הבאים:
- בחר את אינדקס הקנדרה שלך ובחר הגדרת פנים בחלונית הניווט.
- בחרו הוסף שדה.
- בעד שם שדה, להיכנס
DocumentType
. - בעד סוג מידע, בחר מחרוזת.
- בחרו להוסיף.
עכשיו אתה יכול להטמיע מסמכים מהדלי שיצרת לאינדקס Amazon Kendra באמצעות מחבר S3. להנחיות מלאות, עיין ב הכנסת מסמכים דרך מחבר Amazon Kendra S3.
- ב הגדר הגדרות סנכרון קטע, עבור הזן את מיקום מקור הנתונים, הזן את דלי ה-S3 שלך (
s3://kendra-demo-bucket/
). - בעד מיקום תיקיית קידומת קידומת מטא-נתונים, להיכנס
Meta/
. - לְהַרְחִיב תצורה נוספת.
- על כלול דפוסים לשונית, עבור קידומת, להיכנס
Data/
.
למידע נוסף על מחברים נתמכים, ראה מחברים.
- בחרו הַבָּא, לאחר מכן הַבָּא שוב, אם כך עדכון.
- המתן ליצירת מקור הנתונים, ולאחר מכן בחר את מקור הנתונים ובחר סנכרן כעת.
הסנכרון של מקור הנתונים עשוי להימשך 10-15 דקות. לאחר השלמת הסנכרון, סטטוס סנכרון אחרון צריך להראות בתור מוצלח.
שאילתה באינדקס של אמזון קנדרה
כדי להפעיל שאילתת בדיקה באינדקס שלך, בצע את השלבים הבאים:
- בקונסולת אמזון קנדרה, בחר חפש תוכן באינדקס בחלונית הניווט.
- לְהַרְחִיב שאילתת בדיקה עם אסימון גישה.
- בחרו החל אסימון.
- אנחנו יכולים ליצור JWT עבור המשתמש והקבוצה. בדוגמה זו, אנו יוצרים JWT עבור
AWS-SA
קְבוּצָה. אנחנו מחליפים את שם המשתמש בתור Mary וקבוצות כמוAWS-SA
בשלב הדור JWT. - הזן את האסימון שנוצר ובחר החל.
בהתבסס על ה-ACL, אנחנו אמורים להיות תוצאות מכל התיקיות: בלוגים, מדריכים למשתמש, מקרי מקרים, דוחות אנליסטים ומאמרים לבנים.
באופן דומה, כאשר מחובר בתור ג'יימס מה- AWS-Sales
לקבוצה ולעבור את ה-JWT המתאים, יש לנו גישה רק לבלוגים, מדריכים למשתמש ותיאורי מקרה.
אנחנו יכולים גם לחפש באינדקס כאורח מבלי להעביר אסימון. האורח יכול לגשת רק לתוכן בתיקיית הבלוגים.
נסה להשתמש בשאילתות אחרות שאתה יכול לחשוב עליהן כשאתה מחובר כמשתמשים וקבוצות שונות וצפה בתוצאות.
לנקות את
כדי למנוע עלויות עתידיות, נקה את המשאבים שיצרת כחלק מפתרון זה. למחיקת אינדקס אמזון קנדרה ודלי S3 שנוצרו בזמן בדיקת הפתרון, עיין ב ניקוי. כדי למחוק את סוד מנהל הסודות, עיין ב מחק סוד של מנהל סודות AWS.
סיכום
בפוסט זה ראינו כיצד אמזון קנדרה יכולה לבצע חיפושים מאובטחים שמחזירים תוצאות חיפוש רק על סמך גישת משתמשים. עם תוספת של JWT עם מפתח סודי משותף, נוכל לאמת בקלות את הזהות של משתמשים בודדים כמו גם קבוצות משתמשים שמבצעות חיפושים. ניתן להרחיב גישה דומה זו ל- a JWT עם מפתח ציבורי. למידע נוסף, עיין ב שימוש ב-JSON Web Token (JWT) עם סוד משותף.
על הכותבים
ניטין אוזביוס הוא Sr. Enterprise Solutions Architect ב-AWS עם למעלה מ-18 שנות ניסיון בהנדסת תוכנה וארכיטקטורה ארגונית. הוא עובד עם לקוחות כדי לעזור להם לבנות יישומים מעוצבים היטב בפלטפורמת AWS. הוא נלהב מפתרון אתגרים טכנולוגיים ולעזור ללקוחות במסע הענן שלהם.
קרותי ג'ייסימה ראו הוא אדריכל פתרונות שותפים עם התמקדות ב-AI ו-ML. היא מספקת הדרכה טכנית לשותפי AWS בביצוע שיטות עבודה מומלצות לבניית פתרונות מאובטחים, עמידים וזמינים במיוחד בענן AWS.
ישאן ברי הוא מהנדס תוכנה בחברת Amazon Web Services, עובד על Amazon Kendra, מנוע חיפוש ארגוני. הוא נלהב מאבטחה ועבד על רכיבים מרכזיים של תכונות בקרת הגישה של קנדרה במהלך השנתיים האחרונות.
אקאש בהטיה הוא ארכיטקט פתרונות ראשי עם AWS. המיקוד הנוכחי שלו הוא לעזור ללקוחות ארגוניים להשיג את התוצאות העסקיות שלהם באמצעות ארכיטקטורה ויישום פתרונות חדשניים וגמישים בקנה מידה. הוא עובד בטכנולוגיה כבר למעלה מ-15 שנה בחברות החל מ-Fortune 100 ועד לסטארט-אפים בתחומי ייצור, תעופה וחלל וקמעונאות.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. Web3 Metaverse Intelligence. ידע מוגבר. גישה כאן.
- הטבעת העתיד עם אדריאן אשלי. גישה כאן.
- מקור: https://aws.amazon.com/blogs/machine-learning/secure-your-amazon-kendra-indexes-with-the-acl-using-a-jwt-shared-secret-key/
- :הוא
- $ למעלה
- 10
- 100
- 11
- שנים 15
- 420
- 7
- 8
- 9
- a
- יכול
- אודות
- גישה
- להשיג
- מדויק
- להשיג
- לרוחב
- תוספת
- אווירי
- לאחר
- AI
- אַלגוֹרִיתְם
- תעשיות
- מאפשר
- אמזון בעברית
- אמזון קנדרה
- אמזון שירותי אינטרנט
- בין
- מנתח
- ו
- API
- בקשה
- יישומים
- החל
- גישה
- ארכיטקטורה
- ARE
- AS
- At
- תכונות
- אימות
- אישור
- באופן אוטומטי
- זמין
- AWS
- מבוסס
- BE
- כי
- להיות
- הטוב ביותר
- שיטות עבודה מומלצות
- בֵּין
- קצת
- בלוגים
- לִבנוֹת
- עסקים
- by
- שיחה
- נקרא
- CAN
- מקרה
- מקרים לדוגמא
- לאתגר
- האתגרים
- בחירה
- בחרו
- טענות
- בכיתה
- לקוחות
- ענן
- קוד
- חברות
- להשלים
- רכיבים
- תְצוּרָה
- קונסול
- להכיל
- מכיל
- תוכן
- תוכן
- לִשְׁלוֹט
- בקרות
- תוֹאֵם
- עלויות
- לִיצוֹר
- נוצר
- יוצרים
- יצירה
- קריטי
- קריפטו
- קריפטוגרפי
- נוֹכְחִי
- מנהג
- לקוחות
- נתונים
- תַאֲרִיך
- בְּרִירַת מֶחדָל
- להפגין
- מדגים
- מעוצב
- פרט
- פרטים
- אחר
- קשה
- מפוזרים
- מסמך
- מסמכים
- מטה
- בְּמַהֲלָך
- כל אחד
- בקלות
- מאפשר
- מנוע
- מהנדס
- הנדסה
- לְהַבטִיחַ
- זן
- מִפְעָל
- דוגמה
- חליפין
- ניסיון
- כשלון
- מאפיין
- תכונות
- שדות
- קבצים
- סינון
- מסננים
- להתמקד
- לעקוב
- הבא
- בעד
- הון עתק
- החל מ-
- מלא
- עתיד
- לְהַשִׂיג
- ליצור
- נוצר
- דור
- קְבוּצָה
- קבוצה
- אוֹרֵחַ
- הדרכה
- מדריך
- יש
- כותרות
- עזרה
- מאוד
- איך
- איך
- HTML
- http
- HTTPS
- ID
- מזהה
- זהות
- יישום
- לייבא
- in
- לכלול
- כולל
- מדד
- אינדקסים
- בנפרד
- מידע
- חדשני
- מיידי
- במקום
- הוראות
- אינטליגנטי
- ISS
- הנפקה
- הפיקו
- IT
- שֶׁלָה
- Java
- ג'ון
- מסע
- ג'סון
- Jwt
- מפתח
- מפתחות
- יֶלֶד
- לִלמוֹד
- כמו
- קו
- רשימה
- נראה
- נראה כמו
- נראה
- עשוי
- לעשות
- עשייה
- מנהל
- דרך
- ייצור
- רב
- להתאים
- מתאים
- אומר
- meta
- מידע נוסף
- דקות
- ML
- יותר
- שם
- שם
- נווט
- ניווט
- חדש
- אובייקטים
- להתבונן
- of
- on
- לפתוח
- קוד פתוח
- להזמין
- ארגונים
- אחר
- קווי מתאר
- חבילה
- עמוד
- זוגות
- זגוגית
- פרמטרים
- חלק
- שותף
- שותפים
- חלקים
- לעבור
- חולף
- לוהט
- עבר
- לְבַצֵעַ
- ביצוע
- פלטפורמה
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- מדיניות
- הודעה
- פרקטיקות
- להכין
- קוֹדֶם
- מנהל
- פְּרָטִי
- תהליך
- הפקה
- לספק
- ספק
- מספק
- ציבורי
- שאילתות
- רכס
- טִוּוּחַ
- חומר עיוני
- לקבל
- קיבלו
- מקבל
- בדבר
- להחליף
- דוחות לדוגמא
- מאגר
- דרישות
- מִתאוֹשֵׁשׁ מַהֵר
- משאבים
- תגובה
- אחראי
- תוצאה
- תוצאות
- קמעוני
- לִשְׁמוֹר
- לַחֲזוֹר
- לגלות
- תפקיד
- RSA
- הפעלה
- סולם
- תרחישים
- חיפוש
- מנוע חיפוש
- סוד
- סעיף
- לבטח
- מְאוּבטָח
- מאובטח
- אבטחה
- נפרד
- שרות
- ספק שירות
- שירותים
- סט
- כמה
- SHA256
- שיתוף
- משותף
- צריך
- לְהַצִיג
- הופעות
- סִימָן
- חָתוּם
- משמעותי
- חתימה
- דומה
- פשוט
- תוכנה
- מהנדס תוכנה
- הנדסת תוכנה
- פִּתָרוֹן
- פתרונות
- פותר
- מָקוֹר
- ספציפי
- מפורט
- תֶקֶן
- חברות סטארט-אפ
- שלב
- צעדים
- מאוחסן
- זִרמִי
- מחרוזת
- מִבְנֶה
- מחקרים
- כזה
- נתמך
- תומך
- מערכת
- שולחן
- לקחת
- טכני
- טכנולוגיה
- שׂוֹכֵר
- מסוף
- מבחן
- בדיקות
- זֶה
- השמיים
- המידע
- שֶׁלָהֶם
- אותם
- אלה
- שְׁלוֹשָׁה
- דרך
- זמן
- ל
- אסימון
- מטבעות
- סוגים
- מאוחד
- כתובת האתר
- נוֹהָג
- להשתמש
- במקרה להשתמש
- משתמש
- משתמשים
- לְאַמֵת
- אימות
- ערך
- שונים
- אימות
- לאמת
- אנכיות
- אינטרנט
- שירותי אינטרנט
- טוֹב
- אשר
- בזמן
- ניירות לבנים
- מי
- רָחָב
- טווח רחב
- יצטרך
- עם
- בתוך
- לְלֹא
- עבד
- עובד
- עובד
- סדנות
- שנים
- אתה
- זפירנט
- רוכסן