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

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

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

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

תרחיש

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

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

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

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

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

חיבורים של תעבורת נתונים נכנסת (ingress)

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

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

חיבורי יציאה

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

    אם הגדרתם כללי חומת אש לתעבורת נתונים יוצאת שחוסמים תעבורת נתונים יוצאת, כולל כלל חומת אש מרומז לתעבורת נתונים יוצאת 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 הספציפית שלו.

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

דחיית כל החיבורים החיצוניים מלבד יציאות יעד מסוימות
Deny all external connections except certain destination ports

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

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

חיבורים של תעבורת נתונים נכנסת (ingress)

  • חיבורי 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.

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

חיבורי יציאה

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

    אם הגדרתם כללי חומת אש לתעבורת נתונים יוצאת שחוסמים תעבורת נתונים יוצאת, כולל כלל חומת אש מרומז לתעבורת נתונים יוצאת 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 ספציפית

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

תרחיש

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

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

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

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

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

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

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

חיבורים של תעבורת נתונים נכנסת (ingress)

  • אין התאמה בין הכללים שהוגדרו בהיררכיה. לכן, חל כלל ברירת המחדל של תנועה נכנסת בכללי חומת האש ב-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: מזהה התיקייה

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