שימוש ברשימות של כתובות URL ליצירת כללי מדיניות

בדף הזה מוסבר איך להשתמש ברשימות של כתובות URL כדי ליצור ולנהל מדיניות גישה מפורטת לתעבורת נתונים יוצאת (egress) באינטרנט במופע של Secure Web Proxy. במקום ליצור כללים נפרדים לכל אתר, רשימות של כתובות URL מאפשרות להגדיר אוסף מרכזי של דומיינים, שמות מארחים ותבניות ספציפיות של כתובות URL שאפשר להשתמש בהן שוב.

אלה כמה מהיתרונות העיקריים של שימוש ברשימות של כתובות URL:

  • ניהול מדיניות פשוט יותר: אפשר להחיל קבוצה גדולה של כללי allow או deny באמצעות הפניה אחת במדיניות האבטחה.

  • אכיפת שליטה מדויקת: אפשר להשתמש בתחביר ספציפי כדי להתאים דומיינים שלמים, תת-דומיינים או נתיבים מדויקים של כתובות URL. כך תוכלו לוודא שלעומסי העבודה שלכם תהיה גישה רק ליעדים מורשים.

  • גישה מאובטחת לאינטרנט: אתם יכולים לאבטח ולבדוק ביעילות את הגישה לאינטרנט בסביבת Google Cloud העבודה שלכם.

לפני שמתחילים

  • משלימים את השלבים להגדרה הראשונית.

  • מוודאים שמותקנת אצלכם גרסה 406.0.0 או גרסה מתקדמת יותר של Google Cloud CLI:

    gcloud version | head -n1
    

    אם מותקנת אצלכם גרסה קודמת של ה-CLI של gcloud, צריך לעדכן את הגרסה:

    gcloud components update --version=406.0.0
    

יצירת מופע של Secure Web Proxy עם מדיניות ריקה

כדי ליצור מופע של Secure Web Proxy, צריך קודם ליצור מדיניות אבטחה ריקה ואז ליצור פרוקסי אינטרנט שמשתמש במדיניות הזו.

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

המסוף

  1. נכנסים לדף SWP Policies במסוף Google Cloud .

    מעבר אל מדיניות SWP

  2. לוחצים על יצירת מדיניות.

  3. בשדה Name, מזינים שם למדיניות, כמו myswppolicy.

  4. בשדה Description (תיאור) מזינים תיאור למדיניות, למשל My new swp policy.

  5. בקטע אזורים, בוחרים את האזור שבו רוצים ליצור את המדיניות, כמו us-central1.

  6. לוחצים על יצירה.

Cloud Shell

  1. משתמשים בעורך הטקסט המועדף כדי ליצור קובץ policy.yaml.

  2. מוסיפים את הטקסט הבא לקובץ policy.yaml שיצרתם:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

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

    • PROJECT_NAME: שם הפרויקט

    • REGION: האזור שבו נוצרה המדיניות, למשל us-central1

    • POLICY_NAME: שם המדיניות

    • POLICY_DESCRIPTION: תיאור המדיניות

  3. מייבאים את מדיניות האבטחה באמצעות הפקודה gcloud network-security gateway-security-policies import:

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

יצירת שרת proxy לאינטרנט

המסוף

  1. נכנסים לדף Web Proxies במסוף Google Cloud .

    מעבר ל-Web Proxies

  2. לוחצים על יצירת שרת proxy מאובטח לאינטרנט.

  3. בשדה Name, מזינים שם לשרת ה-proxy לאינטרנט, למשל myswp.

  4. בשדה Description (תיאור) מזינים תיאור לשרת ה-proxy לאינטרנט, כמו My new swp.

  5. בקטע מצב ניתוב, בוחרים באחת מהאפשרויות הבאות:

    • מפורש: פריסת מופע Secure Web Proxy במצב שרת proxy מפורש.
    • הצעד הבא: פריסת מופע Secure Web Proxy במצב 'הצעד הבא'.
  6. בקטע Regions (אזורים), בוחרים את האזור שבו רוצים ליצור את שרת ה-proxy לאינטרנט, כמו us-central1.

  7. בקטע רשת, בוחרים את הרשת שבה רוצים ליצור את שרת ה-proxy לאינטרנט.

  8. בשדה Subnetwork (תת-רשת), בוחרים את תת-הרשת של ה-VPC שיצרתם במהלך ההגדרה הראשונית.

  9. אופציונלי: בשדה כתובת ה-IP של שרת ה-proxy לאינטרנט, מזינים את כתובת ה-IP של Secure Web Proxy.

    אפשר להזין כתובת IP מתוך טווח כתובות ה-IP של Secure Web Proxy שנמצאות ברשת המשנה שיצרתם בשלב הקודם. אם לא תזינו את כתובת ה-IP, המופע של Secure Web Proxy יבחר באופן אוטומטי כתובת IP מתוך תת-הרשת שנבחרה.

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

  11. בקטע מדיניות, בוחרים את המדיניות שיצרתם כדי לשייך את שרת ה-proxy לאינטרנט.

  12. לוחצים על יצירה.

Cloud Shell

  1. משתמשים בעורך הטקסט המועדף כדי ליצור קובץ gateway.yaml.

  2. מוסיפים את הטקסט הבא לקובץ gateway.yaml:

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK
    routingMode: ROUTING_MODE
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

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

    • GATEWAY_NAME: השם של מופע Secure Web Proxy

    • GATEWAY_PORT_NUMBERS: רשימה של מספרי יציאות לשער הזה, למשל [80,443]

    • CERTIFICATE_URLS: רשימה של כתובות URL של אישורי SSL

    • SUBNETWORK: רשת משנה של VPC שיצרתם במהלך ההגדרה הראשונית

    • ROUTING_MODE: מציינים את מצב הניתוב הנדרש של שרת ה-Proxy לאינטרנט:

      • EXPLICIT_ROUTING_MODE: פריסת מופע Secure Web Proxy במצב שרת proxy מפורש
      • NEXT_HOP_ROUTING_MODE: פריסת מופע Secure Web Proxy במצב next hop
    • GATEWAY_IP_ADDRESS: רשימה אופציונלית של כתובות IP של מופעי Secure Web Proxy ברשתות המשנה של ה-proxy שיצרתם קודם בשלבי ההגדרה הראשונית

      אם אתם בוחרים לא לפרט כתובות IP, אל תמלאו את השדה כדי לאפשר לשרת ה-proxy לבחור כתובת IP בשבילכם.

  3. יוצרים את מופע Secure Web Proxy באמצעות הפקודה gcloud network-services gateways import:

    gcloud network-services gateways import GATEWAY_NAME \
        --source=gateway.yaml \
        --location=REGION
    

בדיקת הקישוריות

כדי לבדוק את הקישוריות, משתמשים בפקודה curl מכל מופע של מכונה וירטואלית (VM) ברשת הענן הווירטואלי הפרטי (VPC):

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure

אם הכול פועל בצורה תקינה, מופע Secure Web Proxy מחזיר קוד סטטוס 403 Forbidden. השגיאה הזו מאשרת את הפרטים הבאים:

  • הפריסה של מופע Secure Web Proxy הושלמה בהצלחה והוא מקבל תנועה באופן פעיל.

  • מדיניות Secure Web Proxy אוכפת בצורה נכונה את מצב האבטחה שמוגדר כברירת מחדל, שבו כל התנועה נדחית עד שמגדירים כללי allow ספציפיים בקטעים הבאים.

יצירה והגדרה של רשימת כתובות URL

המסוף

  1. נכנסים לדף URL Lists במסוף Google Cloud .

    מעבר לרשימות של כתובות URL

  2. לוחצים על יצירת רשימת כתובות אתרים. ייפתח הדף Create URL list.

  3. בשדה שם, מזינים שם לרשימת כתובות ה-URL, כמו example-org-allowed-list.

  4. בשדה תיאור, מזינים תיאור לרשימת כתובות ה-URL, כמו My new URL list.

  5. בקטע אזורים, בוחרים את האזור שבו רוצים ליצור את רשימת כתובות ה-URL, למשל us-central1.

  6. כדי להוסיף את רשימת המארחים, כתובות ה-URL או התבניות להתאמה, בשדה רשימת כתובות URL, מזינים את הפרטים או לוחצים על העלאת רשימה כדי להעלות רשימה מותאמת אישית של כתובות URL. מידע נוסף זמין במאמר הפניה לתחביר של UrlList.

  7. לוחצים על יצירה.

Cloud Shell

  1. משתמשים בעורך הטקסט המועדף כדי ליצור את הקובץ url_list.yaml.

  2. מוסיפים את הטקסט הבא לקובץ url_list.yaml:

      name: projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME
      values: URL_LIST
    

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

    • PROJECT_ID: המזהה הייחודי של פרויקט Google Cloud

    • REGION: האזור שבו נוצרה רשימת כתובות ה-URL, למשל us-central1

    • URL_LIST_NAME: השם של רשימת כתובות ה-URL

    • URL_LIST: רשימה של מארחים, כתובות URL או תבניות להתאמה

    מידע נוסף מופיע במאמר בנושא תחביר של רשימת כתובות URL.

    דוגמה לקובץ כללים של רשימת כתובות URL:

    name: projects/PROJECT_ID/locations/REGION/urlLists/example-org-allowed-list
    values:
      - www.example.com
      - about.example.com
      - "*.google.com"
      - "github.com/example-org/*"
    

    לתו הכוכבית (*) יש משמעות מיוחדת ב-YAML. צריך להוסיף מרכאות סביב כתובות URL שכוללות את התו *.

  3. מייבאים את רשימת כתובות ה-URL שיצרתם באמצעות הפקודה gcloud network-security url-lists import כדי שכלל ה-Secure Web Proxy יוכל להפנות אליה.

    gcloud network-security url-lists import URL_LIST_NAME \
        --location=REGION \
        --project=PROJECT_ID \
        --source=url_list.yaml
    

הוספת כלל של Secure Web Proxy

המסוף

  1. נכנסים לדף SWP Policies במסוף Google Cloud .

    מעבר אל מדיניות SWP

  2. לוחצים על שם המדיניות, למשל myswppolicy.

  3. לוחצים על הוספת כלל.

  4. לכל כלל, מבצעים את הפעולות הבאות:

    1. בשדה עדיפות, מזינים מספר של סדר ההערכה של הכלל. הכללים מוערכים מהעדיפות הגבוהה ביותר לנמוכה ביותר, כאשר 0 היא העדיפות הגבוהה ביותר.

    2. בשדה Name, מזינים שם לכלל, למשל allow-org-url-list.

    3. בשדה Description (תיאור), מזינים תיאור לכלל.

    4. בקטע פעולה, בוחרים באחת מהאפשרויות הבאות:

      • אישור: כדי לאשר בקשות לחיבור שתואמות לכלל.
      • Deny: כדי לדחות בקשות לחיבור שתואמות לכלל.
    5. בשדה סטטוס, בוחרים אחת מהאפשרויות הבאות לאכיפת הכלל:

      • מופעלת: כדי לאכוף את הכלל במופע Secure Web Proxy.
      • מושבת: כדי לא לאכוף את הכלל במופע של Secure Web Proxy.
    6. בקטע Session Match, מציינים את השם הייחודי של רשימת כתובות ה-URL שיצרתם בקטע הקודם. לדוגמה:

        sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME)"
      

      מידע נוסף על התחביר של SessionMatcher זמין במאמר בנושא הפניה לשפת ההתאמה של CEL.

    7. בקטע Application Match, מציינים את הקריטריונים להתאמת הבקשה.

    8. לוחצים על הוספת כלל.

Cloud Shell

  1. משתמשים בעורך הטקסט המועדף כדי ליצור קובץ rule.yaml.

  2. מוסיפים את הטקסט הבא לקובץ rule.yaml:

    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    basicProfile: ALLOW
    enabled: true
    priority: RULE_PRIORITY
    description: RULE_DESCRIPTION
    sessionMatcher: SESSION_CEL_EXPRESSION
    applicationMatcher: APPLICATION_CEL_EXPRESSION
    

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

    • PROJECT_ID: המזהה הייחודי של פרויקט Google Cloud

    • REGION: האזור שבו הכלל הזה חל

    • POLICY_NAME: השם של מדיניות אבטחה קיימת שמופעלת במופע של Secure Web Proxy

    • RULE_NAME: שם הכלל

    • PRIORITY_VALUE: העדיפות של הכלל. מספר נמוך יותר מייצג עדיפות גבוהה יותר

    • RULE_DESCRIPTION: תיאור הכלל

    • SESSION_CEL_EXPRESSION: ביטוי של Common Expression Language ‏ (CEL). מידע נוסף זמין במאמר הפניה לשפת ההתאמה של CEL.

    • APPLICATION_CEL_EXPRESSION: ביטוי CEL לאפליקציה

    דוגמה לקובץ כללים:

    name: projects/PROJECT_ID/locations/REGION/urlLists/allow-repos
    basicProfile: ALLOW
    enabled: true
    priority: 100
    description: Allow access to our list of known code repos.
    sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"
    

  3. מייבאים את הכלל שיצרתם באמצעות הפקודה gcloud network-security gateway-security-policies rules import.

        gcloud network-security gateway-security-policies rules import RULE_NAME \
          --location=REGION \
          --project=PROJECT_ID \
          --source=rule.yaml \
          --gateway-security-policy=POLICY_NAME
    

בדיקת הגדרת המדיניות

אתם יכולים לבדוק שוב את הקישוריות כדי לוודא שכללי הגישה שמבוססים על רשימת כתובות ה-URL מוגדרים בצורה נכונה ומאוכפים באופן פעיל על ידי מופע Secure Web Proxy.

כדי לבדוק את הקישוריות, משתמשים בפקודה curl הבאה:

curl -x https://SWP_IP_ADDRESS:SWP_PORT_NUMBER HTTP_TEST_ADDRESS
--proxy-insecure

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

  • SWP_IP_ADDRESS: כתובת ה-IP של מופע Secure Web Proxy

  • SWP_PORT_NUMBER: מספר היציאה של שרת ה-proxy לאינטרנט, למשל 443

  • HTTP_TEST_ADDRESS: כתובת לבדיקה, למשל https://www.example.com. היא תואמת לרשומה של מארח או כתובת URL ב-url_list.

אם הכל פועל בצורה תקינה, תקבלו תגובה 200 OK. התגובה הזו מאשרת שהתנועה היוצאת לכתובת URL שמופיעה ברשימת כתובות ה-URL שלכם ומקושרת לכלל מדיניות האבטחה, מורשית לעבור דרך מופע Secure Web Proxy.

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