תחזית אמזון הוא שירות מנוהל במלואו המבוסס על אותה טכנולוגיה המשמשת לחיזוי ב-Amazon.com. Forecast משתמשת למידת מכונה (ML) כדי לשלב נתוני סדרות זמן עם משתנים נוספים כדי לבנות תחזיות מדויקות ביותר. תחזית אינה דורשת ניסיון ב-ML כדי להתחיל. אתה רק צריך לספק נתונים היסטוריים וכל מידע נוסף שעלול להשפיע על התחזיות.
לקוחות פונים לשימוש במודל תוכנה כשירות (SaaS) לאספקת פתרונות ריבוי דיירים. אתה יכול לבנות יישומי SaaS עם מגוון דגמים ארכיטקטוניים שונים כדי לעמוד בדרישות הרגולציה והתאימות. בהתאם למודל ה-SaaS, משאבים כמו Forecast משותפים בין הדיירים. יש לשקול גישה לנתונים לתחזית, ניטור וחיוב לכל דייר לצורך פריסת פתרונות SaaS.
פוסט זה מתאר כיצד להשתמש ב-Forecast בתוך יישום SaaS מרובה דיירים באמצעות בקרת גישה מבוססת תכונות (ABAC) ב AWS זהות וניהול גישה (IAM) לספק את היכולות הללו. ABAC היא גישה רבת עוצמה שבה אתה יכול להשתמש כדי לבודד משאבים בין דיירים.
בפוסט זה, אנו מספקים הנחיות לגבי הגדרת מדיניות IAM לדיירים באמצעות עקרונות ABAC ותחזית. כדי להדגים את התצורה, הקמנו שני דיירים, TenantA
ו TenantB
, והצג מקרה שימוש בהקשר של יישום SaaS באמצעות Forecast. במקרה השימוש שלנו, TenantB
לא יכול למחוק TenantA
משאבים, ולהיפך. התרשים הבא ממחיש את הארכיטקטורה שלנו.
TenantA
ו TenantB
יש שירותים הפועלים כשירות מיקרו בפנים שירות קוברנט של אמזון (אמזון EKS). אפליקציית הדיירים משתמשת ב-Forecast כחלק מהזרימה העסקית שלה.
תחזית קליטת נתונים
תחזית מייבאת נתונים מהשוכר שירות אחסון פשוט של אמזון (Amazon S3) דלי ל-Forecast מנוהל S3. ניתן להצפין נתונים במעבר ובמצב מנוחה אוטומטית באמצעות מפתחות מנוהלים של Forecast או מפתחות ספציפיים לדייר דרך שירות ניהול מפתח AWS (AWS KMS). ניתן ליצור את המפתח הספציפי לדייר על ידי אפליקציית SaaS כחלק מההצטרפות, או שהדייר יכול לספק מפתח מנוהל לקוח משלו (CMK) באמצעות AWS KMS. ביטול ההרשאה על המפתח הספציפי לדייר מונע מ-Forecast להשתמש בנתוני הדייר. אנו ממליצים להשתמש במפתח ספציפי לדייר ובתפקיד IAM לכל דייר בסביבת SaaS מרובת דיירים. זה מאפשר אבטחת נתונים על בסיס דייר-דייר.
סקירת פתרונות
אתה יכול לחלק נתונים ב- Amazon S3 כדי להפריד את גישת הדיירים בדרכים שונות. עבור פוסט זה, נדון בשתי אסטרטגיות:
- השתמש בדלי S3 אחד לכל דייר
- השתמש בדלי S3 בודד והפרד נתוני דיירים עם קידומת
למידע נוסף על אסטרטגיות שונות, ראה את אחסון נתוני ריבוי דיירים באמזון S3 ריפו GitHub.
בעת שימוש בדלי אחד לכל דייר, אתה משתמש במדיניות IAM כדי להגביל את הגישה לדלי S3 של דייר נתון. לדוגמה:
יש הגבלה קשה על מספר הדליים של S3 לחשבון. יש לשקול אסטרטגיה מרובת חשבונות כדי להתגבר על מגבלה זו.
באפשרות השנייה שלנו, נתוני דיירים מופרדים באמצעות קידומת S3 בדלי S3 יחיד. אנו משתמשים במדיניות IAM כדי להגביל את הגישה בתוך קידומת דלי לכל דייר. לדוגמה:
עבור פוסט זה, אנו משתמשים באפשרות השנייה של הקצאת קידומות S3 בתוך דלי בודד. אנו מצפינים נתוני דיירים באמצעות CMKs ב-AWS KMS.
כניסת דיירים למטוס
יישומי SaaS מסתמכים על מודל חסר חיכוך להחדרת דיירים חדשים לסביבתם. זה מצריך לעתים קרובות תזמור של מספר רכיבים כדי לספק ולהגדיר בהצלחה את כל האלמנטים הדרושים ליצירת דייר חדש. תהליך זה, בארכיטקטורת SaaS, מכונה כניסת דיירים למטוס. זה יכול להיות יזום ישירות על ידי דיירים או כחלק מתהליך מנוהל ספק. התרשים הבא ממחיש את הזרימה של הגדרת תחזית לכל דייר כחלק מתהליך ההצטרפות.
משאבים מתויגים עם מידע על דיירים. עבור פוסט זה, אנו מתייגים משאבים עם ערך עבור דייר, למשל, tenant_a
.
צור תפקיד תחזית
תפקיד IAM זה נוטל על ידי תחזית לכל דייר. עליך להחיל את המדיניות הבאה כדי לאפשר ל-Forecast לקיים אינטראקציה עם Amazon S3 ו-AWS KMS בחשבון הלקוח. התפקיד מתויג עם דייר התג. לדוגמה, ראה את הקוד הבא:
צור את המדיניות
בשלב הבא, אנו יוצרים מדיניות עבור תפקיד התחזית שלנו. עבור פוסט זה, חילקנו אותם לשתי מדיניות לקריאות רבה יותר, אך אתה יכול ליצור אותם בהתאם לצרכים שלך.
מדיניות 1: תחזית גישת קריאה בלבד
המדיניות הבאה מעניקה הרשאות לתאר, לרשום ולשאול משאבי תחזית. מדיניות זו מגבילה את Forecast לגישה לקריאה בלבד. תנאי אימות תג הדייר בקוד הבא מוודא שערך תג הדייר תואם לתג הדייר של המנהל. עיין ב קוד מודגש לפרטים.
מדיניות 2: מדיניות הגישה של Amazon S3 ו-AWS KMS
המדיניות הבאה מעניקה הרשאות ל-AWS KMS וגישה לקידומת הדייר S3. תנאי אימות תג הדייר בקוד הבא מוודא שערך תג הדייר תואם לתג הדייר של המנהל. עיין ב קוד מודגש לפרטים.
צור מפתח ספציפי לדייר
כעת אנו יוצרים מפתח ספציפי לדייר ב-AWS KMS לכל דייר ומתייגים אותו עם ערך תג הדייר. לחלופין, השוכר יכול להביא מפתח משלו ל-AWS KMS. אנו נותנים את התפקידים הקודמים (Forecast_TenantA_Role
or Forecast_TenantB_Role
) גישה למפתח הספציפי לדייר.
לדוגמה, צילום המסך הבא מציג את צמד המפתח-ערך של tenant
ו tenant_a
.
צילום המסך הבא מציג את תפקידי IAM שיכולים להשתמש במפתח זה.
צור תפקיד יישום
התפקיד השני שאנו יוצרים נוטל על ידי אפליקציית SaaS לכל דייר. עליך להחיל את המדיניות הבאה כדי לאפשר לאפליקציה ליצור אינטראקציה עם Forecast, Amazon S3 ו-AWS KMS. התפקיד מתויג עם דייר התג. ראה את הקוד הבא:
צור את המדיניות
כעת אנו יוצרים מדיניות עבור תפקיד היישום. עבור פוסט זה, חילקנו אותם לשתי מדיניות לקריאות רבה יותר, אך אתה יכול ליצור אותם בהתאם לצרכים שלך.
מדיניות 1: גישה לתחזית
המדיניות הבאה מעניקה הרשאות ליצור, לעדכן ולמחוק משאבי תחזית. המדיניות אוכפת את דרישת התג במהלך היצירה. בנוסף, זה מגביל את list
, describe
, ו delete
פעולות על משאבים לדייר בהתאמה. למדיניות זו יש IAM PassRole
כדי לאפשר ל-Forecast לקבל את התפקיד.
השמיים tenant
תנאי אימות התג בקוד הבא מוודא שערך תג הדייר תואם לדייר. עיין ב קוד מודגש לפרטים.
מדיניות 2: Amazon S3, AWS KMS, Amazon CloudWatch וגישה לקבוצת משאבים
המדיניות הבאה מעניקה הרשאות גישה למשאבי Amazon S3 ו-AWS KMS, וגם אמזון CloudWatch. זה מגביל את הגישה לקידומת S3 הספציפית לדייר ול-CMK הספציפית לדייר. תנאי אימות הדייר נמצא קוד מודגש.
צור קבוצת משאבים
קבוצת המשאבים מאפשרת לדייר שאילתה לכל המשאבים המתויגים. הקוד לדוגמה הבא משתמש ב- ממשק שורת הפקודה של AWS (AWS CLI) ליצירת קבוצת משאבים עבור TenantA
:
תחזית זרימת יישום
התרשים הבא ממחיש את זרימת אפליקציית התחזית שלנו. שירות היישומים מקבל את תפקיד IAM עבור הדייר וכחלק מהזרימה העסקית שלו מפעיל Forecast API.
צור מנבא עבור TenantB
משאבים שנוצרו צריכים להיות מתויגים עם תג הדייר. הקוד הבא משתמש ב-API של Python (Boto3) כדי ליצור מנבא עבור TenantB (עיין ב- קוד מודגש לפרטים:
צור תחזית על המנבא עבור TenantB
הקוד הבא משתמש ב-API של Python (Boto3) כדי ליצור תחזית על המנבא שזה עתה יצרת:
אימות גישה למשאבי Forecast
בסעיף זה, אנו מאשרים שרק הדייר המתאים יכול לגשת למשאבי Forecast. גישה, שינוי או מחיקה של משאבי תחזית השייכים לדייר אחר גוררת שגיאה. הקוד הבא משתמש ב-Python (Boto3) API כדי להדגים את TenantA מנסה למחוק משאב TenantB Forecast:
רשום וניטור מנבאים
קוד הדוגמה הבא משתמש בממשק ה-API של Python (Boto3) כדי לבצע שאילתות לחיזוי תחזית עבור TenantA באמצעות קבוצות משאבים:
כמו מסגרת ארכיטקטורה של AWS מסביר, חשוב לפקח על מכסות שירות (המכונה גם מגבלות שירות). לתחזית יש מגבלות לכל חשבונות; למידע נוסף, ראה הנחיות ומכסות.
הקוד הבא הוא דוגמה לאכלוס מדד CloudWatch במספר הכולל של מנבאים:
שיקולים אחרים
הגבלות משאבים ומצערת צריכות להיות מנוהלות על ידי האפליקציה על פני דיירים. אם אתה לא יכול להכיל את מגבלות תחזית, עליך לשקול תצורה של ריבוי חשבונות.
יש לסנן את ממשקי ה-API של רשימת התחזית או את תגובת קבוצת המשאבים לפי אפליקציה בהתבסס על tenant
ערך תג.
סיכום
בפוסט זה, הדגמנו כיצד לבודד גישת Forecast באמצעות טכניקת ABAC ביישום SaaS מרובה דיירים. הראינו כיצד להגביל את הגישה ל-Forecast על ידי דייר באמצעות תג השוכר. אתה יכול להתאים אישית מדיניות נוספת על ידי החלת תגים נוספים, או להחיל אסטרטגיה זו על שירותי AWS אחרים.
למידע נוסף על שימוש ב-ABAC כאסטרטגיית הרשאה, ראה מה זה ABAC for AWS?
על הכותבים
גוג'אן גרג הוא Sr. מהנדס פיתוח תוכנה בצוות AWS Vertical AI. בתפקידה הנוכחי ב- Amazon Forecast היא מתמקדת בבעיות הנדסיות ונהנית מבניית מערכות מדרגיות המספקות את הערך הרב ביותר למשתמשי הקצה. בזמנה הפנוי היא נהנית לשחק בסודוקו ובמכרה.
מטיאס בטגליה הוא מנהל חשבון טכני בשירותי האינטרנט של אמזון. בתפקידו הנוכחי, הוא נהנה לעזור ללקוחות בכל שלבי המסע שלהם בענן. בזמנו הפנוי, הוא נהנה לבנות פרויקטים של AI/ML.
רקש רמדאס הוא אדריכל פתרונות ISV בשירותי האינטרנט של אמזון. תחומי המיקוד שלו כוללים AI / ML ו- Big Data.
- גישה
- חֶשְׁבּוֹן
- פעולה
- נוסף
- AI
- אמזון בעברית
- תחזית אמזון
- אמזון שירותי אינטרנט
- API
- ממשקי API
- בקשה
- יישומים
- ארכיטקטורה
- אישור
- AWS
- חיוב
- לִבנוֹת
- בִּניָן
- עסקים
- ענן
- קוד
- הענות
- נוֹכְחִי
- לקוחות
- נתונים
- גישה למידע
- פענוח
- מסירה
- צעצועי התפתחות
- מהנדס
- הנדסה
- סביבה
- תזרים
- להתמקד
- חופשי
- GitHub
- קְבוּצָה
- איך
- איך
- HTTPS
- IAM
- זהות
- פְּגִיעָה
- מידע
- IT
- מפתח
- מפתחות
- קוברנט
- למידה
- קו
- רשימה
- למידת מכונה
- ניהול
- ML
- מודל
- ניטור
- Onboarding
- אפשרות
- אחר
- מדיניות
- מדיניות
- פרויקטים
- פיתון
- דרישות
- משאב
- משאבים
- תגובה
- REST
- ריצה
- SaaS
- סדרה
- שירותים
- סט
- הצבה
- משותף
- פָּשׁוּט
- תוכנה
- פיתוח תוכנה
- פתרונות
- לפצל
- החל
- הצהרה
- אחסון
- אִסטרָטֶגִיָה
- מערכות
- טכני
- טכנולוגיה
- זמן
- מעבר
- עדכון
- משתמשים
- ערך
- אינטרנט
- שירותי אינטרנט
- בתוך