דוגמאות למדיניות חומת אש היררכית

בדף הזה מוצגות דוגמאות למדיניות חומת אש היררכית. הדוגמאות האלה עוזרות להבין איך פועלת מדיניות חומת אש היררכית ואיך אפשר להשתמש בה כדי לספק אבטחה עקבית בהיררכיית המשאבים שלכם. Cloud de Confiance by S3NS כדי להבין את הדוגמאות האלה, מומלץ לקרוא על מושגים שקשורים למדיניות חומת אש היררכית.

דוגמה 1: מתן גישה לכל המכונות הווירטואליות לכלי לבדיקת קישוריות

בדוגמה הזו מוסבר איך להגדיר כלל חומת אש ברמת הארגון ולאפשר לכלי לבדיקת תקינות גישה לכל המכונות הווירטואליות. בודק הוא תוכנית מיוחדת שבודקת באופן אוטומטי את מכונות ה-VM כדי לקבוע את התוכן או את ההגדרה שלהן.

תרחיש

אתם אדמינים של אבטחה שצריכים לוודא שכלי סריקת האבטחה יכול להתחבר לכל מכונות ה-VM. הכלי שולח בדיקות מכתובת ה-IP 10.100.0.1 ליציאת היעד 123. צריך לוודא שאף אדמין של הרשת או של האבטחה לא יחסום בטעות את החיבור הזה בשום רמה בארגון.

התרשים הבא מציג את ההגדרה של התרחיש הזה:

מדיניות חומת אש שמאפשרת בדיקות בכל מכונות ה-VM
מדיניות חומת אש שמאפשרת בדיקות בכל המכונות הווירטואליות

איך המדיניות חלה על מכונות וירטואליות

אחרי הערכת כל הכללים, מדיניות חומת האש חלה על מכונות וירטואליות באופן הבא:

חיבורי כניסה

  • מדיניות הארגון מאפשרת חיבורי כניסה מכתובת ה-IP של המקור 10.100.0.1 ליציאת היעד 123. אם מדיניות הארגון תואמת, היא מאפשרת את חיבורי הבדיקה ומפסיקה את הערכת הכללים האחרים בהיררכיה.

  • אם החיבורים הנכנסים לא מגיעים מכתובת ה-IP של המקור 10.100.0.1 או מיציאת היעד 123, לא מתבצעת התאמה. לכן, חל כלל ברירת המחדל של תעבורת נכנסת בכללי חומת האש של הענן הווירטואלי הפרטי (VPC), והחיבור נדחה.

חיבורי יציאה

  • לא מתבצעת התאמה בכללים שהוגדרו בהיררכיה. לכן, כלל ברירת המחדל של תעבורת נתונים יוצאת (egress) בכללי חומת האש של VPC חל ומאפשר חיבורים של תעבורת נתונים יוצאת. אם הגדרתם כללי חומת אש אחרים שחוסמים תעבורת נתונים יוצאת (egress), חשוב לדעת שחומת האש היא stateful ומאפשרת תעבורת נתונים חוזרת לחיבורים קיימים. Cloud de Confiance by S3NS

    אם הגדרתם כללי חומת אש לתעבורת נתונים יוצאת שחוסמים תעבורת נתונים יוצאת, כולל כלל מרומז לתעבורת נתונים יוצאת deny-all, וההגדרה שלכם כוללת פרוטוקולים שלא משתמשים במעקב אחר חיבורים, אתם צריכים להגדיר במפורש כללי חומת אש שיאפשרו תעבורת נתונים חוזרת יוצאת.

איך מגדירים

כדי ליצור כלל מדיניות ולשייך אותו לארגון, מבצעים את הפעולות הבאות:

  1. יוצרים מדיניות חומת אש שתכיל את הכלל:

    gcloud compute firewall-policies create \
         --organization ORG_ID \
         --short-name SHORT_NAME \
         --description DESCRIPTION
    
  2. מוסיפים את הכלל למדיניות חומת האש:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description DESCRIPTION \
        --layer4-configs=tcp:123 \
        --firewall-policy SHORT_NAME \
        --organization ORG_ID \
        --src-ip-ranges=10.100.0.1/32
    
  3. משייכים את מדיניות חומת האש לארגון:

    gcloud compute firewall-policies associations create \
        --firewall-policy SHORT_NAME\
        --organization ORG_ID
    

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

    • ORG_ID: מזהה הארגון

      מציינים מזהה ארגון כדי ליצור מדיניות שההורה שלה הוא ארגון. אפשר לשייך את המדיניות לארגון או לתיקייה בתוך הארגון.

    • SHORT_NAME: שם למדיניות

      למדיניות שנוצרת באמצעות Google Cloud CLI יש שני שמות: שם שהמערכת יוצרת ושם קצר שאתם מספקים. כשמשתמשים ב-CLI של gcloud כדי לעדכן מדיניות קיימת, אפשר לציין את השם שנוצר על ידי המערכת או את השם המקוצר ואת מזהה הארגון. כשמשתמשים ב-API כדי לעדכן את המדיניות, צריך לציין את השם שנוצר על ידי המערכת.

    • DESCRIPTION: תיאור מדיניות חומת האש

דוגמה 2: דחיית כל החיבורים החיצוניים למעט חיבורים ליציאות מסוימות

בדוגמה הזו מוסבר איך מגדירים כללי מדיניות כדי לדחות חיבורים נכנסים מיציאות ספציפיות.

תרחיש

אתם אדמינים של אבטחה שרוצים לחסום את כל תעבורת האינטרנט הנכנסת כדי לאבטח את הארגון, למעט שירותים ספציפיים כמו תעבורת אינטרנט (יציאות 80 ו-443) וגישת SSH (יציאה 22). אתם צריכים לחסום את כל תעבורת האינטרנט הנכנסת ביציאות אחרות מלבד 80,‏ 443 או 22, ללא קשר לכללים קיימים של רשת VPC. לגבי חיבורים ביציאות המותרות האלה, אתם מעניקים למנהל האבטחה של ה-VPC את היכולת להחליט מה יקרה ברשת ה-VPC הספציפית שלו.

התרשים הבא מציג את ההגדרה של התרחיש הזה:

דחיית כל החיבורים החיצוניים חוץ מיציאות יעד מסוימות
חסימת כל החיבורים החיצוניים מלבד חיבורים ליעדים מסוימים

איך המדיניות חלה על מכונות וירטואליות

אחרי הערכת הכללים בהיררכיה, מדיניות חומת האש של מכונת ה-VM חלה באופן הבא:

חיבורי כניסה

  • חיבורי Ingress מ-10.0.0.0/8 תואמים לכלל ברמת הארגון עם העדיפות הכי גבוהה delegate-internal-traffic. החיבורים האלה עוקפים את שאר הכללים במדיניות הארגון לצורך הערכה מול כללי חומת האש ברמת רשת ה-VPC. כלל חומת האש ב-VPC מאפשר חיבורים מ-10.2.0.0/16 ומעריך את שאר החיבורים לפי כלל הכניסה המשתמע, deny.

  • חיבורים נכנסים ממקור מחוץ לטווח כתובות ה-IP‏ 10.0.0.0/8 ביציאות היעד 22, 80 ו-443 מועברים לרמה הבאה. ברמה הזו, הכללים מתירים תנועה ביציאות 80 ו-443, אבל חוסמים את יציאה 22.

  • כל החיבורים האחרים חסומים.

חיבורי יציאה

  • לא מתבצעת התאמה בכללים שהוגדרו בהיררכיה. לכן, כלל ברירת המחדל של תעבורת נתונים יוצאת (egress) בכללי חומת האש של VPC חל ומאפשר חיבורים של תעבורת נתונים יוצאת. אם הגדרתם כללי חומת אש אחרים שחוסמים תעבורת נתונים יוצאת (egress), חשוב לדעת שחומת האש היא stateful ומאפשרת תעבורת נתונים חוזרת לחיבורים קיימים. Cloud de Confiance by S3NS

    אם הגדרתם כללי חומת אש לתעבורת נתונים יוצאת שחוסמים תעבורת נתונים יוצאת, כולל כלל מרומז לתעבורת נתונים יוצאת deny-all, וההגדרה שלכם כוללת פרוטוקולים שלא משתמשים במעקב אחר חיבורים, אתם צריכים להגדיר במפורש כללי חומת אש שיאפשרו תעבורת נתונים חוזרת יוצאת.

איך מגדירים

כדי ליצור כלל מדיניות ולאפשר חיבורי TCP 80 או 443 חיצוניים, מבצעים את הפעולות הבאות:

  1. יוצרים מדיניות חומת אש שתכיל את הכלל:

    gcloud compute firewall-policies create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --description DESCRIPTION
    
  2. מוסיפים כלל להקצאת חיבורים פנימיים לבעלים של הפרויקט:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description DESCRIPTION \
        --organization ORG_ID \
        --firewall-policy SHORT_NAME \
        --src-ip-ranges=10.0.0.0/8
    
  3. מוסיפים כלל להקצאת כללי חיבורים חיצוניים ליציאות 80או 443 או 22 לבעלים של הפרויקט:

    gcloud compute firewall-policies rules create 2000 \
        --action=goto_next \
        --description DESCRIPTION \
        --src-ip-ranges=0.0.0.0/0 \
        --layer4-configs=tcp:80,tcp:443,tcp:22 \
        --organization ORG_ID \
        --firewall-policy SHORT_NAME
    
  4. מוסיפים כלל לדחיית כל החיבורים החיצוניים האחרים:

    gcloud compute firewall-policies rules create 3000 \
        --action=deny \
        --description DESCRIPTION \
        --organization ORG_ID \
        --firewall-policy SHORT_NAME \
        --src-ip-ranges=0.0.0.0/0
    
  5. משייכים את מדיניות חומת האש לארגון:

    gcloud compute firewall-policies associations create \
        --organization ORG_ID \
        --firewall-policy SHORT_NAME
    
  6. בפרויקט, מוסיפים כלל חומת אש שמאפשר חיבורים פנימיים מתת-הרשת שצוינה:

    gcloud compute firewall-rules create allow-internal-traffic \
        --action=allow \
        --priority=1000 \
        --source-ranges=10.2.0.0/16
    
  7. בפרויקט, מוסיפים כלל של חומת האש שמאפשר חיבורי TCP חיצוניים 80 או 443:

    gcloud compute firewall-rules create allow-external-traffic \
        --action=allow \
        --priority=2000 \
        --rules=tcp:80,tcp:443
    

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

    • ORG_ID: מזהה הארגון

      מציינים מזהה ארגון כדי ליצור מדיניות שההורה שלה הוא ארגון. אפשר לשייך את המדיניות לארגון או לתיקייה בתוך הארגון.

    • SHORT_NAME: שם למדיניות

      למדיניות שנוצרת באמצעות Google Cloud CLI יש שני שמות: שם שהמערכת יוצרת ושם קצר שאתם מספקים. כשמשתמשים ב-CLI של gcloud כדי לעדכן מדיניות קיימת, אפשר לציין את השם שנוצר על ידי המערכת או את השם המקוצר ואת מזהה הארגון. כשמשתמשים ב-API כדי לעדכן את המדיניות, צריך לציין את השם שנוצר על ידי המערכת.

    • DESCRIPTION: תיאור מדיניות חומת האש

דוגמה 3: דחיית חיבורים יוצאים, למעט חיבורים מרשת VPC ספציפית

בדוגמה הזו מוסבר איך להגדיר מדיניות כדי לדחות חיבורי תעבורת נתונים יוצאת (egress) מרשת VPC ספציפית.

תרחיש

הארגון שלכם מטפל במידע רגיש וצריך להגביל את המידע שיוצא מהרשת שלו. כברירת מחדל, הארגון שלכם מונע מכל מכונות ה-VM לשלוח נתונים לאינטרנט. עם זאת, פרויקט ברשת ה-VPC של myvpc צריך לתקשר בצורה מאובטחת עם שרת של שותף מהימן בכתובת 203.0.113.1. כדי לתמוך בזה, אתם צריכים להטמיע את הפעולות הבאות:

  • התרה של חיבורים יוצאים בלבד מ-myvpc אל 203.0.113.1.
  • העברת ניהול הפרטים הספציפיים של התקשורת עבור החיבור הזה לאדמין האבטחה של myvpc.
  • חשוב לוודא שההגדרה הזו מונעת דליפות נתונים לא מכוונות מחלקים אחרים בארגון.

מנהל האבטחה של הארגון יכול לעשות זאת על ידי חסימת חיבורי תעבורת נתונים יוצאת (egress) בכל רשתות ה-VPC האחרות, למעט חיבורים שמקורם ב-myvpc. האדמין מייפה את כוחו של אדמין האבטחה myvpc באופן ספציפי כדי לאפשר יציאה לשרת ציבורי 203.0.113.1.

התרשים הבא מציג את ההגדרה של התרחיש הזה:

דחיית חיבורים יוצאים, למעט חיבורים מרשת ספציפית
חסימת חיבורים יוצאים (egress) למעט חיבורים מרשת ספציפית

איך המדיניות חלה על מכונות וירטואליות

אחרי הערכת הכללים בהיררכיה, מדיניות חומת האש של מכונת ה-VM חלה באופן הבא:

חיבורי כניסה

  • אין התאמה בין הכללים שהוגדרו בהיררכיה. לכן, חל הכלל שמוגדר כברירת מחדל לחיבורים נכנסים בכללי חומת האש ב-VPC, והוא מונע חיבורים נכנסים.

חיבורי יציאה

  • חיבורי יציאה שמיועדים ל-203.0.113.1 מותרים כי הם תואמים לכלל delegate-egress-my-vpc ועוקפים את שאר הכללים במדיניות הארגון. כל שאר החיבורים היוצאים נדחים.

  • החיבורים היוצאים נבדקים מול כללי חומת האש שהוגדרו ב-myvpc. כלל ברירת המחדל מאפשר את חיבורי היציאה. הכלל block-egress-traffic-sepc-ports במדיניות ברמת הארגון דוחה את שאר החיבורים.

איך מגדירים

כדי ליצור כלל מדיניות ולהקצות לו חיבורים מסוימים ליציאה, פועלים לפי השלבים הבאים:

  1. יוצרים מדיניות חומת אש שתכיל את הכלל:

    gcloud compute firewall-policies create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --description DESCRIPTION
    
  2. מוסיפים כלל להקצאת חיבורים מסוימים ליציאה:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description DESCRIPTION \
        --dest-ip-ranges=203.0.113.1/32
        --direction=egress
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --target-resources=projects/PROJECT_ID/networks/myvpc
    
  3. מוסיפים כלל לדחיית כל חיבורי היציאה האחרים:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description DESCRIPTION \
        --direction=egress \
        --dest-ip-ranges=0.0.0.0/0 \
        --organization ORG_ID \
        --short-name SHORT_NAME
    
  4. משייכים את מדיניות חומת האש לארגון:

    gcloud compute firewall-policies associations create \
        --organization ORG_ID \
        --short-name SHORT_NAME
    

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

  • ORG_ID: מזהה הארגון

    Specify an organization ID to create a policy whose parent is an
    organization. The policy can be associated with the organization or
    a folder within the organization.
    
  • SHORT_NAME: שם למדיניות

    A policy created by using the Google Cloud CLI has two
    names: a system-generated name and a short name provided by you. When
    using the gcloud CLI to update an existing policy, you can
    provide either the system-generated name or the short name and the
    organization ID. When using the API to update the policy, you must
    provide the system-generated name.
    
  • DESCRIPTION: תיאור מדיניות חומת האש

דוגמה 4: הגדרת כללים ברמת הארגון וכללים ספציפיים לתיקיות

בדוגמה הזו מוסבר איך לחסום חיבורי כניסה לכל מכונות ה-VM בארגון, למעט חיבורים מטווח כתובות IP.

תרחיש

הארגון שלכם כולל כמה תיקיות, כמו Folder1 ו-Folder2. צוות האבטחה של הארגון מגדיר מדיניות ברמת הארגון כדי לאפשר תעבורת נתונים נכנסת (ingress) רק מטווח כתובות ה-IP‏ 203.0.113.0/24 בכל התיקיות.

אחרי שהתנועה נכנסת לרשת, לתיקיות שונות יש צרכים שונים:

  • Folder1: הצוות הזה מפעיל רק אפליקציות אינטרנט, ולכן אדמין האבטחה שלו מאפשר תנועה מהשותף המהימן רק ביציאות האינטרנט 80 ו-443. המדיניות חוסמת את כל היציאות האחרות כדי לספק אבטחה נוספת.

  • Folder2: הצוות הזה משתמש בכלי שסורק את המערכות שלו. המקור של הכלי הוא כתובת ה-IP 203.0.113.1 בטווח של השותף המהימן. האדמין שלהם מוודא שכלי הסריקה הזה יכול להגיע לכל יציאה במכונות הווירטואליות שלהם. לכל שאר התנועה מהשותף המהימן, מנהלי מערכת ברמת הפרויקט קובעים את הכללים. לאחר מכן הם פותחים את הפורטים 80, 443 ו-22 עבור האפליקציות הספציפיות שלהם.

בדוגמה הזו, אדמין אבטחה חוסם חיבורי כניסה לכל המכונות הווירטואליות בארגון, מלבד אלה שנמצאות בטווח כתובות ה-IP המותר 203.0.113.0/24. האדמין מעביר את ההחלטות הנוספות לגבי חיבורים מ-203.0.113.0/24 לאדמינים של אבטחה ברמת התיקייה.

התרשים הבא מציג את ההגדרה של התרחיש הזה:

כללים ברמת הארגון וכללים ספציפיים לתיקיות
כללים שחלים על כל הארגון וכללים שחלים על תיקיות ספציפיות

איך המדיניות חלה על מכונות וירטואליות

אחרי הערכת הכללים בהיררכיה, מדיניות חומת האש של מכונת ה-VM חלה באופן הבא:

למכונות וירטואליות ברשת VPC‏ my-vpc

  • כל החיבורים הנכנסים מ-203.0.113.0/24 ליציאות TCP של היעד 80 ו-443 מותרים. כל חיבורי הכניסה האחרים נדחים.

  • כלל חומת האש ב-VPC מאפשר את כל החיבורים היוצאים כשאין כללים תואמים במדיניות חומת האש ברמה גבוהה יותר.

למכונות וירטואליות ברשת VPC‏ vpc2

  • המדיניות מאפשרת את כל חיבורי הכניסה מ-203.0.113.1. לחיבורים נכנסים ממקורות 203.0.113.0/24, למעט 203.0.113.1, המדיניות מאפשרת תנועה רק ליציאות 80, 443 ו-22. המדיניות דוחה את כל שאר החיבורים הנכנסים.

  • מכיוון שאין כללים תואמים במדיניות חומת האש ברמה גבוהה יותר, כלל חומת האש ב-VPC מאפשר את כל החיבורים היוצאים.

איך מגדירים

כדי להגדיר כללים ברמת הארגון וכללים ספציפיים לתיקיות:

  1. יצירת מדיניות חומת אש עבור Org_A:

    gcloud compute firewall-policies create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --description DESCRIPTION
    
  2. מוסיפים כלל להענקת הרשאת כניסה מ-203.0.113.0/24 לבעלים של הפרויקט:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description DESCRIPTION \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --src-ip-ranges=203.0.113.0/24
    
  3. מוסיפים כלל לדחיית כל החיבורים החיצוניים האחרים:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description DESCRIPTION \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --src-ip-ranges=0.0.0.0/0
    
  4. משייכים את מדיניות חומת האש לארגון:

    gcloud compute firewall-policies associations create \
        --organization ORG_ID \
        --short-name SHORT_NAME
    
  5. יוצרים מדיניות חומת אש שתכיל את הכללים עבור Folder1:

    gcloud compute firewall-policies create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --description DESCRIPTION
    
  6. מוסיפים כלל שמאפשר את כל תעבורת הנתונים הנכנסת מסוג HTTP(S):

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description DESCRIPTION \
        --layer4-configs=tcp:80,tcp:443 \
        --organization ORG_ID \
        --short-name SHORT_NAME
    
  7. מוסיפים כלל לדחיית תעבורה נכנסת בכל היציאות או הפרוטוקולים האחרים:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description DESCRIPTION \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --src-ip-ranges=0.0.0.0/0
  8. משייכים את מדיניות חומת האש ל-Folder1:

    gcloud compute firewall-policies associations create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --folder FOLDER_ID
    
  9. יוצרים מדיניות חומת אש שתכיל את הכללים עבור Folder2:

    gcloud compute firewall-policies create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --description DESCRIPTION
    
  10. מוסיפים כלל כדי לאפשר תעבורת נתונים נכנסת מ-203.0.113.1:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description DESCRIPTION \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --src-ip-ranges=203.0.113.1/32
    
  11. משייכים את מדיניות חומת האש ל-Folder2:

    gcloud compute firewall-policies associations create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --folder FOLDER_ID
    
  12. מוסיפים כלל חומת אש שמאפשר תעבורת נתונים נכנסת מסוג HTTP(S):

    gcloud compute firewall-rules create allow-internal-traffic \
        --network=vpc2 \
        --action=allow \
        --rules=tcp:80,tcp:443,tcp:22
    

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

  • ORG_ID: מזהה הארגון

    Specify an organization ID to create a policy whose parent is an
    organization. The policy can be associated with the organization or
    a folder within the organization.
    
  • SHORT_NAME: שם למדיניות

    A policy created by using the Google Cloud CLI has two
    names: a system-generated name and a short name provided by you. When
    using the gcloud CLI to update an existing policy, you can
    provide either the system-generated name or the short name and the
    organization ID. When using the API to update the policy, you must
    provide the system-generated name.
    
  • DESCRIPTION: תיאור מדיניות חומת האש

  • FOLDER_ID: מזהה התיקייה

המאמרים הבאים