In חלק 1 בסדרה זו, הדגמנו כיצד לפתור א סטודיו SageMaker של אמזון כתובת URL מוגדרת מראש מרשת ארגונית באמצעות נקודות קצה פרטיות של Amazon VPC מבלי לחצות את האינטרנט. בפוסט זה, נמשיך לבנות על הפתרון הקודם כדי להדגים כיצד לבנות שער API פרטי באמצעות שער API של אמזון כממשק פרוקסי ליצירה וגישה אמזון SageMaker כתובות URL מוגדרות מראש. יתרה מזאת, אנו מוסיפים מעקה בטיחות נוסף כדי להבטיח שכתובות URL מוגדרות מראש נוצרות ונגישות רק עבור משתמש הקצה המאומת ברשת הארגונית.
סקירת פתרונות
התרשים הבא ממחיש את הארכיטקטורה של הפיתרון.
התהליך כולל את הצעדים הבאים:
- ב אמזון קוגניטו מאגר משתמשים, תחילה הגדר משתמש עם השם שתואם את פרופיל המשתמש שלו ב-Studio ורשום את Studio כלקוח האפליקציה במאגר המשתמשים.
- המשתמש מתאחד מספק הזהות הארגונית שלו (IdP) ומאמת עם מאגר המשתמשים של Amazon Cognito לגישה לסטודיו.
- Amazon Cognito מחזירה אסימון למשתמש המאשר גישה לאפליקציית Studio.
- המשתמש קורא
createStudioPresignedUrl
API ב-API Gateway יחד עם אסימון בכותרת. - API Gateway מפעיל התאמה אישית AWS למבדה המאשר ומאמת את האסימון.
- כאשר האסימון תקף, אמזון קוגניטו מחזירה מדיניות הענקת גישה עם מזהה פרופיל משתמש של הסטודיו ל-API Gateway.
- API Gateway מפעיל את
createStudioPresignedUrl
פונקציית Lambda ליצירת כתובת ה-URL המיועדת לסטודיו. - השמיים
createStudioPresignedUrl
הפונקציה יוצרת כתובת URL מוגדרת מראש באמצעות נקודת הקצה של SageMaker API VPC וחוזרת למתקשר. - המשתמש ניגש לכתובת ה-URL שנקבעה מראש מהרשת הארגונית שלו, שפותרת דרך נקודת הקצה של Studio VPC.
- של הפונקציה AWS זהות וניהול גישה מדיניות (IAM) מוודאת שיצירת ה-URL והגישה המוגדרות מראש מבוצעות באמצעות נקודות קצה של VPC.
הסעיפים הבאים ידריכו אותך בפריסה, תצורה ואימות של פתרונות עבור ה-API הפרטי של Gateway API ליצירה ופתרון של כתובת URL מוגדרת מראש של Studio מרשת ארגונית באמצעות נקודות קצה של VPC.
- פרוס את הפתרון
- הגדר את משתמש אמזון קוגניטו
- אימות ה-API הפרטי עבור כתובת האתר שנקבעה מראש באמצעות JSON Web Token
- הגדר את שרת ה-DNS הארגוני לגישה ל-API הפרטי
- בדוק את ה-API הפרטי של Gateway API עבור כתובת URL מוגדרת מראש מהרשת הארגונית
- מדיניות אימות של כתובות URL חתומות מראש
- ניקוי
פרוס את הפתרון
אתה יכול לפרוס את הפתרון דרך ה- קונסולת הניהול של AWS או מודל יישום ללא שרת AWS (AWS SAM).
כדי לפרוס את הפתרון דרך המסוף, הפעל את הפריט הבא AWS CloudFormation תבנית בחשבון שלך על ידי בחירה השקת ערימה. זה לוקח בערך 10 דקות כדי להשלים את ערימת CloudFormation.
כדי לפרוס את הפתרון באמצעות AWS SAM, תוכל למצוא את הקוד העדכני ביותר ב- aws-samples מאגר GitHub, שבו תוכל גם לתרום לקוד לדוגמה. הפקודות הבאות מראות כיצד לפרוס את הפתרון באמצעות AWS SAM CLI. אם לא מותקן כעת, התקן את AWS SAM CLI.
- שכפל את המאגר בכתובת https://github.com/aws-samples/secure-sagemaker-studio-presigned-url.
- לאחר שתשכפל את המאגר, נווט אל המקור והפעל את הקוד הבא:
הגדר את משתמש אמזון קוגניטו
כדי להגדיר את משתמש Amazon Cognito שלך, בצע את השלבים הבאים:
- צור משתמש אמזון קוגניטו עם שם זהה לפרופיל משתמש של SageMaker:
- הגדר את סיסמת המשתמש:
- קבל אסימון גישה:
אימות ה-API הפרטי עבור כתובת האתר שנקבעה מראש באמצעות JSON Web Token
כאשר פרסת ממשק API פרטי ליצירת כתובת URL מוגדרת מראש של SageMaker, הוספת מעקה בטיחות כדי להגביל את הגישה ל-URL שנקבע מראש על ידי כל מי שמחוץ לרשת הארגונית ולנקודת הקצה של VPC. עם זאת, ללא הטמעת שליטה נוספת ב-API הפרטי בתוך הרשת הארגונית, כל משתמש פנימי ברשת הארגונית יוכל להעביר פרמטרים לא מאומתים עבור פרופיל המשתמש של SageMaker ולגשת לכל אפליקציית SageMaker.
כדי להקל על בעיה זו, אנו מציעים להעביר אסימון אינטרנט של JSON (JWT) עבור המתקשר המאומת לשער ה-API ולאמת את האסימון עם גורם JWT. ישנן אפשרויות מרובות להטמעת אישור עבור שער ה-API הפרטי, באמצעות מותאם אישית מסמיך למבדה or אמזון קוגניטו.
עם אישור Lambda מותאם אישית, אתה יכול להטמיע שם פרופיל משתמש של SageMaker במדיניות המוחזרת. זה מונע מכל משתמש בתוך הרשת הארגונית את היכולת לשלוח כל שם פרופיל משתמש של SageMaker ליצירת כתובת URL מוגדרת מראש שהם אינם מורשים ליצור. אנו משתמשים באמזון קוגניטו כדי ליצור את האסימונים שלנו ובמסמכה מותאמת אישית של Lambda כדי לאמת ולהחזיר את המדיניות המתאימה. למידע נוסף, עיין ב בניית הרשאות דק באמצעות Amazon Cognito, API Gateway ו-IAM. הסמכה של Lambda משתמש בשם המשתמש של Amazon Cognito כשם פרופיל המשתמש.
אם אינך מסוגל להשתמש באמזון קוגניטו, תוכל לפתח אפליקציה מותאמת אישית לאימות ולהעביר אסימונים של משתמש קצה לגורם המאשר Lambda. למידע נוסף, עיין ב השתמש באישורי API Gateway Lambda.
הגדר את שרת ה-DNS הארגוני לגישה ל-API הפרטי
כדי להגדיר את שרת ה-DNS הארגוני שלך, בצע את השלבים הבאים:
- על ענן מחשוב אלסטי של אמזון (Amazon EC2), בחר את מופע ה-DNSA EC2 המקומי שלך והתחבר באמצעות מנהל מערכות הפעלה.
- הוסף רשומת אזור ב-
/etc/named.conf
קובץ לפתרון לשם ה-DNS של שער ה-API דרך שלך כביש אמזון 53 פותר נכנס, כפי שמוצג בקוד הבא: - הפעל מחדש את השירות הנקוב באמצעות הפקודה הבאה:
אמת בקשת כתובת URL מוגדרת מראש מ-API Gateway הפרטי של API עבור משתמשים מורשים
בתרחיש אמיתי, תטמיע ממשק חזיתי שיעביר את כותרות ההרשאה המתאימות למשאבים מאומתים ומורשים באמצעות פתרון מותאם אישית או מינוף AWS להגביר. לקיצור פוסט זה בבלוג, השלבים הבאים ממנפים את Postman כדי לאמת במהירות את הפתרון שפרסנו מגביל למעשה את בקשת ה-URL שנקבעה מראש עבור משתמש פנימי, אלא אם כן מורשה לעשות זאת.
כדי לאמת את הפתרון עם Postman, בצע את השלבים הבאים:
- התקן את Postman במופע WINAPP EC2. ראה הוראות כאן
- פתח את Postman והוסף את אסימון הגישה שלך
Authorization
כּוֹתֶרֶת: - שנה את כתובת האתר של שער API כדי לגשת אליה ממופע ה-EC2 הפנימי שלך:
- הוסף את נקודת הקצה VPC לכתובת ה-API Gateway שלך:
- מוסיף את
Host
כותרת עם הערך של כתובת האתר של שער ה-API שלך: - ראשית, שנה את
EMPLOYEE_ID
למשתמש Amazon Cognito ושם פרופיל המשתמש של SageMaker שלך. ודא שאתה מקבל כתובת URL מורשית מראש. - ואז שנה את ה-
EMPLOYEE_ID
למשתמש שאינו שלך וודא שאתה מקבל כשל בגישה.
- במסוף אמזון EC2, בחר את מופע ה-WINAPP המקומי שלך והתחבר דרך לקוח RDP שלך.
- פתח דפדפן Chrome ונווט אל כתובת האתר המורשית המוסמכת שלך כדי להפעיל את Studio.
Studio מושק על נקודת קצה VPC עם כתובת מרוחקת כ-IP של נקודת הקצה של Studio VPC.
אם הגישה ל-URL שנקבעה מראש מחוץ לרשת הארגונית, הפתרון נכשל מכיוון שתנאי מדיניות IAM עבור כתובת ה-URL שנקבעה מראש אוכף יצירה וגישה מנקודת קצה VPC.
מדיניות אימות של כתובות URL חתומות מראש
הפתרון שלמעלה יצר את מדיניות האימות הבאה עבור Lambda שיצרה כתובת URL חתומה מראש לגישה ל- SageMaker Studio.
סיכום
בפוסט זה, הדגמנו כיצד לגשת ל-Studio באמצעות שער API פרטי מרשת ארגונית באמצעות נקודות קצה פרטיות של Amazon VPC, מניעת גישה לכתובות URL מוגדרות מראש מחוץ לרשת הארגונית, ואבטחת שער ה-API באמצעות אישור JWT באמצעות Amazon Cognito ולמבדה מותאמת אישית מסמכים.
נסה עם הפתרון הזה והתנסה בשילוב זה עם הפורטל הארגוני שלך, והשאיר את המשוב שלך בתגובות!
על הכותבים
רם ויטל הוא ארכיטקט פתרונות למידת מכונה ב-AWS. יש לו למעלה מ-20 שנות ניסיון באדריכלות ובניית יישומים מבוזרים, היברידיים וענן. הוא נלהב מבניית פתרונות AI/ML ו-Big Data מאובטחים וניתנים להרחבה כדי לעזור ללקוחות ארגוניים באימוץ הענן ובמסע האופטימיזציה שלהם כדי לשפר את התוצאות העסקיות שלהם. בזמנו הפנוי הוא אוהב טניס, צילום וסרטי פעולה.
ג'ונתן נגוין הוא יועץ אבטחה בכיר בצוות אספקה משותפת ב-AWS. הרקע שלו הוא באבטחת AWS עם התמקדות בזיהוי איומים ובתגובה לאירועים. כיום, הוא עוזר ללקוחות ארגוניים לפתח אסטרטגיית אבטחה מקיפה של AWS, לפרוס פתרונות אבטחה בקנה מידה, ולהכשיר לקוחות לגבי שיטות עבודה מומלצות של AWS Security.
כריס צ'יילדרס הוא אדריכל תשתיות ענן בשירותים מקצועיים ב-AWS. הוא עובד עם לקוחות AWS כדי לעצב ולהפוך את תשתית הענן שלהם לאוטומטית ולשפר את האימוץ שלהם של תרבות ותהליכי DevOps.
- Coinsmart. בורסת הביטקוין והקריפטו הטובה באירופה.
- Platoblockchain. Web3 Metaverse Intelligence. ידע מוגבר. גישה חופשית.
- CryptoHawk. רדאר אלטקוין. ניסיון חינם.
- מקור: https://aws.amazon.com/blogs/machine-learning/secure-amazon-sagemaker-studio-presigned-urls-part-2-private-api-with-jwt-authentication/
- "
- 10
- 100
- a
- אודות
- גישה
- גישה
- חֶשְׁבּוֹן
- פעולה
- הוסיף
- נוסף
- כתובת
- אימוץ
- אמזון בעברית
- אחר
- כל אחד
- API
- האפליקציה
- בקשה
- יישומים
- מתאים
- בערך
- ארכיטקטורה
- מאומת
- מאמת
- אימות
- אישור
- אוטומטי
- AWS
- רקע
- כי
- להיות
- הטוב ביותר
- שיטות עבודה מומלצות
- נתונים גדולים
- בלוג
- גבול
- דפדפן
- לִבנוֹת
- בִּניָן
- עסקים
- שיחה
- שינוי
- חיובים
- בחרו
- Chrome
- דפדפן כרום
- ענן
- תשתית ענן
- קוד
- להשלים
- מַקִיף
- לחשב
- מצב
- תְצוּרָה
- לְחַבֵּר
- קונסול
- יועץ
- להמשיך
- לתרום
- לִשְׁלוֹט
- משותף
- לִיצוֹר
- נוצר
- יוצר
- יוצרים
- יצירה
- תַרְבּוּת
- כיום
- מנהג
- לקוחות
- נתונים
- מסירה
- להפגין
- מופגן
- לפרוס
- פרס
- פריסה
- עיצוב
- איתור
- לפתח
- מופץ
- DNS
- השפעה
- נקודת קצה
- מִפְעָל
- ניסיון
- לְנַסוֹת
- כשלון
- מָשׁוֹב
- ראשון
- להתמקד
- הבא
- קדימה
- החל מ-
- פונקציה
- יתר על כן
- שער כניסה
- ליצור
- נוצר
- GitHub
- לעזור
- עוזר
- איך
- איך
- אולם
- HTTPS
- היברידי
- זהות
- ליישם
- יישום
- לשפר
- כולל
- מידע
- תשתית
- למשל
- מִמְשָׁק
- אינטרנט
- IP
- סוגיה
- IT
- מסע
- האחרון
- לשגר
- הושק
- למידה
- יציאה
- תנופה
- מנופים
- מכונה
- למידת מכונה
- לעשות
- עושה
- ניהול
- מנהל
- תואם
- יותר
- סרטים
- מספר
- נווט
- רשת
- מתמשך
- אופטימיזציה
- אפשרויות
- חלק
- חולף
- לוהט
- סיסמה
- צילום
- מדיניות
- בריכה
- כניסה
- מניעה
- קודם
- פְּרָטִי
- תהליך
- תהליכים
- מקצועי
- פּרוֹפִיל
- להציע
- ספק
- פרוקסי
- מהירות
- לקבל
- שיא
- הירשם
- מרחוק
- מאגר
- משאב
- משאבים
- תגובה
- לַחֲזוֹר
- החזרות
- מסלול
- הפעלה
- אותו
- להרחבה
- סולם
- לבטח
- אבטחה
- סדרה
- ללא שרת
- שרות
- שירותים
- סט
- משותף
- לְהַצִיג
- הראה
- So
- מוצק
- פִּתָרוֹן
- פתרונות
- לערום
- הצהרה
- אִסטרָטֶגִיָה
- סטודיו
- נבחרת
- השמיים
- המקור
- שְׁלוֹשָׁה
- דרך
- זמן
- היום
- אסימון
- מטבעות
- חלק עליון
- רכבת
- להשתמש
- משתמשים
- אימות
- ערך
- גרסה
- אינטרנט
- בתוך
- לְלֹא
- עובד
- היה
- שנים