בדף הזה מוסבר איך להשתמש ברשימות של כתובות URL כדי ליצור ולנהל מדיניות גישה מפורטת לתעבורת האינטרנט היוצאת במופע של 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, צריך קודם ליצור מדיניות אבטחה ריקה ואז ליצור פרוקסי אינטרנט שמשתמש במדיניות.
יצירת מדיניות אבטחה ריקה
המסוף
נכנסים לדף SWP Policies במסוף Google Cloud .
לוחצים על יצירת מדיניות.
בשדה Name, מזינים שם למדיניות, למשל
myswppolicy.בשדה Description (תיאור), מזינים תיאור למדיניות, כמו
My new swp policy.בקטע אזורים, בוחרים את האזור שבו רוצים ליצור את המדיניות, כמו
us-central1.לוחצים על יצירה.
Cloud Shell
משתמשים בכלי לעריכת טקסט כדי ליצור קובץ
policy.yaml.מוסיפים את הקוד הבא לקובץ
policy.yaml:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTIONמחליפים את מה שכתוב בשדות הבאים:
PROJECT_NAME: שם הפרויקט
REGION: האזור שבו נוצרה המדיניות, למשלus-central1
POLICY_NAME: שם המדיניות
POLICY_DESCRIPTION: תיאור המדיניות
מייבאים את מדיניות האבטחה באמצעות הפקודה
gcloud network-security gateway-security-policies import:gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
יצירת שרת proxy לאינטרנט
המסוף
נכנסים לדף Web Proxies במסוף Google Cloud .
לוחצים על יצירת שרת proxy מאובטח לאינטרנט.
בשדה Name, מזינים שם לשרת ה-proxy לאינטרנט, כמו
myswp.בשדה Description (תיאור), מזינים תיאור לשרת ה-proxy לאינטרנט, כמו
My new swp.בקטע מצב ניתוב, בוחרים באחת מהאפשרויות הבאות:
- מפורש: פריסת מופע Secure Web Proxy במצב proxy מפורש.
- הצעד הבא: פריסת מופע Secure Web Proxy במצב 'הצעד הבא'.
בקטע אזורים, בוחרים את האזור שבו רוצים ליצור את שרת ה-proxy לאינטרנט, למשל
us-central1.בקטע רשת, בוחרים את הרשת שבה רוצים ליצור את שרת ה-proxy לאינטרנט.
בשדה Subnetwork (תת-רשת), בוחרים את תת-הרשת של ה-VPC שיצרתם במהלך ההגדרה הראשונית.
אופציונלי: בשדה כתובת ה-IP של שרת ה-proxy לאינטרנט, מזינים את כתובת ה-IP של שרת ה-proxy המאובטח לאינטרנט.
אפשר להזין כתובת IP מטווח כתובות ה-IP של Secure Web Proxy שנמצאות ברשת המשנה שיצרתם בשלב הקודם. אם לא תזינו את כתובת ה-IP, המופע של Secure Web Proxy יבחר באופן אוטומטי כתובת IP מתוך תת-הרשת שנבחרה.
בקטע Certificate, בוחרים את האישור שרוצים להשתמש בו כדי ליצור את שרת ה-proxy לאינטרנט.
בשדה מדיניות, בוחרים את המדיניות שיצרתם כדי לשייך אליה את שרת ה-proxy לאינטרנט.
לוחצים על יצירה.
Cloud Shell
משתמשים בכלי לעריכת טקסט כדי ליצור קובץ
gateway.yaml.מוסיפים את הקוד הבא לקובץ
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אופציונלי: כדי לאפשר לאפליקציות לקוח מאזורים אחרים של Google Cloud Google Cloud להתחבר לשרת ה-Proxy, מפעילים גישה גלובלית כשיוצרים את מופע Secure Web Proxy.
בקובץ
gateway.yaml, מוסיפים את השדהallowGlobalAccessומגדירים אותו לערךtrue.חשוב לדעת: אפשר להפעיל את
allowGlobalAccessרק כשיוצרים מופע של Secure Web Proxy. אי אפשר לשנות את ההגדרה הזו בהמשך.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 addresses: [GATEWAY_IP_ADDRESS] scope: samplescope allowGlobalAccess: trueמחליפים את מה שכתוב בשדות הבאים:
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 בשבילכם.
יוצרים את מופע 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
המסוף
נכנסים לדף URL Lists במסוף Google Cloud .
לוחצים על יצירת רשימת כתובות URL. ייפתח הדף Create URL list.
בשדה שם, מזינים שם לרשימת כתובות ה-URL, לדוגמה
example-org-allowed-list.בשדה Description (תיאור), מזינים תיאור לרשימת כתובות ה-URL, למשל
My new URL list.בקטע אזורים, בוחרים את האזור שבו רוצים ליצור את רשימת כתובות ה-URL, למשל
us-central1.כדי להוסיף את רשימת המארחים, כתובות ה-URL או התבניות להתאמה, מזינים את הפרטים בשדה רשימת כתובות URL או לוחצים על העלאת רשימה כדי להעלות רשימה מותאמת אישית של כתובות URL. מידע נוסף זמין במאמר הפניה לתחביר של UrlList.
לוחצים על יצירה.
Cloud Shell
משתמשים בכלי לעריכת טקסט כדי ליצור את הקובץ
url_list.yaml.מוסיפים את הקוד הבא לקובץ
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 שכוללות את התו*.מייבאים את רשימת כתובות ה-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
המסוף
נכנסים לדף SWP Policies במסוף Google Cloud .
לוחצים על שם המדיניות, למשל
myswppolicy.לוחצים על הוספת כלל.
לכל כלל, מבצעים את הפעולות הבאות:
בשדה עדיפות, מזינים מספר שמשקף את סדר הבדיקה של הכלל. הכללים מוערכים מהעדיפות הגבוהה ביותר לנמוכה ביותר, כאשר
0היא העדיפות הגבוהה ביותר.בשדה Name, מזינים שם לכלל, למשל
allow-org-url-list.בשדה Description (תיאור), מזינים תיאור לכלל.
בקטע פעולה, בוחרים באחת מהאפשרויות הבאות:
- אישור: כדי לאשר בקשות חיבור שתואמות לכלל.
- Deny: כדי לדחות בקשות לחיבור שתואמות לכלל.
בשדה סטטוס, בוחרים אחת מהאפשרויות הבאות לאכיפת הכלל:
- מופעל: כדי לאכוף את הכלל במופע Secure Web Proxy.
- מושבתת: כדי לא לאכוף את הכלל במופע של Secure Web Proxy.
בקטע Session Match, מציינים את השם הייחודי של רשימת כתובות ה-URL שיצרתם בקטע הקודם. לדוגמה:
sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME)"
מידע נוסף על התחביר של
SessionMatcherזמין במאמר בנושא הפניה לשפת ההתאמה של CEL.בקטע Application Match, מציינים את הקריטריונים להתאמת הבקשה.
לוחצים על הוספת כלל.
Cloud Shell
משתמשים בכלי לעריכת טקסט כדי ליצור קובץ
rule.yaml.מוסיפים את הקוד הבא לקובץ
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')"מייבאים את הכלל שיצרתם באמצעות הפקודה
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 שלכם.