קבוצות אבטחה ברשת

בדף הזה מוסבר על קבוצות אבטחה ברשת (NSG) של Azure שנדרשות ל-GKE on Azure, ומופיעה רשימה שלהן.

הדף הזה מיועד למומחי רשת שרוצים להתקין ציוד רשת, להגדיר אותו ולתת לו תמיכה. מידע נוסף על תפקידים נפוצים ומשימות לדוגמה שאנחנו מתייחסים אליהם בתוכן זמין במאמר תפקידים נפוצים של משתמשים ומשימות ב-GKE. Google Cloud

קבוצות אבטחה לרשת (NSG) מנוהלות

‫GKE ב-Azure מנהל את קבוצות האבטחה ברשת (NSG) שמצורפות לכרטיס ממשק הרשת (NIC) של כל מכונה וירטואלית (VM). כדי לשלוט בתנועת הרשת בצורה טובה יותר, אפשר להוסיף עוד קבוצות אבטחה לרשת (NSG) לרשתות המשנה.

‫GKE ב-Azure מנהל באופן אוטומטי את כללי NSG הנדרשים. הוא מוסיף כללי NSG חסרים ומסיר כללים שכבר לא נחוצים. בנוסף, GKE on Azure משנה כללים על סמך הגדרת השירות של Kubernetes. לדוגמה, כשמוסיפים שירות Kubernetes מסוג LoadBalancer, ‏ GKE ב-Azure מוסיף את כללי NSG המתאימים.

עדיפויות של כללים

העדיפויות של כללי Azure NSG נעות בין 100 ל-4,096. ככל שמספר העדיפות נמוך יותר, כך העדיפות גבוהה יותר.

כברירת מחדל, GKE on Azure מנהל רק כללי NSG עם עדיפות של 500 ומעלה. לכן, אם אתם צריכים להטמיע כלל ספציפי או ליצור כללים נוספים, אתם יכולים להשתמש בקבוצות אבטחה ברשת עם עדיפות בין 100 ל-499.

מערכת Azure מעבדת את הכללים לפי הסדר, החל ממספר העדיפות הנמוך ביותר ועד למספר הגבוה ביותר. כשיוצרים כלל חדש, תמיד צריך לבחור עדיפות לכלל בטווח 100 עד 499 כדי למנוע התנגשות עם כללים קיימים של Anthos NSG.

קבוצות אבטחת אפליקציות

‫GKE on Azure יוצר שתי קבוצות אבטחה של אפליקציות (ASG) שחלות על כרטיסי ה-NIC הווירטואליים של מישורי הבקרה וצמתי העובדים. ‫GKE on Azure מעדכן את קבוצות קנה המידה באופן אוטומטי – לדוגמה, כשמוסיפים מאגר צמתים חדש לאשכול. אפשר להשתמש בקבוצות האבטחה האלה כשיוצרים כללים של NSG.

אפשר לקבל את מזהי Azure Resource Manager ‏ (ARM) של NSG ו-ASG של מישור הבקרה מהפלט של gcloud container azure clusters describe.

לדוגמה, כדי לאפשר חיבורי SSH למכונות הווירטואליות של מישור הבקרה, מריצים את הפקודה az network nsg rule create כדי ליצור NSG שמפנה אל ASG של מישור הבקרה:

NSG_NAME=$(basename $(gcloud container azure clusters describe \
  CLUSTER_NAME --location=GOOGLE_CLOUD_LOCATION \
  --format 'value(managedResources.networkSecurityGroupId)'))

ASG_CP_NAME=$(basename $(gcloud container azure clusters describe \
  CLUSTER_NAME --location=GOOGLE_CLOUD_LOCATION \
  --format 'value(managedResources.controlPlaneApplicationSecurityGroupId)'))

az network nsg rule create \
  --name AllowSshToControlPlane \
  --nsg-name "${NSG_NAME}" \
  --priority 100 \
  --resource-group "CLUSTER_RESOURCE_GROUP" \
  --access Allow \
  --protocol Tcp \
  --destination-port-ranges 22 \
  --destination-asgs "${ASG_CP_NAME}"

מחליפים את מה שכתוב בשדות הבאים:

  • CLUSTER_NAME: השם של האשכול
  • GOOGLE_CLOUD_LOCATION: Google Cloud המיקום שבו מתנהל האשכול
  • CLUSTER_RESOURCE_GROUP: השם של קבוצת משאבי Azure שמכילה את האשכול

למידע נוסף על יצירת כלל חדש, אפשר לעיין בהליך שמתואר במאמר בנושא יצירת כלל NSG ב-Azure.

כללי ברירת המחדל של NSG

כשמגדירים GKE ב-Azure, נוצרים הכללים הבאים של NSG ברשת הווירטואלית של Azure.

עדיפות יציאות פרוטוקול מקור יעד פעולה מטרה
1000 2380, 2381 TCP כרטיסי רשת (NIC) של מישור הבקרה כרטיסי רשת (NIC) של מישור הבקרה אישור תקשורת etcd במישור הבקרה
1001 443, 8132 TCP הכול כרטיסי רשת (NIC) של מישור הבקרה אישור אישור גישה ל-Kubernetes API
1002 10250 TCP כרטיסי רשת (NIC) של מישור הבקרה כרטיסי NIC במאגר הצמתים אישור תקשורת בין מישור הבקרה לצומת
1003 10250, 10255 TCP כרטיסי NIC במאגר הצמתים כרטיסי NIC במאגר הצמתים אישור תקשורת בין צמתים
1004 6081 UDP כרטיסי NIC במאגר הצמתים כרטיסי NIC במאגר הצמתים אישור תקשורת CNI מצומת לצומת
1005 הכול הכול מאזן עומסים של Azure הכול אישור מתן הרשאה לתנועה נכנסת למאזן העומסים (LB)
4096 הכול הכול הכול הכול דחייה דחיית כל החיבורים הנכנסים שלא מכוסים על ידי כלל אחר