אפשר ל-pod באשכול AKS לגשת בצורה מאובטחת ל-Azure Key Vault ללא שימוש בפרטי כניסה מאוחסנים כמו סודות לקוח או אישורים.
→השתמש ב-Azure AD Workload Identity. צור זהות מנוהלת שהוקצתה למשתמש, קבע אישור זהות מאוחד בין חשבון שירות K8s לזהות המנוהלת, והענק לזהות המנוהלת גישה ל-Key Vault.
למה: Workload Identity משתמש בפרדרינג OIDC כדי להחליף אסימון Kubernetes באסימון Azure AD, ובכך מבטל לחלוטין את הצורך לאחסן, לנהל או לסובב סודות באשכול.
מקור↗
אבטח Azure Key Vault כדי לאפשר גישה רק מ-VNets ספציפיים, רשום את כל הפעולות, והגן מפני מחיקה בשוגג של מפתחות קריטיים.
→הגדר את חומת האש של Key Vault לאפשר גישה מ-"Private endpoint ורשתות נבחרות". אפשר רישום אבחון לסביבת עבודה של Log Analytics. אפשר גם Soft Delete וגם Purge Protection.
למה: Soft Delete מאפשר שחזור ממחיקה בשוגג, אך Purge Protection מונע גם ממשתמש מורשה למחוק לצמיתות את הכספת או תוכנה במהלך תקופת השמירה. שילוב זה קריטי להגנה על מפתחות TDE.
שירות Azure App Service צריך לאמת את עצמו מול Azure SQL Database כדי לאחזר נתונים, מבלי לאחסן סיסמאות של מחרוזות חיבור בתצורה.
→אפשר זהות מנוהלת שהוקצתה למערכת (system-assigned managed identity) בשירות App Service. ב-Azure SQL, צור משתמש מכונס (contained user) הממופה לשם הזהות המנוהלת של שירות App Service והענק לו את תפקידי מסד הנתונים הדרושים (לדוגמה, db_datareader).
למה: Managed Identity מספק זהות למשאב Azure עצמו ב-Azure AD. Azure מטפלת ביצירה וסיבוב של פרטי כניסה באופן אוטומטי, ומבטלת סודות מאוחסנים, שהיא שיטת אבטחה מומלצת חשובה.
הצפן דיסקים מנוהלים של מכונות וירטואליות של Azure במנוחה באמצעות מפתח שהארגון שלך שולט בו ב-Azure Key Vault.
→צור משאב Disk Encryption Set. הגדר אותו להשתמש במפתח מנוהל לקוח (CMK) מ-Azure Key Vault שלך. הקצה את ה-Disk Encryption Set לדיסקים המנוהלים של המכונה הווירטואלית.
למה: זוהי הצפנת צד שרת (SSE) עם CMK, המצפינה נתונים בתשתית האחסון. היא פשוטה יותר מ-Azure Disk Encryption (ADE), המשתמשת ב-BitLocker/dm-crypt להצפנת נתונים בתוך מערכת ההפעלה האורחת ובדרך כלל משמשת עבור דיסקי מערכת הפעלה ונתונים יחד.
וודא שתמונות קונטיינר המאוחסנות ב-Azure Container Registry (ACR) נסרקות לאיתור חולשות לפני פריסתן.
→אפשר את Microsoft Defender for Containers. זה יסרוק אוטומטית תמונות ב-ACR כאשר הן נדחפות, כאשר הן נמשכות, ועל בסיס מתמשך לאיתור חולשות שזה עתה התגלו.
למה: פרקטיקת אבטחה "Shift-Left" זו מזהה חולשות מוקדם בצינור ה-CI/CD. Defender for Containers מספק יכולת סריקה זו באופן מקורי בתוך סביבת Azure.
זהה וקבל התראות על התקפות SQL injection פוטנציאליות ותבניות גישה חריגות על Azure SQL Database.
→אפשר את Microsoft Defender for SQL על שרת ה-SQL הלוגי. זה מספק הגנה מתקדמת מפני איומים והערכת חולשות.
למה: Defender for SQL היא תוכנית הגנת עומסי העבודה הייעודית המשתמשת בניתוח התנהגותי ולמידת מכונה כדי לזהות איומים כמו SQL injection, התקפות כוח גס וגישה חריגה לנתונים, שאינם גלויים לכלי רשת.
הגבל חשבון אחסון ל-VNet ספציפי, אך עדיין אפשר לשירותי Microsoft מהימנים כמו Azure Backup לגשת אליו.
→בהגדרות הרשת של חשבון האחסון, בחר "זמין מרשתות וירטואליות וכתובות IP נבחרות". הוסף את ה-VNet/תת-הרשת הנדרשים. לאחר מכן, סמן את התיבה "אפשר לשירותי Microsoft מהימנים לגשת לחשבון אחסון זה".
למה: חריגת השירותים המהימנים יוצרת נתיב מאובטח לשירותי Microsoft ספציפיים כדי לעקוף את כללי חומת האש של ה-VNet. בלעדיה, שירותים הפועלים בשם המשתמש (כמו Backup או Portal) ייחסמו.
הגן על עמודות נתונים רגישות ספציפיות (לדוגמה, מספרי כרטיסי אשראי) במסד נתונים של Azure SQL, גם ממנהלי מסדי נתונים (DBAs) בעלי הרשאות גבוהות.
→השתמש ב-Always Encrypted. מנהל ההתקן של יישום הלקוח מצפין את הנתונים באופן שקוף לפני שליחתם למסד הנתונים, ומפתחות ההצפנה אינם נחשפים לעולם למנוע מסד הנתונים.
למה: הצפנת נתונים שקופה (TDE) מצפינה את כל מסד הנתונים במנוחה (על הדיסק), אך DBA עם גישה עדיין יכול לראות את הנתונים. Always Encrypted מספקת הצפנה בצד הלקוח, ומפרידה בין אלו המנהלים את הנתונים (DBAs) לבין אלו שיכולים לראות אותם.
עבד נתונים רגישים ביותר על מכונה וירטואלית של Azure, וודא שהם נשארים מוצפנים ומוגנים גם בזיכרון מפני ההיפרוויזור ומפעילי הענן.
→פרוס מכונה וירטואלית חסויה של Azure. מכונות וירטואליות אלו משתמשות בסביבות ביצוע מהימנות (TEEs) מבוססות חומרה כמו AMD SEV-SNP כדי ליצור מרחב זיכרון מבודד ומוצפן.
למה: הצפנת מכונה וירטואלית סטנדרטית (כמו ADE או SSE) מגנה על נתונים במנוחה. Confidential Computing היא הטכנולוגיה היחידה המגנה על נתונים *בזמן שימוש* בזיכרון, ומספקת את הרמה הגבוהה ביותר של פרטיות ובידוד נתונים בענן.
שירות App Service צריך להשתמש בסוד מ-Key Vault כהגדרת יישום, מבלי לשנות את קוד היישום כדי להשתמש ב-Key Vault SDK.
→אפשר זהות מנוהלת בשירות App Service והענק לה הרשאות "קריאה" (Get) על סודות ב-Key Vault. בתצורת ה-App Service, צור הגדרת יישום עם הערך מעוצב כהפניית Key Vault: `@Microsoft.KeyVault(SecretUri=...)`.
למה: תכונה זו מאפשרת לפלטפורמת App Service לפתור את ערך הסוד בזמן ריצה באמצעות הזהות המנוהלת. קוד היישום פשוט קורא משתנה סביבה סטנדרטי, ומפשט את האינטראקציה עם Key Vault.
אחסן נתונים הקשורים לתאימות ב-Azure Blob Storage במצב WORM (Write-Once, Read-Many) לתקופת שמירה של 7 שנים.
→במכל האחסון, הגדר מדיניות אי-שינוי. השתמש במדיניות שמירה מבוססת זמן המוגדרת ל-7 שנים ונעל את המדיניות. לאחר הנעילה, לא ניתן לשנות או למחוק את הנתונים על ידי אף אחד עד שתקופת השמירה תפוג.
למה: תכונה זו תוכננה במיוחד כדי לעמוד בדרישות תאימות רגולטוריות (לדוגמה, SEC 17a-4). נעילת המדיניות היא השלב הקריטי שהופך אותה לבלתי ניתנת לשינוי באמת.
ביישום מרובה דיירים המשתמש במסד נתונים יחיד של Azure SQL, וודא שמשתמשים מדייר אחד יכולים לראות רק נתונים השייכים לדייר שלהם.
→הטמע אבטחה ברמת שורה (RLS). צור מדיניות אבטחה עם פונקציית Predicate המסננת שורות בהתבסס על מזהה הדייר של המשתמש, המאוחסן בהקשר הסשן או בטבלת בדיקת משתמשים.
למה: RLS אוכף לוגיקת גישה ישירות בתוך מנוע מסד הנתונים. זה מאובטח ואמין יותר מאשר הטמעת סינון בשכבת היישום, מכיוון שלא ניתן לעקוף אותו והוא שקוף לקוד היישום.
הגן על מכונות וירטואליות מדור 2 מפני Boot Kits ו-Rootkits על ידי הבטחת שלמות שרשרת האתחול כולה מ-UEFI ועד לקרנל מערכת ההפעלה.
→הקצה את המכונה הווירטואלית עם Trusted Launch מופעל. זה מפעיל את Secure Boot, המאמת את החתימה של כל רכיבי האתחול, ומודול פלטפורמה מהימן וירטואלי (vTPM) לאתחול מדוד ואישור.
למה: Trusted Launch מטפל בתוכנות זדוניות מתוחכמות וברמה נמוכה שיכולות לחתור תחת בקרות אבטחה מסורתיות ברמת מערכת ההפעלה. הוא יוצר שורש אמון מבוסס חומרה עבור המכונה הווירטואלית.