אבטחת ענן ב-AWS היא בראש סדר העדיפויות. סטודיו SageMaker של אמזון הצעות מנגנונים שונים כדי להגן על הנתונים והקוד שלך באמצעות אינטגרציה עם שירותי אבטחה של AWS כמו AWS זהות וניהול גישה (אני), שירות ניהול מפתח AWS (AWS KMS), או בידוד רשת עם ענן וירטואלי פרטי של אמזון (VPC של אמזון).
לקוחות בתעשיות בפיקוח גבוה, כמו שירותים פיננסיים, יכולים הגדר את Studio ב-VPC בלבד מצב כדי לאפשר בידוד רשת ולנטרל גישה לאינטרנט ממחברות Studio. אתה יכול להשתמש באינטגרציה של IAM עם Studio כדי לשלוט לאילו משתמשים יש גישה למשאבים כמו מחברות Studio, ה-Studio IDE או אמזון SageMaker עבודות הדרכה.
מקרה שימוש פופולרי הוא ל הגבל את הגישה ל-Studio IDE רק למשתמשים מתוך טווח CIDR רשת מוגדר או VPC ייעודי. אתה יכול להשיג זאת על ידי יישום מדיניות SageMaker מבוססת זהות IAM וצירוף מדיניות זו למשתמשי IAM או לקבוצות הדורשות הרשאות אלו. עם זאת, יש להגדיר את תחום SageMaker עם מצב אימות IAM, מכיוון שהמדיניות מבוססת הזהות של IAM אינה נתמכת ב כניסה יחידה של AWS (SSO) מצב אימות.
לקוחות רבים משתמשים ב-AWS SSO כדי לאפשר בקרת זהות ריכוזית של כוח העבודה ולספק חווית כניסה עקבית למשתמש. פוסט זה מראה כיצד ליישם מקרה שימוש זה תוך שמירה על יכולות SSO של AWS כדי לגשת אל Studio.
סקירת פתרונות
כאשר אתה מגדיר דומיין של SageMaker במצב VPC בלבד ומציין את רשתות המשנה וקבוצות האבטחה, SageMaker יוצר ממשקי רשת אלסטיים (ENIs) המשויכים לקבוצות האבטחה שלך ברשתות המשנה שצוינו. ENIs מאפשרים למיכלי ההדרכה שלך להתחבר למשאבים ב-VPC שלך.
במצב זה, הגישה הישירה לאינטרנט ממחברות מושבתת לחלוטין, וכל התעבורה מנותבת דרך ENI ב-VPC הפרטי שלך. זה כולל גם תעבורה מווידג'טים וממשקים של ממשק המשתמש של Studio - כגון ניהול ניסויים, טייס אוטומטי וניטור דגמים - אל ממשקי ה-API של SageMaker האחוריים שלהם. AWS ממליצה להשתמש במצב VPC בלבד כדי להפעיל שליטה עדינה בגישה לרשת של Studio.
האתגר הראשון הוא שלמרות ש-Studio פרוס ללא קישוריות לאינטרנט, עדיין ניתן לגשת ל-Studio IDE מכל מקום, בהנחה של גישה ל- קונסולת הניהול של AWS וסטודיו מוענק למנהל IAM. מצב זה אינו מקובל אם אתה רוצה לבודד לחלוטין את Studio מרשת ציבורית ולהכיל את כל התקשורת בתוך VPC פרטי בשליטה הדוקה.
כדי להתמודד עם אתגר זה ולהשבית כל גישה ל-Studio IDE למעט מ-VPC ייעודי או טווח CIDR, אתה יכול להשתמש ב- CreatePresignedDomainUrl SageMaker API. התפקיד או המשתמש של IAM המשמשים לקריאה ל-API זה מגדירים את ההרשאות לגישה ל-Studio. כעת תוכל להשתמש במדיניות מבוססת זהות של IAM כדי ליישם את תצורת הגישה הרצויה. לדוגמה, כדי לאפשר גישה רק מ-VPC ייעודי, הוסף את התנאי הבא למדיניות IAM, המשויך למנהל IAM, המשמש ליצירת כתובת URL של דומיין מוגדרת מראש:
כדי לאפשר גישה רק מנקודת קצה או מנקודות קצה ייעודיות של VPC, ציין את התנאי הבא:
השתמש בתנאי הבא כדי להגביל גישה מטווח CIDR ייעודי:
האתגר השני הוא שבקרת גישה מבוססת IAM פועלת רק כאשר תחום SageMaker מוגדר במצב אימות IAM; אתה לא יכול להשתמש בו כאשר תחום SageMaker פרוס במצב AWS SSO. הסעיף הבא מראה כיצד להתמודד עם אתגרים אלו וליישם בקרת גישה מבוססת IAM עם גישת AWS SSO ל-Studio.
סקירה כללית של אדריכלות
Studio מתפרסם כיישום SAML, המוקצה לפרופיל משתמש ספציפי של SageMaker Studio. משתמשים יכולים לגשת לסטודיו בצורה נוחה ישירות מפורטל AWS SSO, כפי שמוצג בצילום המסך הבא.
הפתרון משתלב עם א יישום SAML 2.0 מותאם אישית כמנגנון להפעיל את אימות המשתמש עבור Studio. זה דורש שיישום SAML המותאם אישית יוגדר עם ה שער API של אמזון כתובת האתר של נקודת הקצה כשירות Assertion Consumer (ACS), וצריכה תכונות מיפוי המכילות את מזהה המשתמש AWS SSO וכן את מזהה הדומיין של SageMaker.
נקודת הקצה של שער API קוראת ל-an AWS למבדה פונקציה שמנתחת את תגובת SAML כדי לחלץ את מזהה הדומיין ומזהה המשתמש ולהשתמש בהם כדי ליצור כתובת URL מוגדרת מראש של Studio. פונקציית Lambda מבצעת סוף סוף ניתוב מחדש באמצעות תגובת HTTP 302 כדי להיכנס למשתמש ב-Studio.
מדיניות IAM שולטת בסביבת הרשת שממנה מורשים למשתמשי Studio להיכנס, הכוללת תנאים מגבילים כמתואר בסעיף הקודם. מדיניות IAM זו מצורפת לפונקציית Lambda. מדיניות IAM מכילה הרשאה להתקשר ל- sagemaker:CreatePresignedDomainURL
ממשק API עבור פרופיל משתמש ספציפי בלבד:
התרשים הבא מציג את ארכיטקטורת הפתרון.
הפתרון פורס דומיין של SageMaker לתוך ה-VPC הפרטי שלך ו נקודות קצה של VPC כדי לגשת אל Studio, SageMaker Runtime ו- SageMaker API דרך חיבור פרטי ללא צורך בשער אינטרנט. נקודות הקצה של VPC מוגדרות עם DNS פרטי מופעל (PrivateDnsEnabled=True
) לשייך א אזור מתארח פרטי עם ה-VPC שלך. זה מאפשר לסטודיו לגשת אל SageMaker API באמצעות שם ה-DNS הציבורי המוגדר כברירת מחדל api.sagemaker.<Region>.amazonaws.com
נפתרה לכתובת ה-IP הפרטית של נקודת הקצה במקום להשתמש ב-URL של נקודת הקצה של VPC.
אתה צריך להוסיף נקודות קצה VPC ל-VPC שלך אם אתה רוצה לגשת לשירותי AWS אחרים כמו שירות אחסון פשוט של אמזון (אמזון S3), מרשם מיכל אלסטי של אמזון (Amazon ECR), שירות אסימון האבטחה AWS (AWS STS), AWS CloudFormation, או AWS CodeCommit.
אתה יכול לשלוט באופן מלא בהרשאות המשמשות ליצירת כתובת ה-URL שנקבעה מראש וכל קריאות API אחרות עם מדיניות IAM המצורפת לתפקיד ביצוע פונקציית Lambda או לשלוט בגישה לכל שירות AWS בשימוש באמצעות מדיניות נקודות קצה של VPC. לדוגמאות לשימוש במדיניות IAM כדי לשלוט בגישה ל-Studio ול-SageMaker API, עיין שלוט בגישה לממשק ה-API של SageMaker על ידי שימוש במדיניות מבוססת זהות.
למרות שהפתרון דורש פריסת דומיין Studio במצב IAM, הוא מאפשר להשתמש ב-AWS SSO כמנגנון לכניסת משתמשי קצה לסטודיו.
הסעיפים הבאים מכילים תיאורים מפורטים של מרכיבי הפתרון העיקריים.
שער API
נקודת הקצה של API Gateway פועלת כיעד עבור כתובת ה-ACS של האפליקציה המוגדרת ביישום SAML 2.0 המותאם אישית. נקודת הקצה היא פרטית ויש לה משאב שנקרא /saml
ושיטת POST עם בקשת אינטגרציה המוגדרת כ-Lambda proxy. הפתרון משתמש בנקודת קצה VPC עם הגדרה מוגדרת com.amazonaws.<region>.execute-api
שם DNS כדי לקרוא לנקודת קצה זו של API מתוך ה-VPC.
AWS SSO
יישום SAML 2.0 מותאם אישית מוגדר עם כתובת ה-URL של נקודת הקצה של API Gateway https:/{ restapi-id}.execute-api.amazonaws.com/saml
כ-URL ה-ACS של היישום שלו, ומשתמש במיפויי תכונות עם הדרישות הבאות:
- מזהה משתמש:
- תכונת משתמש באפליקציה - שם משתמש
- מאפיין משתמש של מפות ב-AWS SSO -
${user:AD_GUID}
- מזהה דומיין של SageMaker:
- תכונת משתמש באפליקציה -
domain-id
- מאפיין משתמש של מפות ב-AWS SSO - מזהה דומיין עבור מופע Studio
- תכונת משתמש באפליקציה -
האפליקציה מיישמת את בקרת הגישה עבור משתמש AWS SSO על ידי הקצאת פרופיל משתמש של Studio עם השם השווה למזהה המשתמש של AWS SSO.
פונקציית למדה
הפתרון מגדיר פונקציית Lambda כנקודת הפעלה עבור ה-API Gateway /saml
מַשׁאָב. הפונקציה מנתחת את SAMLResponse
נשלח על ידי AWS SSO, מחלץ את domain-id
כמו גם את שם המשתמש, וקורא ל- createPresignedDomainUrl
SageMaker API כדי לאחזר את כתובת ה-URL והאסימון של Studio ולהפנות את המשתמש לכניסה באמצעות תגובת HTTP 302. לפונקציית Lambda יש מדיניות IAM ספציפית המצורפת לתפקיד הביצוע שלה המאפשרת את sagemaker:createPresignedDomainUrl
פעולה רק כאשר היא מתבקשת מטווח CIDR רשת ספציפי באמצעות ה- VpcSourceIp
מצב.
לפונקציה Lambda אין שום היגיון לאמת את תגובת SAML, למשל לבדיקת חתימה. עם זאת, מכיוון שנקודת הקצה API Gateway המשמשת כ-ACS היא פרטית או פנימית בלבד, היא אינה חובה עבור סביבת הוכחת מושג זו.
פרוס את הפתרון
השמיים מאגר GitHub מספק את קוד המקור המלא עבור הפתרון מקצה לקצה.
כדי לפרוס את הפתרון, עליך להיות בעל הרשאות מנהל מערכת (או משתמש מתקדם) עבור חשבון AWS, ולהתקין את ממשק שורת הפקודה של AWS (AWS CLI) ו- AWS SAM CLI ומינימום פייתון 3.8.
הפתרון תומך בפריסה בשלושה אזורי AWS: eu-west-1
, eu-central-1
, ו us-east-1
. הקפד לבחור אחד מהאזורים האלה לפריסה.
כדי להתחיל בבדיקת הפתרון, עליך להשלים את שלבי הפריסה הבאים משלבי הפתרון קובץ README של GitHub:
- הגדר AWS SSO אם לא הגדרת אותו.
- פרוס את הפתרון באמצעות אפליקציית SAM.
- צור יישום SAML 2.0 מותאם אישית חדש.
לאחר שתסיים את שלבי הפריסה, תוכל להמשיך בבדיקת הפתרון.
בדוק את הפתרון
הפתרון מדמה שני מקרי שימוש כדי להדגים את השימוש במדיניות מבוססת זהות של AWS SSO ו- SageMaker:
- מקרה שימוש חיובי - משתמש ניגש לסטודיו מתוך טווח CIDR ייעודי דרך נקודת קצה VPC
- מקרה שימוש שלילי - משתמש ניגש לסטודיו מכתובת IP ציבורית
כדי לבדוק מקרי שימוש אלה, הפתרון יצר שלושה ענן מחשוב אלסטי של אמזון (Amazon EC2) מופעים:
- מארח פרטי - מופע EC2 Windows ברשת משנה פרטית המסוגל לגשת לסטודיו (הסביבה המאובטחת המקומית שלך)
- מארח בסטיון - מופע EC2 Linux ברשת המשנה הציבורית המשמש להקמת מנהרת SSH לתוך המארח הפרטי ברשת הפרטית
- מארח ציבורי – מופע EC2 Windows ברשת משנה ציבורית כדי להדגים שהמשתמש אינו יכול לגשת לסטודיו מכתובת IP לא מורשית
בדוק גישה לסטודיו מרשת מורשית
בצע את השלבים הבאים כדי לבצע את הבדיקה:
- כדי לגשת למופע EC2 Windows ברשת הפרטית, הפעל את הפקודה שסופקה כערך של מפתח הפלט SAM
TunnelCommand
. ודא שהמפתח הפרטי של זוג המפתחות שצוין בפרמטר נמצא בספרייה שממנה פועלת פקודת המנהרה של SSH. הפקודה יוצרת מנהרת SSH מהמחשב המקומי והלאהlocalhost:3389
למופע EC2 Windows ברשת הפרטית. ראה את הקוד לדוגמה הבא: - בשולחן העבודה או המחברת המקומית, פתח חיבור RDP חדש (לדוגמה באמצעות Microsoft Remote Desktop) באמצעות
localhost
כמארח היעד המרוחק. חיבור זה מועבר דרך מארח הבסטיון למופע הפרטי של EC2 Windows. השתמש בשם המשתמשAdministrator
וסיסמה מפלט המחסניתSageMakerWindowsPassword
. - פתח את דפדפן האינטרנט Firefox משולחן העבודה המרוחק.
- נווט והיכנס לפורטל AWS SSO באמצעות האישורים המשויכים לשם המשתמש שציינת בתור
ssoUserName
פָּרָמֶטֶר. - בחר את SageMaker Secure Demo אפליקציית AWS SSO מפורטל AWS SSO.
אתה מופנה מחדש ל-Studio IDE בחלון דפדפן חדש.
בדוק גישה לסטודיו מרשת לא מורשית
כעת בצע את השלבים הבאים כדי לדמות גישה מרשת לא מורשית:
- פתח חיבור RDP חדש ב-IP המסופק ב-
SageMakerWindowsPublicHost
פלט SAML. - פתח את דפדפן האינטרנט Firefox משולחן העבודה המרוחק.
- נווט והיכנס לפורטל AWS SSO באמצעות האישורים המשויכים לשם המשתמש שצוין בתור
ssoUserName
פָּרָמֶטֶר. - בחר את SageMaker Secure Demo אפליקציית AWS SSO מפורטל AWS SSO.
הפעם אתה מקבל הודעת גישה לא מורשית.
לנקות את
כדי להימנע מחיובים, עליך להסיר מחשבון AWS שלך את כל המשאבים שסופקו על ידי פתרונות ויצרו באופן ידני. עקוב אחר ההוראות בפתרון קובץ README.
סיכום
הדגמנו כי על ידי הצגת שכבת אימות מתווך בין משתמש הקצה ל-Studio, אנו יכולים לשלוט בסביבה שממנה המשתמש רשאי לגשת ל-Studio ולחסום במפורש כל סביבה לא מורשית אחרת.
כדי להדק עוד יותר את האבטחה, אתה יכול להוסיף מדיניות IAM לתפקיד משתמש כדי למנוע גישה ל-Studio מהמסוף. אם אתה משתמש ארגוני AWS, תוכל ליישם את הדברים הבאים מדיניות בקרת שירות עבור היחידות הארגוניות או החשבונות שזקוקים לגישה ל-Studio:
למרות שהפתרון המתואר בפוסט זה משתמש ב-API Gateway וב-Lambda, אתה יכול לחקור דרכים אחרות כגון מופע EC2 עם תפקיד דוגמה באמצעות אותה זרימת עבודה לאימות הרשאות כפי שתוארה או אפילו מערכת עצמאית כדי לטפל באימות והרשאה של משתמשים וליצור כתובת URL מוגדרת מראש של Studio.
לקריאה נוספת
הבטחת גישה לסטודיו היא נושא מחקר פעיל, ויש עוד פוסטים רלוונטיים על גישות דומות. עיין בפוסטים הבאים בבלוג למידת מכונה של AWS כדי ללמוד עוד על שירותים וארכיטקטורות אחרים שבהם אתה יכול להשתמש:
על הכותבים
ג'רום בצ'לט הוא אדריכל פתרונות בשירותי האינטרנט של אמזון. הוא מצליח לעזור ללקוחות להפיק את מירב הערך מ-AWS כדי להשיג את היעדים העסקיים שלהם. לג'רום יש למעלה מ-10 שנות ניסיון בעבודה עם פתרונות הגנת מידע ואבטחת מידע. מלבד היותו בענן, ג'רום נהנה מנסיעות ומזמן איכות עם אשתו ושתי בנותיו באזור ז'נבה, שוויץ.
יבגני אילין הוא אדריכל פתרונות ב- AWS. יש לו ניסיון של מעל 20 שנה בעבודה בכל הרמות של פיתוח תוכנה וארכיטקטורת פתרונות והשתמש בשפות תכנות מ- COBOL ו- Assembler ועד .NET, Java ו- Python. הוא מפתח וקודד פתרונות ענן עם התמקדות בביג דאטה, אנליטיקה והנדסת נתונים.
- '
- "
- 100
- 7
- 9
- אודות
- גישה
- חֶשְׁבּוֹן
- פעולה
- פעיל
- כתובת
- תעשיות
- אמזון בעברית
- אמזון
- אמזון SageMaker
- אמזון שירותי אינטרנט
- ניתוח
- API
- ממשקי API
- בקשה
- ארכיטקטורה
- AREA
- אימות
- אישור
- טייס אוטומטי
- AWS
- להיות
- נתונים גדולים
- בלוג
- דפדפן
- עסקים
- שיחה
- מקרים
- לאתגר
- האתגרים
- חיובים
- ענן
- ענן יליד
- קוד
- תקשורת
- לחשב
- תְצוּרָה
- הקשר
- קישוריות
- קונסול
- צרכן
- מכולה
- מכולות
- אישורים
- לקוחות
- נתונים
- הגנה על נתונים
- אבטחת מידע
- צעצועי התפתחות
- DNS
- לא
- השפעה
- נקודת קצה
- הנדסה
- סביבה
- דוגמה
- הוצאת להורג
- תרגיל
- ניסיון
- לְנַסוֹת
- תמציות
- בסופו של דבר
- כספי
- שירותים פיננסיים
- Firefox
- ראשון
- להתמקד
- לעקוב
- מלא
- פונקציה
- ליצור
- gif
- איך
- איך
- HTTPS
- IAM
- זהות
- ליישם
- יישום
- תעשיות
- השתלבות
- אינטרנט
- IP
- כתובת IP
- בדידות
- IT
- Java
- מקומות תעסוקה
- שמירה
- מפתח
- שפות
- לִלמוֹד
- למידה
- קו
- לינוקס
- מקומי
- למידת מכונה
- ניהול
- מיקרוסופט
- מודל
- נטו
- רשת
- גישה לרשת
- מחשבים ניידים
- המיוחדות שלנו
- לפתוח
- אחר
- סיסמה
- מדיניות
- מדיניות
- פופולרי
- כניסה
- הודעות
- כּוֹחַ
- מנהל
- פְּרָטִי
- מפתח פרטי
- פּרוֹפִיל
- תכנות
- שפות תכנות
- הוכחה
- הוכחה של רעיון או תאוריה
- להגן
- .
- לספק
- מספק
- פרוקסי
- ציבורי
- פיתון
- איכות
- רכס
- הפניה
- דרישות
- מחקר
- משאב
- משאבים
- תגובה
- הפעלה
- בעל חכמים
- אבטחה
- שירותים
- הגשה
- סט
- דומה
- פָּשׁוּט
- תוכנה
- פיתוח תוכנה
- פתרונות
- התחלה
- הצהרה
- אחסון
- נתמך
- תומך
- שוויץ
- מערכת
- יעד
- מבחן
- בדיקות
- דרך
- זמן
- אסימון
- תְנוּעָה
- הדרכה
- ui
- משתמשים
- ערך
- וירטואלי
- אינטרנט
- דפדפן אינטרנט
- שירותי אינטרנט
- חלונות
- בתוך
- לְלֹא
- זרימת עבודה
- כוח עבודה
- עובד
- שנים