בודד שכבות יישום (web, app, data) בתוך VNet, מנע תקשורת ישירה בין שכבות שאינן סמוכות.
→השתמש ב-subnet נפרד עבור כל שכבה והחל Network Security Groups (NSGs) על כל subnet כדי לשלוט בזרימת התעבורה.
למה: NSGs מאפשרים סינון פרטני ומצבני (stateful) המבוסס על טווחי IP של מקור/יעד (subnets), פורטים ופרוטוקולים, ומאפשרים micro-segmentation של הרשת.
חבר שני VNets באזורי Azure שונים באופן פרטי מעל רשת ה-backbone של Microsoft.
→הגדר Global VNet Peering בין שני ה-VNets.
למה: Global Peering פשוט יותר, בעל latency נמוך יותר ורוחב פס גבוה יותר מחיבור VNet-to-VNet VPN. התעבורה נשארת ברשת הפרטית של Microsoft.
VNet-A מקושר ל-Hub-VNet, ו-Spoke-VNet מקושר גם הוא ל-Hub-VNet. VMs ב-VNet-A אינם יכולים להגיע ל-VMs ב-Spoke-VNet.
→הסיבה היא ש-VNet peering אינו טרנזיטיבי. כדי לאפשר תקשורת, קשר ישירות את VNet-A ו-Spoke-VNet או השתמש ב-NVA ב-Hub.
למה: Peering אינו יוצר שרשרת. כל VNet חייב להיות מחובר ישירות כדי לתקשר, אלא אם כן מוגדר ניתוב דרך Network Virtual Appliance.
הקם מנהרת IPsec מוצפנת וקבועה מרשת on-premises ל-Azure VNet מעל האינטרנט הציבורי.
→פרוס Azure VPN Gateway ב-VNet והגדר חיבור Site-to-Site (S2S).
למה: זהו הפתרון הסטנדרטי, המאובטח והאמין לקישוריות היברידית בין אתר on-premises יחיד ל-Azure VNet.
Azure Load Balancer ממשיך לשלוח תעבורה ל-VM אחורי לא תקין, וגורם ל-timeouts ביישום.
→הגדר health probe ב-load balancer הבודק באופן מדויק את תקינות היישום ב-VMs האחוריים.
למה: ה-load balancer מסתמך לחלוטין על health probes כדי לזהות מופעים לא תקינים. ללא probe מוגדר כהלכה, הוא אינו יכול להסיר VMs כושלים מרוטציית התעבורה.
נתב תעבורת HTTP/S למאגרי שרתים אחוריים שונים בהתבסס על נתיב ה-URL (לדוגמה, /images/* לעומת /api/*).
→השתמש ב-Azure Application Gateway עם כללי ניתוב מבוססי-נתיב.
למה: Application Gateway הוא Layer 7 load balancer שבודק בקשות HTTP ויכול לקבל החלטות ניתוב בהתבסס על נתיבי URL. Azure Load Balancer סטנדרטי הוא Layer 4 ואינו יכול.
VMs ב-VNet עם שרת DNS מותאם אישית אינם יכולים לפתור שמות מארחים ב-Azure Private DNS Zone.
→הגדר את שרת ה-DNS המותאם אישית להעביר באופן מותנה שאילתות עבור ה-private zone לכתובת ה-IP של ה-DNS resolver שמספק Azure (168.63.129.16).
למה: כאשר נעשה שימוש בשרת DNS מותאם אישית, הוא עוקף את ה-DNS הפנימי של Azure. יש ללמד את השרת המותאם אישית כיצד לפתור אזורים ספציפיים ל-Azure על ידי העברת בקשות ל-Azure DNS.
אכוף שכל התעבורה היוצאת לאינטרנט מ-spoke VNets תיבדק על ידי Azure Firewall מרכזי ב-hub VNet.
→החל Route Table עם User-Defined Route (UDR) על ה-spoke subnets. ה-UDR הוא default route (0.0.0.0/0) המצביע על ה-IP הפרטי של חומת האש.
למה: UDR עוקף את ניתוב המערכת הדיפולטיבי של Azure לאינטרנט, ומאפשר לך לשלוט ולרכז את זרימת תעבורת היציאה לבדיקת אבטחה.
ספק גישת RDP/SSH מאובטחת ל-VMs שאין להם כתובות IP ציבוריות, ללא הגדרת VPN.
→פרוס Azure Bastion ל-subnet ייעודי (AzureBastionSubnet) ב-VNet.
למה: Bastion מספק שירות jump box מנוהל, המאפשר גישה ניהולית מאובטחת דרך פורטל Azure באמצעות TLS, ומבטל חשיפה של IP ציבורי ב-VMs.
ודא שתעבורה בין VM לשירות PaaS (לדוגמה, Azure SQL) נשארת ברשת הפרטית וששירות ה-PaaS אינו נגיש לציבור.
→צור private endpoint עבור שירות ה-PaaS ב-VNet של ה-VM ובטל גישת רשת ציבורית בשירות ה-PaaS.
למה: private endpoint מעניק לשירות ה-PaaS IP פרטי בתוך ה-VNet שלך, בעוד שביטול גישה ציבורית מבטיח שהוא נגיש רק באמצעות IP פרטי זה.
נתב משתמשים גלובליים לנקודת הקצה האזורית הקרובה ביותר של היישום כדי להבטיח את ה-latency הנמוך ביותר האפשרי.
→השתמש ב-Azure Traffic Manager עם שיטת הניתוב "Performance".
למה: שיטת הניתוב Performance משתמשת ב-DNS כדי לנתב לקוחות לנקודת הקצה עם ה-latency הנמוך ביותר ממיקומם.