Table of Contents
הקדמה: הקונפורמציה של ריבוי ו- Containerization
המודל של התוכנה כשירות (SaaS) יש בצורת יסודית כיצד עסקים צורכים תוכנה. על ידי אירוח מקרה יישום יחיד המשרת לקוחות מרובים (עשרות) מתוך תשתית משותפת זו, ספקי SaaS להשיג כלכלות יוצאות דופן של קנה מידה.עם זאת, פרדיגמות ארכיטקטוניות זו מציגה מתח ביקורתי: כיצד לספק את היתרונות של שיתוף משאבים תוך שמירה על בידוד קפדני, אבטחה וביצועים עבור כל אחד עשר מסלולים מסורתיים באמצעות שימוש יעיל יותר ויותר מאובטחים, אך מספק פתרונות גמישים מאובטחים של אבטחה גבוהה יותר, אך יעיל של זמן רב עוצמה, אך יעיל של אבטחה גבוהה יותר, כי הוא מאפשר גישה יעילה, אך יעיל של אבטחה גבוהה יותר, אך מאפשר גישה יעילה יותר, שמירה על פני שטחית אבטחה גבוהה יותר, תוך שמירה על פני שטחית אבטחה גבוהה יותר, שמירה על פני שטחית אבטחה גבוהה יותר, שמירה על פני שטחית אבטחה גבוהה יותר, שמירה על מנת להבטיח בידוד חזק, תוך שמירה על מנת להבטיח בידוד חזק, שמירה על מנת להבטיח בידוד חזק, שמירה על מנת להבטיח בידוד חזק, שמירה על איכות גבוהה של אבטחה גבוהה של אבטחה גבוהה של אבטחה גבוהה יותר, שמירה על בידוד, שמירה על בידוד, שמירה על בידוד קפדני של אבטחה גבוהה של אבטחה גבוהה יותר, שמירה על בידוד, שמירה על ידי שימוש בדרגת אבטחה גבוהה יותר, שמירה על בידוד, שמירה
הבנה של ארכיטקטורות SaaS רב-נטנסי
לפני צלילה לתפקידו של דוקר, חיוני להגדיר את הנוף הרב-נטנטי.ביישומים SaaS רב-נטנסיים, מקרה אחד של התוכנה משרתת לקוחות מרובים, הידוע כ- Tenants. כל אחד מהמידע של דייר הוא מופרד באופן הגיוני, אבל התשתית הבסיסית - חישוב, אחסון, רשת - משותף.
ריבוי-העוצמה מציע יתרונות ברורים:0; עלויות תפעול נמוכות יותר, תחזוקה פשוטה (קוד אחד בסיס לעדכן), ויעילות משאביםFLT:1 עם זאת, היא גם מטילה דרישות מחמירות:
- (ב) ⁇ :0) בידוד נתונים: ראט 1:1 אסור לנתב לעולם אל גישה לנתונים של Tenant B, בין אם במנוחה, במעבר, או בזיכרון.
- (ב) ,0) גבולות הביטחון: 1FLT:1 הפרת אבטחה בסביבתו של אחד הדיירים לא חייבת להיות קדמית לאחרים.
- (ב) רפורמות מבטיחות: 1FLT:1 בעיות שכנות נושיות - שבו שימוש במשאב גבוה של דייר משפיע על אחרים - אסור למנוע.
- (FLT:0) ניהול המינהל: 1.FLT:1 מסגרות רגולטוריות כמו GDPR, HIPAA, או SOC 2 דורשות כי נתונים עמידים נותרו מחוסנים ובלתי ניתנים לביקורת.
גישות מסורתיות למגוון רחב של בעלי יכולת כוללות מסד נתונים-per-tenant, סכימה-per-ten-ten-per-ten-per---ten-sema משותף עם אבטחה ברמת השורה.Docker מוסיף מימד חדש על ידי מתן וירטואליזציה ברמת מערכת ההפעלה, המאפשר לכל דייר (או קבוצה של דיירים) לרוץ באחד או יותר עם משאבים ייעודיים, מערכות קבצים, וערימות רשת.
כיצד Docker מספק בידוד עבור SaaS רב-נטנסי
Docker משתמש בכלייבריזציה כדי ליצור מקרים בודדים של משתמשים בשם מכולות.בניגוד ל-VMs, מכולות חולקות את מערכת ההפעלה המארחת אך יש להם מערכת קבצים משלהם, שולחן תהליכים, ממשקי רשת, ובקרת משאבים. בידוד קל זה מושג באמצעות תכונות ליבה מפתח: חללי שם ו- cgroups.הבנת האופן שבו העבודה הזו היא בסיסית לבניית ארכיטקטורות מאובטחות.
שם: תהליכים ועיבוד משאבים
משאבי ליבה של שם, כגון תהליכים במרחב אחד, אינם יכולים לראות או להשפיע על תהליכים באחר. דוקר משתמש במספר מקומות שם לכל מכולה:
- (ב) ל"מסלול":0) ל"מעגל" (במדבר כ"ד) ל"החל" (במדבר כ"ד) יש עץ תהליכים משלו; הם אינם יכולים לראות או לסמן תהליכים במיכלים אחרים או במארח.
- (FLT:0 Network Namespace:FLT:1) כל מיכל מקבל את ערמת הרשת שלו (פניות, שולחנות מתפתלים, כללי לוח זמנים), מניעת גלישה ברשת על פני הדיירים.
- (ב) [המאה ה':] ,[דרוש מקור]: [הרבי]: [ה'] מראיין: [ה'], [ה'], [ה'] לא ניתן לעיין ב'''''''''.
- שם הספר בלועזית:0.10.10.10.10.13
- שם הספר בלועזית:0IPC Namespace: FLT:1 Inter-מעבד בידוד (זיכרון משותף, סמפורים).
- (FLT:0User Namespace:FLT:1 מאפשר מיפוי שורש מכולות (UID 0) למשתמש לא מוגן על המארח, מזרז את הסיכון להסלמה ברווחה.
קבוצות בקרה (Cקבוצות): בידוד משאבים
בעוד שמרחבי שם מבודדים את הניראות של התהליך, קבוצות ה-Cקבוצות לאכוף את גבולות המשאבים.עבור SaaS רב-נטנסיבית, קבוצות הם קריטיים למנוע את אפקט השכן הרעוע.מנהלים יכולים להציב גבולות על CPU, זיכרון, דיסק I/O, ורוחב רוחב פס לרשת לכל מיכל (או לכל דייר) לדוגמה, דוקר FLT:0 פיקוד מבטיח כי מיכל לא יעלה על 512 של MB או חצי מעוקב אחר.
מערכת הקבצים Isolation ו- Volume Management
Docker משתמש במערכות קבצים של איגוד (כמו overlay2) כדי ליצור תמונות מעוות.לכל מיכל יש שכבה מדהימה על גבי תמונה לקריאה בלבד.עבור נתונים מתמשכים, כרכים Docker ועמודי תווך משמשים.בסביבות מרובות-נטנטות, ניתן להקדיש כרכים לכל דייר.לדוגמה, מיכל מסד נתונים של Tenant יכול להיות מסלול אחסון ייחודי על גבי נפח 1 על המארח, ללא אפשרות לאבטחת נתונים נוספים.
רשת גשר ברירת המחדל של דוקר יוצרת פלחי רשת מבודדים לכלי.עם זאת, לייצור מערכות מרובות-נטנטיות, נדרש יותר מתוחכם של פיזור רשת (התעלם מאוחר יותר).
יישום רב-עוצמה עם Docker: אסטרטגיות ותבניות
ספקי SaaS יכולים לאמץ מספר דפוסים בעת השימוש ב-Docker לבידוד דייר.הבחירה תלויה בארכיטקטורה של היישום, דרישות אבטחה ו-Overhead התפעולי.
1 מכיל לעשר
זהו התבנית הפשוטה ביותר: כל דייר מקבל אחד או יותר מכולות (למשל, מיכל אינטרנט ומכל מסד נתונים) אשר ניתנות לביקוש. כל תצורה ספציפית (מפתחי נתונים, מחרוזת חיבור מסד נתונים) מוזרק באמצעות משתנים או סודות רכובים.
2. Container per Tenant Group (מודל מפונק)
עבור יישומים עם דרישות בידוד נמוכות יותר או עבור microservices המשרתים דיירים רבים בתהליך יחיד, את מיכל דפוס קבוצה דייר הוא יותר יעיל משאבים. קבוצה של הדיירים מוקצה מיכל משותף (או קבוצה של מיכלים) היפרנט הפרדה נתונים מטופלת אז ברמת היישום (למשל, סכימה-נטנטן במסד נתונים משותף).
3. Sidecar Pattern for Tenant-Specific Services
באדריכלות מיקרו-שירותים, פונקציונליות הליבה עשויה להיות משותפת (למשל, אימות, הודעה), אבל כל דייר עשוי לדרוש תהליך של צד מותאם אישית (a regator, שירות טרנספורמציה נתונים) Docker Sidecars מאפשר לצמד מיכל יישום עם מיכל מתווך ייעודי בתוך אותו פוד (אם באמצעות Kubernetes) או באמצעות תבנית זו מאפשרת הזנה ללא מסגרת שינוי עדין.
4.כחול ירוק וקניין מתחלפים
תמונות Docker תומך גרסאות וגלגלות. עבור סביבות מרובות-גבוהות, אתה יכול לשלב פריסות ירוקות בדרגה העשרונית: לעדכן מכולות עבור תת-קבוצה של הדיירים (קניי) בעוד אחרים נשארים בגרסה הקודמת.זה מקטין רדיוס הפיצוץ ומאפשר בדיקות בטוחות של תכונות חדשות או כתמים אבטחה על פחות על דיירים קריטיים קודם. Kubernets עושה דפוס זה מנוהל באמצעות פריסה, ופעולות, תוקפנות, ו-R.
Orchestrating Docker in Multi-tenant SaaS: Kubernetes ו- Beyond
הפעלת מיכלים רבים באופן ידני היא בלתי אפשרית.פלטפורמות תזמורת המכילות מכילות אוטומציה עבור פריסה, קנה מידה, רשתות וניהול בריאות. Kubernetes הוא תקן דה Facto לייצור סביבות דוקר מרובות-עשר. להלן הם תכונות Kubernetes מפתח אשר משפרות בידוד ואבטחה.
שם: Tenant Boundaries
Kubernetes Namespaces אינם זהים ל-Linux Namespaces. in Kubernetes, שם הוא חלוקה הגיונית של משאבי אשכול (pods, שירותים, סודות) הם מיפוי אידיאלי ל- Tenants.כל דייר מקבל שם Kubernetes ייעודי. בתוך אותו אזור שם זה, אתה פריסת מיכלי של Tenant (pos), מכסת משאבים להגדיר, מגדירה מדיניות, וליישם גישה חזקה של הארגון).
המונחים: Limit Ranges
מנהלי Kubernetes יכולים להגדיר מכסות משאבים של שם-מרחב (CPU, זיכרון, אחסון) וגבולות טווחים לאכוף ערכים של דקות / מקסימום עבור pods ומכלים.זה מונע כל דייר מצריכת כל המשאבים של אשכול.שלב אלה עם Horizontal Podscaling מבטיח הקצאת משאבים יעילה.
מדיניות רשת
כברירת מחדל, כל הפודים במקבץ Kubernetes יכולים לתקשר מדיניות רשת (משאב Kubernetes) מאפשרים לך להגדיר בתוקפנות ותקנות תוקפנות המבוססות על תוויות ושמות.עבור ריבוי-היציבות, באפשרותך ליצור מדיניות רשת שמונעת מכל התנועה משמות אחרים מלבד דרך שער API.זה מבודד עומסי עבודה ברשת, משלימים את שם רשת Dockers.
תקני אבטחה פוד (PSS) ו- Security Contexts
Kubernetes 1.23+ הציג תקנים אבטחה פוד (בסיס, מוגבל) שניתן לאכוף ברמת שם דרך פוד אבטחה כניסה.אלה להחליף מדיניות אבטחה פוד מקודמת פוד (בסיס, SaaS רב-נט, עליך ליישם את ה-FLT:0restrictedFLT:1 ל-עשר מקומות שם כדי למנוע מכולות לרוץ כמו שורש, הוספת יכולות, או משורה על גבי נתיבי שורש, בנוסף לשימוש ב-F.
מקור:0 (ב) ,0) ,4
שיטות אבטחה מתקדמות ל- Multi-tenant Docker
בעוד דוקר וקוברנטס מספקים אבני בניין לבידוד, יש צורך בגישה ביטחונית-מעמיקה.
תמונות קשיחות ונפיחות
השתמש בתמונות בסיס מינימליות (אלפיין, דיסטרופי) כדי להפחית את פני השטח של ההתקפה באופן קבוע לסרוק תמונות עם כלים כמו Trivy, Clair, או Snyk.רק לדחוף תמונות חתום על רשם מהימן. Enforce כי מיכלים Tenant לרוץ עם הפריבילגיה הנמוכה ביותר; להימנע מריצה כשורש.Docker'sFLT:3 הוראה ב Dockers כדי לעבור למשתמש לא-בסיס.
סודות ניהול
לעולם אל הטמיעו מפתחות API, סיסמאות מסד נתונים, או תעודות TLS בתמונות Docker. השתמש בסודות Docker (עבור Swarm) או Kubernetes סודות (עבור אשכולות) לאבטחה נוספת, משתלב עם קמרון חיצוני כגון HashiCorp Vault, אשר יכול באופן דינמי לייצר אישורים קצרים מועדים לעשרant.
רשת Segmentation and Encryption
מעבר למדיניות הרשת של Kubernetes, לשקול שירות meshes (Istio, Linkerd) המספקים TLS הדדי בין כל הפודים, צפיפה התנועה אפילו בתוך המערך.זה מגן על נתונים Tenant כפי שהוא זורם בין microservices. for inbound Traffic, השתמש שער API (למשל, קונג, NGINX Plus) אשר מבטל את TLS, אותנטיים, דיירים, ובקשות למנוע את ה-D לצמצום המתאים ל-D.
Runtime Security with Seccomp, AppArmor ו- SEלינוקס
Docker תומך בפרופיל שותפים (מצב מחשוב בטוח) המגביל את המערכת יכול לעשות.עבור סביבות מרובות-נטנסיות, השתמש פרופיל שותפים ברירת מחדל חוסם סינקלות מסוכנות כמו FLT:4, FLT:5, או FLT 6 ( החל Appmorar או SEלינוקס פרופילים למגבלות נוספות.
ביקורת ושילוב
ניתן לעשות את Docker daemon יומניs (viaFLT 7 או JSON logging הנהג) ולירות אותם למערכת SIEM מרכזית. השתמש Kubernetes ביקורת logging כדי לעקוב אחר כל שיחות API למרחבי שם מרשימים. יישום כניסה להגדלת השימוש בלוגים מובנים הכוללים מזהים Tenant.זה תומך בניתוחים משפטיים וציות.
מקור:0 (ב) ,917:0) ,
מעקב ו Observability עבור רב-החזקה Docker
בידוד ללא חשיפה הוא מסוכן.ספקי SaaS חייבים לפקח על מיכלים דיירים כדי לזהות אנומליות, תוכן משאבים והפרות אבטחה. ניטור מרכזי צריך לצבור מדדים, יומנים, וסימנים על פני כל הדיירים תוך שמירה על גבולות נתונים של דיירים.
אוסף
השתמש Prometheus כדי לגרד את מדדי המכה (CPU, זיכרון, דיסק I / O, רשת) להבטיח מדדים מוזנים עם מזהה ה- 10ant או שם שטח. להגדיר התראות עבור סף משאבים שיכולים להצביע על שכנה רועשת או משאב ניסה לתקוף. Grafana לוחות נתונים יכולים להציג שימוש רב עוצמה עבור תובנות תפעוליות.
« « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « «
עבור microservices, השתמש OpenTelemetry כדי לעקוב אחר בקשות על פני שירותים דייר. Include נית בהקשרים עקבות כך שניתן להשוות את ההידרדרות בביצוע לעומס העבודה של דייר מסוים. זה עוזר בפתרון בעיות ללא גישה לנתונים Tenant ישירות.
ניהול מידע ואירועי אבטחה (SIEM)
Integrate Docker ו- Kubernetes עם SIEM כמו Splunk, ELK Stack, או Datadog. צור כללים כדי לזהות התנהגות יוצאת דופן, כגון מיכל מנסה לגשת למשאבים מארחים, תנועה רשת חריגה, או ניסיונות כניסה כושלים חוזרים ונשנים של מיכל של דייר.
Compliance and Governance in Multi-tenant Container Environments
דרישות רגולטוריות של מפגשים כמו SOC 2 סוג II, HIPAA, PCI DSS, או GDPR דורשות בקרה ניכרת על בידוד נתונים של קריין וקוברנטס, כאשר נקבע כראוי, יכול לתמוך בציות.
- (FLT:0) תושבות נתונים: ⁇ FLT:1) השתמש בשפע ובטלטים / סובלנות כדי לקבוע קונטינרים על צמתים ספציפיים באזורים גיאוגרפיים ספציפיים.
- (FLT:0) קידוד מנוחה:FLT:1hil השתמש אחסון נפח מוצפן (למשל, הצפנה EBS, הצפנה GCE PD) ואכיפת נתונים Tenant נכתב רק על כרכים מוצפנים.
- (FLT:0) בקרת גישה: המחשה: 1:1) יישום מדיניות IAM לפחות-privilege עבור מפעילי אנוש ואוטומציה (CI/CD) להשתמש Kubernetes RBAC כדי להגביל מי יכול לגשת למרחבי שם דיירים או להציג נתונים סודיים.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- בדיקה אחרונה ב-6 ביולי 2008. ^ FLT:0.0.10.05.05.03:0.10.05.05.05.10.10.05.05.05.05.18.18.I.I.S.I.E.S.S.S.I.I.S.E.R.I.E.E.S.S.E.S.S.I.I.E.E.E.E.E.E.E.S.R.R.E.E.E.E.E.E.E.R.R.E.E.E.E.E.E.E.E.E.E.R.R.I.E.E.E.E.E.E.E.E.E.E.R.R.R.E.E.E.E.R.R.R.E.R.R.R.R.I.R.R.R.I.I.I.E.E.E.R.R.E.R.R.E.E.E.E.E.E.E.E.I.
מקור:0 (בשיתוף:0)
המונחים: Tenant Lifecycles
מעבר לבידוד ואבטחה, הפעלת SaaS רב-עוצמה מבוססת דוקר כוללת אתגרים תפעוליים סביב מתן, עדכון, ופירוק דיירים.
חידוש אוטומטי
כאשר חדש בעל מסמנים, תהליך אוטומטי צריך ליצור שם Kubernetes (או Docker Compose Project), לפרוס את המכולות הנדרשות, להגדיר מדיניות רשת, וליישם מכסות משאבים.זה יכול להיות מופעל באמצעות צינורות CI /CD או מפעיל (למשל, באמצעות פרמטר Helmized עם מזהה Tenant).
שדרוגים
החל עדכונים מתגלגלים למכלים עם מינימום downtime. השתמש Kubernetes Deployments עם FLT 9 [עבור הודעות צ'אנס, לכוון תת-קבוצה של תנועה Tenant לגרסה חדשה של המכולה תוך מעקב אחר שיעורי כשל.שמור את היכולת לחזור במהירות על ידי שמירה על תגי תמונה קודמים וגרסאות תרשים Helm.
Tenant Decommissioning
כאשר עלים דיירים, ודאו שכל הנתונים שלהם נמחקים באופן מאובטח.זה כולל הסרת כרכים, סודות והגדרות תצורה. in Kubernetes, מחיקת השם Space תנקה את כל המשאבים הקשורים, אך להבטיח כי אחסון חיצוני (למשל, צילומי מסד נתונים בענן) הוא גם מטוהר.
מחקר: Apply Docker Isolation Patterns
בהתחשב בפלטפורמת SaaS היפותטית, FLT:0CloudColirlabFLT ( 1:1), המציעה שיתוף פעולה מסמך.אדריכלות שלהם משתמשת במיקרו-שירותים: אימות, אחסון מסמכים, בזמן אמת, והודעה.הם בחרו ב-FLT 2GB:2 המכילה את כל 10 ה-CLTs של שירות אחסון ה- API המגביל את שם ה- Microsoft של חברת האבטחה של החברה רק לבודדת את נתוני האחסון של כל אחד מ- 10.
מסקנה: בניית אמון באמצעות החלמה
Docker, בשילוב עם כלי תזוזה כמו Kubernetes, מציע בסיס חזק לבניית סביבות SaaS מאובטחות, מבודדות ורב-עוצמה.על ידי מינוף של שמות לינוקס ו cgroups, ספקי SaaS יכולים להשיג בידוד משאבים גרפי וגבולות אבטחה חזקים. עם זאת, Docker לבד אינו מספיק; אסטרטגיה מקיפה חייבת לכלול פלח רשת, ניהול, ניהול, ניטור, ותבניות אבטחה חזקות, כמו גם ארכיטקטוני אחסון מאובטחים מאובטחים, ומודלים מאובטחים מאובטחים, תכונות אבטחה, מחזיקות אבטחה, מבטיחות, ומודלים מאובטחים, ארכיטקטוני אבטחה, ארכיטקטוני איכות, מבטיחות, ארכיטקטוני אבטחה, מבטיחות, ומודלים, מבטיחות אבטחה, מבטיחות אבטחה, ארכיטקטוני אבטחה רב-קו, מבטיחות אבטחה, מבטיחות אבטחה, מודלים מאובטחים, מבטיחות אבטחה רב-קוטרים, מבטיחות, ארכיטקטוני איכות, מודלים מאובטחים, מבטיחות אבטחה, מבטיחות אבטחה, מודלים מאובטחים, מודלים מאובטחים, כולל, מבטיחות אבטחה, מבטיחות אבטחה רחב יותר, מודלים מאובטחים, מודלים מאובטחים, כולל, כולל אפשרויות אבטחה, כולל שיטות אבטחה, כולל שיטות אבטחה, מודלים מאובטחים, כולל שיטות אבטחה, כולל שיטות אבטחה, מודלים מאובטחים, כולל אפשרויות אבטחה,
מקור:0 (ב) ,917:5 ⁇