בדף הזה מוסבר איך לצרף תגי מנהל המשאבים למדיניות של Secure Web Proxy. תגי מנהל המשאבים הם תוויות שאפשר לצרף למשאבים שונים ב- Google Cloud , כמו מכונות וירטואליות (VM). אתם יכולים להשתמש בתגים כדי לאכוף אמצעי בקרה של גישה מותנית ברשת שלכם באמצעות תוויות ארגוניות קיימות.
באמצעות התגים האלה, אפשר לבצע את הפעולות הבאות:
פילוח עומסי עבודה: אתם יכולים לזהות באופן ייחודי סביבות שונות כמו
productionאוdevelopmentוסוגי שירותים כמוfrontendאוdatabase.ריכוז בקרת הגישה: אפשר לבסס את כללי המדיניות של Secure Web Proxy על התגים האלה. לדוגמה, אפשר ליצור כלל מדיניות שאומר: "רק תעבורה שמקורה במשאבים עם התג
tag segment=productionיכולה לגשת לקבוצה ספציפית של כתובות URL".
בדף הזה מוסבר איך:
- יצירת מופע של Secure Web Proxy עם מדיניות ריקה
- יצירה של תג מנהל המשאבים וצירוף שלו למופע של מכונה וירטואלית
- יצירת כלל Secure Web Proxy
- בדיקת הקישוריות של כל ההגדרה של Secure Web Proxy
לפני שמתחילים
מגדירים את השלבים הראשוניים.
צריך לבקש ממנהל חשבון ארגוני להקצות לכם את התפקיד הנדרש כדי ליצור ולעדכן תגים.
מוודאים שמותקנת אצלכם גרסה 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 במצב 'הצעד הבא'.
בקטע Regions (אזורים), בוחרים את האזור שבו רוצים ליצור את שרת ה-proxy לאינטרנט, כמו
us-central1.בקטע רשת, בוחרים את הרשת שבה רוצים ליצור את שרת ה-proxy לאינטרנט.
בשדה Subnetwork (תת-רשת), בוחרים את תת-הרשת של ה-VPC שיצרתם במהלך ההגדרה הראשונית.
אופציונלי: בשדה כתובת ה-IP של שרת ה-proxy לאינטרנט, מזינים את כתובת ה-IP של Secure Web Proxy.
אפשר להזין כתובת IP מתוך טווח כתובות ה-IP של Secure Web Proxy שנמצאות ברשת המשנה שיצרתם בשלב הקודם. אם לא תזינו את כתובת ה-IP, המופע של Secure Web Proxy יבחר באופן אוטומטי כתובת IP מתוך תת-הרשת שנבחרה.
בקטע Certificate, בוחרים את האישור שרוצים להשתמש בו כדי ליצור את פרוקסי האינטרנט.
בקטע מדיניות, בוחרים את המדיניות שיצרתם כדי לשייך את שרת ה-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מחליפים את מה שכתוב בשדות הבאים:
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ספציפיים בקטעים הבאים.
יצירה וצירוף של תגי מנהל המשאבים
יצירת מפתחות וערכים מאובטחים של תגים
דוגמה: כדי ליצור תג לסביבות מוגבלות, פועלים לפי השלבים הבאים:
יוצרים את מפתח התג (
access-level) באמצעות הפקודהgcloud resource-manager tags keys createעם המטרהGCE_FIREWALL.מאחזרים את מזהה מפתח התג מהפלט של פקודת היצירה או באמצעות הפקודה
gcloud resource-manager tags keys list. המזהה הזה נדרש כדי לקשר ערכי תגים למפתח התג הספציפי הזה.יוצרים את ערך התג (
restricted) באמצעות הפקודהgcloud resource-manager tags values createומציינים את מזהה מפתח התג כרכיב ההורה.
# Create the tag key # The output provides a unique ID, such as "tagKeys/1234567890" gcloud resource-manager tags keys create "access-level" \ --parent="organizations/1234567890" \ --purpose="GCE_FIREWALL" \ --purpose-values="execution_env=ANS" # Create the tag value and connect it to the key # The "--parent" flag identifies to which key this value belongs gcloud resource-manager tags values create "restricted" \ --parent="tagKeys/1234567890"-
צירוף התגים האלה משייך את התנועה היוצאת ממופעי המכונות הווירטואליות שלכם לזהות תג ספציפית, וכך ה-proxy יכול לזהות את עומס העבודה ולאכוף את הכללים של מדיניות האבטחה שלכם.
דוגמה: נניח שיש לכם מכונה וירטואלית בשם
internal-tool. אפשר לצרף את ערך התגrestrictedאלinternal-toolבאמצעות הפקודהgcloud resource-manager tags bindings create. הקצאת התג הזו מאפשרת לשרת ה-proxy לזהות את התנועה שמגיעה ממופע המכונה הווירטואליתinternal-tool.# Attach the "restricted" tag to a specific VM instance gcloud resource-manager tags bindings create \ --parent="//[compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool](https://compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool)" \ --tag-value="tagValues/987654321"
יצירת כלל של Secure Web Proxy
המסוף
נכנסים לדף SWP Policies במסוף Google Cloud .
לוחצים על שם המדיניות, למשל
myswppolicy.לוחצים על הוספת כלל.
לכל כלל, מבצעים את הפעולות הבאות:
בשדה עדיפות, מזינים מספר של סדר ההערכה של הכלל. הכללים מוערכים מהעדיפות הגבוהה ביותר לנמוכה ביותר, כאשר
0היא העדיפות הגבוהה ביותר.בשדה Name, מזינים שם לכלל.
בשדה Description (תיאור), מזינים תיאור לכלל.
בקטע פעולה, בוחרים באחת מהאפשרויות הבאות:
- אישור: כדי לאשר בקשות לחיבור שתואמות לכלל.
- Deny: כדי לדחות בקשות לחיבור שתואמות לכלל.
בשדה סטטוס, בוחרים אחת מהאפשרויות הבאות לאכיפת הכלל:
- מופעלת: כדי לאכוף את הכלל במופע Secure Web Proxy.
- מושבת: כדי לא לאכוף את הכלל במופע של Secure Web Proxy.
בקטע Session match, מציינים את המזהה הייחודי של התג שיצרתם בקטע הקודם. לדוגמה:
sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"מידע נוסף על התחביר של
SessionMatcherזמין במאמר הפניה לשפת ההתאמה של CEL.בקטע Application match, מציינים את הקריטריונים להתאמת הבקשה.
לוחצים על הוספת כלל.
Cloud Shell
משתמשים בעורך הטקסט המועדף כדי ליצור את הקובץ
rule.yaml.כדי לאפשר גישה לכתובת URL מהתג הנדרש, מוסיפים את השורה הבאה לקובץ
rule.yaml:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME description: RULE_DESCRIPTION enabled: true priority: RULE_PRIORITY sessionMatcher: CEL_EXPRESSION basicProfile: ALLOWמחליפים את מה שכתוב בשדות הבאים:
-
RULE_NAME: השם של הכלל -
RULE_DESCRIPTION: תיאור הכלל -
RULE_PRIORITY: העדיפות של הכלל הזה. מספר נמוך יותר מייצג עדיפות גבוהה יותר. -
CEL_EXPRESSION: ביטוי של Common Expression Language (CEL). מידע נוסף זמין במאמר בנושא הפניה לשפת ההתאמה של CEL.
לדוגמה, כדי לאפשר גישה ל-
example.comמהתג הנדרש, מוסיפים את השורהsessionMatcherלקובץ ה-YAML:sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"מחליפים את
TAG_VALUEבתג שרוצים לאפשר. מוודאים שהתג כתוב בפורמט של מזהה משאב מספרי, למשלtagValues/567890123456.-
מייבאים את הכללים שיצרתם באמצעות הפקודה
gcloud network-security gateway-security-policies rules import:gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=RULE_FILE.yaml \ --location=REGION \ --gateway-security-policy=POLICY_NAME
בדיקת הגדרת המדיניות
אתם יכולים לבדוק שוב את הקישוריות כדי לוודא שמדיניות Secure Web Proxy, שמסתמכת על תגי מנהל המשאבים לצורך זיהוי, פועלת כמצופה.
כדי לבדוק את הקישוריות, משתמשים בפקודה curl מכל מכונה וירטואלית שמשויכת לתג TAG_VALUE המתאים.
curl -x https://IPv4_ADDRESS:443 http://example.com
--proxy-insecure
מחליפים את IPv4_ADDRESS בכתובת ה-IPv4 של מופע Secure Web Proxy.
אם הכול פועל כמו שצריך, מקבלים קוד סטטוס 200 OK או 403 Forbidden. התשובות האלה מאשרות את התוצאות העיקריות הבאות:
הצלחה מבוססת-תגים: קוד סטטוס
200 OKמאמת שהתעבורה ממכונה וירטואלית עם תג Resource Manager הנכון שצורף אליה תואמת לכלל המדיניות ומורשית לעבור דרך ה-proxy. ההתאמה המאומתת הזו מובילה לחיבור מוצלח.דחייה מבוססת-תג: קוד סטטוס
403 Forbiddenמאמת שהמדיניות דוחה בצורה נכונה את הגישה לתנועה ממכונה וירטואלית ללא התג שצוין או עם תג שגוי. האכיפה הזו מוכיחה שהפילוח והאכיפה שמבוססים על תגים פועלים כצפוי.