בדף הזה מוסבר על הפקודות שמשמשות לעבודה עם כללי חומת האש של ענן וירטואלי פרטי (VPC), ומוצגות כמה דוגמאות לשימוש בהן. כללי חומת אש של VPC מאפשרים תעבורה או מונעים אותה ממכונות וירטואליות (VM) ברשת VPC או אליהן, על סמך מספר היציאה, התג או הפרוטוקול.
לפני שמתחילים
למידע נוסף על כללי חומת אש של VPC, כמו כללים משתמעים וכללים שנוצרו על ידי המערכת עבור רשתות ברירת מחדל, אפשר לעיין במאמר כללי חומת אש של VPC.
לפני שמגדירים כללי חומת אש, כדאי לעיין ברכיבים של כללי חומת אש כדי להכיר את רכיבי חומת האש שמשמשים ב- Cloud de Confiance.
יצירת כללים לחומת האש ב-VPC
כללי חומת אש של VPC מוגדרים ברמת הרשת, והם חלים רק על הרשת שבה הם נוצרו. עם זאת, השם שבוחרים לכל אחד מהם צריך להיות ייחודי לפרויקט.
כלל חומת אש יכול להכיל טווחים של כתובות IPv4 או IPv6, אבל לא את שניהם.
כשיוצרים כלל לחומת האש, אפשר להפעיל את האפשרות 'רישום ביומן של כללים לחומת האש'. אם מפעילים את הרישום ביומן, אפשר להשמיט שדות של מטא-נתונים כדי לחסוך בעלויות האחסון. מידע נוסף זמין במאמר בנושא שימוש ברישום ביומן של כללים של חומת אש ב-VPC.
אם רוצים לציין כמה חשבונות שירות בשדה של חשבון השירות של היעד או המקור, צריך להשתמש ב-Google Cloud CLI, ב-API או בספריות הלקוח.
רשת ברירת המחדל מספקת כללים אוטומטיים של חומת אש בזמן היצירה. אם אתם משתמשים במסוף Cloud de Confiance , רשתות בהתאמה אישית ורשתות במצב אוטומטי מאפשרות לכם ליצור בקלות חומות אש דומות במהלך יצירת הרשת. אם אתם משתמשים ב-CLI של gcloud או ב-API ורוצים ליצור כללים דומים של חומת אש לאלה שרשת ברירת המחדל מספקת, כדאי לעיין במאמר הגדרת כללים של חומת אש לתרחישי שימוש נפוצים.
המסוף
נכנסים לדף Firewall policies במסוף Cloud de Confiance .
לוחצים על יצירת כלל לחומת האש.
מזינים שם לכלל חומת האש.
השם הזה חייב להיות ייחודי בפרויקט.
(אופציונלי) אפשר להפעיל רישום ביומן של כללים לחומת האש:
- לוחצים על יומנים > מופעל.
- כדי להשמיט מטא-נתונים, לוחצים על הצגת פרטי היומנים ומבטלים את הסימון של תיבת הסימון הכללת מטא-נתונים.
מציינים את הרשת לכלל חומת האש.
מציינים את העדיפות של הכלל.
ככל שהמספר נמוך יותר, כך העדיפות גבוהה יותר.
בשדה כיוון התנועה, בוחרים באפשרות 'תעבורת נתונים נכנסת' או 'תעבורת נתונים יוצאת'.
בקטע פעולה בהתאמה, בוחרים באפשרות 'אישור' או 'דחייה'.
מציינים את היעדים של הכלל.
- אם רוצים שהכלל יחול על כל המקרים ברשת, בוחרים באפשרות כל המקרים ברשת.
- אם רוצים שהכלל יחול על מקרים נבחרים לפי תגי רשת (תגי טירגוט), בוחרים באפשרות תגי טירגוט ספציפיים, ואז בשדה תגי טירגוט מקלידים את התגים שהכלל צריך לחול עליהם.
- אם רוצים שהכלל יחול על מקרים נבחרים לפי חשבון השירות המשויך, בוחרים באפשרות Specified service account, מציינים אם חשבון השירות נמצא בפרויקט הנוכחי או בפרויקט אחר בשדה Service account scope, ואז בשדה Target service account בוחרים או מקלידים את שם חשבון השירות.
בכלל כניסה, מציינים את מסנן המקור:
- כדי לסנן תנועה נכנסת לפי טווחי כתובות IPv4 של מקורות, בוחרים באפשרות טווחי כתובות IPv4 ומזינים את בלוקי ה-CIDR בשדה טווחי כתובות IPv4 של מקורות. משתמשים ב-
0.0.0.0/0לכל מקור IPv4. - כדי לסנן תנועה נכנסת לפי טווחי כתובות IPv6 של המקור, בוחרים באפשרות טווחי כתובות IPv6 ואז מזינים את בלוקי ה-CIDR בשדה טווחי כתובות IPv6 של המקור. משתמשים ב-
::/0לכל מקור IPv6. - כדי לסנן תנועה נכנסת לפי תג רשת, בוחרים באפשרות תגי מקור ומקלידים את תגי הרשת בשדה תגי מקור. במאמר מגבלות לכל רשת מפורטת המגבלה על מספר תגי המקור. סינון לפי תג מקור זמין רק אם היעד לא צוין על ידי חשבון שירות.
- כדי לסנן תנועה נכנסת לפי חשבון שירות, בוחרים באפשרות חשבון שירות, מציינים אם חשבון השירות נמצא בפרויקט הנוכחי או בפרויקט אחר בהיקף חשבון השירות, ואז בוחרים או מקלידים את שם חשבון השירות בשדה חשבון שירות המקור. סינון לפי חשבון שירות המקור זמין רק אם היעד לא מצוין על ידי תג הרשת.
- אם רוצים, מציינים מסנן מקור שני. אי אפשר להשתמש באותם קריטריונים של מסנן במסננים של מקור משני כמו במסננים של המקור הראשי. אפשר להשתמש בטווחים של כתובות IP של מקור יחד עם תגי מקור או חשבון שירות של מקור. קבוצת המקורות האפקטיבית היא האיחוד של כתובות ה-IP בטווח המקורות והמופעים שמזוהים על ידי תגי רשת או חשבונות שירות. כלומר, אם טווח כתובות ה-IP של המקור או תגי המקור (או חשבונות השירות של המקור) תואמים לקריטריוני המסנן, המקור נכלל בקבוצת המקורות האפקטיבית.
- אי אפשר להשתמש בתגי מקור ובחשבון שירות של מקור ביחד.
מידע נוסף על שימוש בחשבון שירות ובטג רשת זמין במאמר סינון לפי חשבון שירות לעומת סינון לפי טג רשת.
- כדי לסנן תנועה נכנסת לפי טווחי כתובות IPv4 של מקורות, בוחרים באפשרות טווחי כתובות IPv4 ומזינים את בלוקי ה-CIDR בשדה טווחי כתובות IPv4 של מקורות. משתמשים ב-
בכלל כניסה, מציינים את מסנן היעד:
- כדי לסנן תנועה נכנסת לפי טווחי כתובות IPv4 של היעד, בוחרים באפשרות טווחי כתובות IPv4 ומזינים את בלוקי ה-CIDR בשדה טווחי כתובות IPv4 של היעד. אפשר להשתמש ב-
0.0.0.0/0לכל יעד IPv4. - כדי לסנן תנועה נכנסת לפי טווחי IPv6 של היעד, בוחרים באפשרות טווחי IPv6 ומזינים את בלוקי ה-CIDR בשדה טווחי IPv6 של היעד. אפשר להשתמש ב-
::/0לכל יעד IPv6.
מידע נוסף זמין במאמר יעד לכללי תעבורה נכנסת.
- כדי לסנן תנועה נכנסת לפי טווחי כתובות IPv4 של היעד, בוחרים באפשרות טווחי כתובות IPv4 ומזינים את בלוקי ה-CIDR בשדה טווחי כתובות IPv4 של היעד. אפשר להשתמש ב-
בכלל יציאה, מציינים את מסנן היעד:
- כדי לסנן תנועה יוצאת לפי טווחי כתובות IPv4 של היעד, בוחרים באפשרות טווחי כתובות IPv4 ומזינים את בלוקי ה-CIDR בשדה טווחי כתובות IPv4 של היעד. אפשר להשתמש ב-
0.0.0.0/0לכל יעד IPv4. - כדי לסנן תנועה יוצאת לפי טווחי IPv6 של יעד, בוחרים באפשרות טווחי IPv6 ומזינים את בלוקי ה-CIDR בשדה טווחי IPv6 של יעד. אפשר להשתמש ב-
::/0לכל יעד IPv6.
מידע נוסף זמין במאמר יעד לכללי יציאה.
- כדי לסנן תנועה יוצאת לפי טווחי כתובות IPv4 של היעד, בוחרים באפשרות טווחי כתובות IPv4 ומזינים את בלוקי ה-CIDR בשדה טווחי כתובות IPv4 של היעד. אפשר להשתמש ב-
בכלל לתעבורת נתונים יוצאת (egress), מציינים את מסנן המקור:
- כדי לסנן תנועה יוצאת לפי טווחי כתובות IPv4 של המקור, בוחרים באפשרות טווחי כתובות IPv4 ומזינים את בלוקי ה-CIDR בשדה טווחי כתובות IPv4 של המקור. משתמשים ב-
0.0.0.0/0לכל מקור IPv4. - כדי לסנן תנועה יוצאת לפי טווחי IPv6 של מקורות, בוחרים באפשרות טווחי IPv6 ומזינים את בלוקי ה-CIDR בשדה טווחי IPv6 של מקורות. משתמשים ב-
::/0לכל יעד IPv6.
מידע נוסף מופיע במאמר מקור לכללי תעבורה יוצאת.
- כדי לסנן תנועה יוצאת לפי טווחי כתובות IPv4 של המקור, בוחרים באפשרות טווחי כתובות IPv4 ומזינים את בלוקי ה-CIDR בשדה טווחי כתובות IPv4 של המקור. משתמשים ב-
מגדירים את הפרוטוקולים והיציאות שעליהם חל הכלל:
- כדי שהכלל יחול על כל הפרוטוקולים ויציאות היעד, בוחרים באפשרות Allow all או Deny all, בהתאם לפעולה.
- כדי להגדיר פרוטוקולים ספציפיים ויציאות יעד, בוחרים באפשרות פרוטוקולים ויציאות ספציפיים:
- בוחרים באפשרות TCP כדי לכלול את פרוטוקול ה-TCP ויציאות היעד. מזינים
allאו רשימה של יציאות יעד שמופרדות בפסיקים, כמו20-22, 80, 8080. - בוחרים באפשרות UDP כדי לכלול את פרוטוקול ה-UDP ואת יציאות היעד. מזינים
allאו רשימה של יציאות יעד שמופרדות בפסיקים, כמו67-69, 123. - בוחרים באפשרות Other (אחר) כדי לכלול פרוטוקולים כמו
icmp,sctpאו מספר פרוטוקול. לדוגמה, אפשר להשתמש ב-icmpאו במספר הפרוטוקול1עבור IPv4 ICMP. משתמשים במספר הפרוטוקול58עבור IPv6 ICMP.
- בוחרים באפשרות TCP כדי לכלול את פרוטוקול ה-TCP ויציאות היעד. מזינים
מידע נוסף זמין במאמר בנושא פרוטוקולים ויציאות יעד.
(אופציונלי) אתם יכולים ליצור את כלל חומת האש אבל לא לאכוף אותו על ידי הגדרת מצב האכיפה שלו למושבת. לוחצים על השבתת הכלל ואז בוחרים באפשרות מושבת.
לוחצים על יצירה.
gcloud
כדי ליצור כלל לחומת אש של VPC, משתמשים בפקודה gcloud compute firewall-rules create:
gcloud compute firewall-rules create RULE_NAME \
[--network NETWORK; default="default"] \
[--priority PRIORITY;default=1000] \
[--direction (ingress|egress|in|out); default="ingress"] \
[--action (deny | allow )] \
[--target-tags TAG[,TAG,...]] \
[--target-service-accounts=IAM_SERVICE_ACCOUNT[,IAM_SERVICE_ACCOUNT,...]] \
[--source-ranges CIDR_RANGE[,CIDR_RANGE,...]] \
[--source-tags TAG[,TAG, ...]] \
[--source-service-accounts=IAM_SERVICE_ACCOUNT[,IAM_SERVICE_ACCOUNT,...]] \
[--destination-ranges CIDR_RANGE[,CIDR_RANGE,...]] \
[--rules (PROTOCOL[:PORT[-PORT]],[PROTOCOL[:PORT[-PORT]],...]] | all ) \
[--disabled | --no-disabled] \
[--enable-logging | --no-enable-logging] \
[--logging-metadata LOGGING_METADATA]
משתמשים בפרמטרים באופן הבא. פרטים נוספים על כל אחת מהשיטות האלה זמינים במסמכי התיעוד של SDK reference.
--networkהרשת של הכלל. אם לא מציינים רשת, הכלל נוצר ברשתdefault. אם אין לכם רשת ברירת מחדל או שאתם רוצים ליצור את הכלל ברשת ספציפית, אתם צריכים להשתמש בשדה הזה.--priorityערך מספרי שמציין את העדיפות של הכלל. ככל שהמספר נמוך יותר, כך העדיפות גבוהה יותר.-
--directionכיוון התנועה, INGRESSאוEGRESS. --actionהפעולה במקרה של התאמה,allowאוdeny. חובה להשתמש בדגל--rules.- מציינים יעד באחת מהדרכים הבאות:
כדי לציין טווחים של כתובות IPv4 או IPv6 בפורמט CIDR, משתמשים ב-
--destination-rangesכדי לחדד עוד יותר את היעד של כלל הכניסה. אם לא מציינים את--destination-ranges, יעד התנועה הנכנסת הוא כל כתובת IPv4, 0.0.0.0/0. מידע נוסף זמין במאמרים בנושא יעדים לכללי תעבורה נכנסת וכתובות IP ויעדים לכללי תעבורה נכנסת.בכלל לתעבורת נתונים נכנסת (ingress), צריך לציין מקור:
--source-rangesמשתמשים בדגל הזה כדי לציין טווחים של כתובות IPv4 או IPv6 של מקור בפורמט CIDR.- אם לא מציינים את
--source-ranges,source-tagsו---source-service-accounts, מקור התנועה הנכנסת הוא כל כתובת IPv4,0.0.0.0/0. --source-tagsמשתמשים בדגל הזה כדי לציין מופעי מקור לפי תגי רשת. סינון לפי תג מקור זמין רק אם היעד לא מוגדר על ידי חשבון שירות. מידע נוסף מופיע במאמר בנושא סינון לפי חשבון שירות לעומת תג רשת.- אפשר להשתמש ב-
--source-rangesוב---source-tagsביחד. אם מציינים את שניהם, קבוצת המקור האפקטיבית היא האיחוד של כתובות ה-IP בטווח המקור והמופעים שמזוהים לפי תגי הרשת, גם אם למופעים המתויגים אין כתובות IP בטווח המקור. --source-service-accountsמשתמשים בדגל הזה כדי לציין מכונות לפי חשבונות השירות שבהם הן משתמשות. אפשר לסנן לפי חשבון שירות מקור רק אם יעד לא מצוין באמצעות תג רשת. מידע נוסף זמין במאמר בנושא סינון לפי חשבון שירות לעומת תג רשת. אפשר להשתמש ב---source-rangesוב---source-service-accountsביחד. אם מציינים את שניהם, קבוצת המקור האפקטיבית היא האיחוד של כתובות ה-IP בטווח המקור והמופעים שזוהו על ידי חשבונות השירות של המקור, גם אם למופעים שזוהו על ידי חשבונות השירות של המקור אין כתובות IP בטווח המקור.
עבור כלל תעבורת הנתונים היוצאת (egress), כדי לציין את המקור בצורה מדויקת יותר, משתמשים ב-
--source-rangesבפורמט CIDR כדי להגדיר טווחים של כתובות IPv4 או IPv6. אם לא מציינים את--source-rangesמקור היציאה הוא כל כתובת IPv4,0.0.0.0/0. מידע נוסף זמין במאמרים בנושא מקורות לכללי תעבורה יוצאת וכתובות IP וכתובות יעד לכללי תעבורה יוצאת.בכלל ליציאת תנועה, מציינים יעד:
--destination-rangesמשתמשים בדגל הזה כדי לציין טווחים של כתובות יעד מסוג IPv4 או IPv6 בפורמט CIDR.- אם לא מציינים את
--destination-ranges, יעד היציאה הוא כל כתובת IPv4, 0.0.0.0/0.
--rulesרשימה של פרוטוקולים ויציאות יעד שהכלל חל עליהם. משתמשים ב-allכדי שהכלל יחול על כל הפרוטוקולים וכל יציאות היעד. נדרש הדגל--action.כברירת מחדל, כללי חומת האש נוצרים ומאוכפים באופן אוטומטי, אבל אפשר לשנות את ההתנהגות הזו.
- אם לא מציינים את
--disabledוגם לא את--no-disabled, כלל חומת האש נוצר ונאכף. -
--disabledמוסיפים את הדגל הזה כדי ליצור את הכלל בחומת האש, אבל לא לאכוף אותו. כלל חומת האש יישאר מושבת עד שתעדכנו את כלל חומת האש כדי להפעיל אותו. --no-disabledמוסיפים את הדגל הזה כדי לוודא שכלל חומת האש נאכף.
- אם לא מציינים את
--enable-logging | --no-enable-loggingכשיוצרים או מעדכנים כלל, אפשר להפעיל את האפשרות 'רישום ביומן' עבור כללים של חומת האש. רישום ביומן של כללי חומת אש ב-VPC מאפשר לכם לבצע ביקורת, לאמת ולנתח את ההשפעות של כללי חומת האש. פרטים נוספים זמינים במאמר בנושא רישום ביומן של כללי חומת אש ב-VPC.--logging-metadataאם מפעילים את האפשרות 'רישום ביומן', כברירת מחדל, רישום ביומן של כללי חומת האש כולל שדות בסיס ומטא-נתונים. כדי לחסוך בעלויות האחסון, אפשר להשמיט שדות של מטא-נתונים. מידע נוסף זמין במאמר בנושא שימוש ברישום ביומן של כללים של חומת אש ב-VPC.
Terraform
כדי ליצור כלל לחומת האש, אפשר להשתמש במשאב google_compute_firewall.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
API
יוצרים כלל לחומת האש ב-VPC.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls
{
"name": "RULE_NAME",
"network": "projects/PROJECT-ID/global/networks/NETWORK",
... other fields
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת ה-VPC. -
NETWORK: השם של רשת ה-VPC שבה נוצר כלל חומת האש.
RULE_NAME: השם של כלל חומת האש.לכלל חומת אש לתעבורת נתונים נכנסת, מציינים את המקור והיעד של התעבורה הנכנסת:
משתמשים בשדות
sourceRanges,sourceTagsאוsourceServiceAccountsכדי לציין את מקור הכניסה.
sourceRangesיכול להיות טווח של כתובות IPv4 או IPv6, אבל לא שילוב של שניהם. כדי להשתמש בטווח0.0.0.0/0, לא מציינים שדה.אי אפשר להשתמש בשדות
sourceTagsו-sourceServiceAccountsביחד. עם זאת, אפשר להשתמש ב-sourceRangesעםsourceTagsאו עםsourceServiceAccounts. אם כן, כדי שכלל חומת האש יחול, החיבור צריך להתאים לאחד מהם.בשדות היעד, אם משתמשים בשדה
sourceTags, אי אפשר להשתמש בשדהtargetServiceAccounts. חובה להשתמש בשדהtargetTagsאו לא להשתמש בשדה יעד. באופן דומה, אם משתמשים בשדהsourceServiceAccounts, אי אפשר להשתמש בשדהtargetTags. אם לא מציינים שדה יעד, הכלל חל על כל היעדים ברשת.משתמשים בשדה
destinationRangesכדי לציין את יעד הכניסה. destinationRangesיכול להיות טווח של כתובות IPv4 או IPv6, אבל לא שילוב של שניהם.
אם לא מציינים יעד, Cloud de Confiance משתמש ב-0.0.0.0/0. מידע נוסף זמין במאמרים בנושא יעדים לכללי תעבורה נכנסת וכתובות IP ויעדים לכללי תעבורה נכנסת.
לכלל חומת אש לתעבורת נתונים יוצאת (egress), מציינים את המקור והיעד של התעבורה היוצאת:
משתמשים בשדה
sourceRangesכדי לציין את מקור היציאה.sourceRangeיכול להיות טווח של כתובות IPv4 או IPv6, אבל לא שילוב של שניהם.
אם לא מציינים מקור, Cloud de Confiance המערכת משתמשת בערך0.0.0.0/0. מידע נוסף זמין במאמרים בנושא מקורות לכללי תעבורה יוצאת וכתובות IP וכתובות יעד לכללי תעבורה יוצאת.משתמשים בשדה
destinationRangesכדי לציין את היעד. destinationRangesיכול להיות טווח של כתובות IPv4 או IPv6, אבל לא שילוב של שניהם.
אם לא מציינים יעד, Cloud de Confianceהמערכת משתמשת ב-0.0.0.0/0. משתמשים בשדהtargetTagsאוtargetServiceAccountsכדי לציין על אילו יעדים הכלל חל. אם לא מציינים שדה יעד, הכלל חל על כל היעדים ברשת.
מידע נוסף ותיאורים של כל שדה זמינים בשיטה firewalls.insert.
C#
המשך
Java
Node.js
PHP
Python
Ruby
עדכון כללים של חומת אש ב-VPC
אפשר לשנות רכיבים מסוימים של כלל חומת אש של VPC, כמו הפרוטוקולים שצוינו ויציאות היעד של תנאי ההתאמה. אי אפשר לשנות את השם, הרשת, הפעולה במקרה של התאמה וכיוון התנועה של כלל חומת אש.
אם אתם צריכים לשנות את השם, הרשת או רכיב הפעולה או הכיוון, תצטרכו למחוק את הכלל וליצור כלל חדש במקום.
אם רוצים להוסיף או להסיר כמה חשבונות שירות, צריך להשתמש ב-CLI של gcloud, ב-API או בספריות הלקוח. אי אפשר להשתמש במסוף Cloud de Confiance כדי לציין כמה חשבונות שירות של יעד או כמה חשבונות שירות של מקור.
המסוף
נכנסים לדף Firewall policies במסוף Cloud de Confiance .
לוחצים על כלל חומת האש שרוצים לשנות.
לוחצים על Edit.
משנים את הרכיבים שניתנים לעריכה לפי הצורך.
לוחצים על Save.
gcloud
כדי לעדכן את הכללים של חומת האש ב-VPC, משתמשים בפקודה gcloud compute firewall-rules update:
gcloud compute firewall-rules update RULE_NAME \
[--priority=PRIORITY] \
[--description=DESCRIPTION] \
[--target-tags=TAG,...] \
[--target-service-accounts=IAM_SERVICE_ACCOUNT,_] \
[--source-ranges=CIDR_RANGE,...] \
[--source-tags=TAG,...] \
[--source-service-accounts=IAM_SERVICE_ACCOUNT,_] \
[--destination-ranges=CIDR_RANGE,...] \
[--rules=[PROTOCOL[:PORT[-PORT]],…]] \
[--disabled | --no-disabled] \
[--enable-logging | --no-enable-logging]
התיאורים של כל דגל זהים לתיאורים של יצירת כללי חומת אש, ופרטים נוספים על כל דגל זמינים במסמכי העזר של SDK.
API
משתמשים ב-PATCH כדי לעדכן את השדות הבאים: allowed, description, sourceRanges, sourceTags או targetTags. משתמשים ב-PUT או ב-POST לכל שאר השדות.
(PATCH|(POST|PUT)) https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
"name": "RULE_NAME",
"network": "projects/PROJECT-ID/global/networks/NETWORK",
... other fields
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת ה-VPC. -
NETWORK: השם של רשת ה-VPC שבה נמצא כלל חומת האש. -
RULE_NAME: השם של כלל חומת האש שרוצים לעדכן.
מידע נוסף ותיאורים של כל שדה זמינים בשיטה firewalls.patch או firewalls.update.
C#
המשך
Java
Node.js
PHP
Python
Ruby
הצגת רשימה של כללי חומת אש של VPC לרשת VPC
אתם יכולים להציג רשימה של כל כללי חומת האש ב-VPC בפרויקט או ברשת VPC מסוימת. לכל כלל חומת אש, Cloud de Confiance מוצגים פרטים כמו סוג הכלל, יעדים ומסננים.
אם מפעילים רישום ביומן של כללי חומת האש ב-VPC , התכונה 'תובנות לגבי חומת האש' יכולה לספק תובנות לגבי כללי חומת האש, כדי לעזור לכם להבין אותם טוב יותר ולבצע אופטימיזציה של ההגדרות שלהם בצורה בטוחה. לדוגמה, תוכלו לראות אילו כללי allow לא היו בשימוש ב-6 השבועות האחרונים.
מידע נוסף זמין במאמר שימוש במסך הפרטים של כללי חומת האש במסמכי התיעוד של תובנות לגבי חומת האש.
המסוף
כדי להציג את כל כללי חומת האש ב-VPC עבור כל הרשתות בפרויקט:
נכנסים לדף Firewall policies במסוף Cloud de Confiance .
כדי להציג את כללי חומת האש של VPC ברשת מסוימת:
נכנסים לדף VPC networks במסוף Cloud de Confiance .
לוחצים על Name (שם) של רשת VPC כדי לעבור לדף הפרטים שלה.
בדף הפרטים של הרשת, לוחצים על הכרטיסייה Firewalls.
מרחיבים את האפשרות vpc-firewall-rules.
gcloud
כדי ליצור רשימה ממוינת של כללי חומת אש של VPC ברשת נתונה, משתמשים בפקודה gcloud compute firewall-rules list:
gcloud compute firewall-rules list --filter network=NETWORK \
--sort-by priority \
--format="table(
name,
network,
direction,
priority,
sourceRanges.list():label=SRC_RANGES,
destinationRanges.list():label=DEST_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
denied[].map().firewall_rule().list():label=DENY,
sourceTags.list():label=SRC_TAGS,
targetTags.list():label=TARGET_TAGS
)"
מחליפים את NETWORK בשם הרשת שרוצים להציג את כללי חומת האש שלה.
API
הצגת רשימה של כל כללי חומת האש ב-VPC עבור רשת נתונה.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/?filter=network="NETWORK"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת ה-VPC. -
NETWORK: השם של רשת ה-VPC שמכילה את כללי חומת האש שרוצים להציג.
מידע נוסף זמין במאמר על השיטה firewalls.list.
C#
המשך
Java
Node.js
PHP
Python
Ruby
הצגת רשימה של כללי חומת אש של VPC לממשק רשת של מכונה וירטואלית
בכל ממשק רשת, Cloud de Confiance במסוף מופיעות כללי חומת האש של VPC שחלים על הממשק והכללים שבשימוש בפועל בממשק. כללי חומת אש יכולים להסתיר כללים אחרים, כך שלא בטוח שכל הכללים שחלים על ממשק מסוים ישמשו את הממשק בפועל.
כללי חומת אש משויכים למכונות וירטואליות ומוחלים עליהן באמצעות פרמטר היעד של הכלל. כשרואים את כל הכללים שהוחלו, אפשר לבדוק אם כלל מסוים חל על ממשק.
אם מפעילים רישום ביומן של כללים במדיניות חומת האש, אפשר לקבל תובנות לגבי הכללים של חומת האש בעזרת Firewall Insights. כך אפשר להבין טוב יותר את ההגדרות ולבצע אופטימיזציה שלהן בצורה בטוחה. לדוגמה, אפשר לראות אילו כללים בממשק הופעלו ב-6 השבועות האחרונים. מידע נוסף זמין במאמר שימוש במסך הפרטים של ממשק הרשת של מכונה וירטואלית במסמכי התיעוד של תובנות לגבי חומת האש.
המסוף
כדי לראות את כללי ה-VPC שחלים על ממשק רשת ספציפי של מכונה וירטואלית:
נכנסים לדף VM instances במסוף Cloud de Confiance .
מאתרים את המופע שרוצים לראות.
בתפריט more actions (פעולות נוספות) של המופע (), בוחרים באפשרות View network details (הצגת פרטי הרשת).
אם למופע יש כמה ממשקי רשת, בוחרים את ממשק הרשת שרוצים להציג בשדה Selected network interface.
בקטע Firewall and routes details, בוחרים בכרטיסייה Firewalls.
מרחיבים את האפשרות vpc-firewall-rules.
מעיינים בטבלה כדי לקבוע אם התנועה אל כתובת IP ספציפית או ממנה מותרת.
הצגת פרטים של כלל חומת אש ב-VPC
אפשר לבדוק כלל של חומת אש ב-VPC כדי לראות את השם שלו, את הרשת הרלוונטית ורכיבים, כולל אם הכלל מופעל או מושבת.
המסוף
- מציגים את הכללים של חומת האש. אפשר להציג רשימה של כל הכללים או רק של הכללים ברשת מסוימת.
- לוחצים על הכלל כדי לראות אותו.
gcloud
הפקודה הבאה מתארת כלל ספציפי של חומת אש ב-VPC. שמות של כללי חומת אש הם ייחודיים לפרויקט, ולכן לא צריך לציין רשת כשמתארים כלל חומת אש קיים.
gcloud compute firewall-rules describe RULE_NAME
מחליפים את RULE_NAME בשם של כלל חומת האש.
API
מתארים כלל נתון של חומת אש ב-VPC.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
מחליפים את ה-placeholders בערכים תקינים:
-
PROJECT_ID: מזהה הפרויקט שבו נמצא כלל חומת האש. -
RULE_NAME: השם של כלל חומת האש שרוצים לתאר.
מידע נוסף זמין במאמר על השיטה firewalls.get.
מחיקת כללים של חומת אש ב-VPC
המסוף
- מפרטים את הכללים של חומת האש ב-VPC. אתם יכולים לראות רשימה של כל הכללים או רק של הכללים ברשת מסוימת.
- לוחצים על הכלל שרוצים למחוק.
- לוחצים על Delete.
- כדי לאשר, לוחצים שוב על מחיקה.
gcloud
כדי למחוק כלל של חומת אש ב-VPC, משתמשים בפקודה gcloud compute firewall-rules delete:
gcloud compute firewall-rules delete RULE_NAME
מחליפים את RULE_NAME בשם הכלל שרוצים למחוק.
API
מחיקת כלל חומת אש ב-VPC.
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: המזהה של הפרויקט שבו נמצא כלל חומת האש. -
RULE_NAME: השם של כלל חומת האש שרוצים למחוק.
מידע נוסף זמין במאמר בנושא השיטה firewalls.delete.
C#
המשך
Java
Node.js
PHP
Python
Ruby
מעקב אחרי כללי חומת אש ב-VPC
אפשר להפעיל רישום ביומן לכללי חומת אש של VPC כדי לראות איזה כלל אפשר או חסם תנועה מסוימת. הוראות מפורטות מופיעות במאמר בנושא שימוש ברישום ביומן של כללי חומת אש ב-VPC.
הגדרת כללים של חומת אש ב-VPC לתרחישי שימוש נפוצים
בקטעים הבאים מפורטות דוגמאות לשימוש ב-CLI של gcloud וב-API כדי ליצור מחדש את כללי חומת האש המוגדרים מראש של VPC שנוצרו עבור רשתות ברירת מחדל. אתם יכולים להשתמש בדוגמאות כדי ליצור כללים דומים לרשתות שלכם במצב מותאם אישית ובמצב אוטומטי. כל כלל חומת אש יכול לכלול טווחי כתובות IPv4 או IPv6, אבל לא את שניהם.
התרת חיבורי כניסה פנימיים בין מכונות וירטואליות
בדוגמאות הבאות נוצר כלל של חומת אש שמאפשר חיבורים פנימיים מסוג TCP, UDP ו-ICMP למכונות הווירטואליות, בדומה לכלל allow-internal ברשתות ברירת המחדל.
gcloud
משתמשים בפקודה gcloud compute firewall-rules create:
gcloud compute firewall-rules create RULE_NAME \
--action=ALLOW \
--direction=INGRESS \
--network=NETWORK \
--priority=1000 \
--rules=tcp:0-65535,udp:0-65535,ICMP_PROTOCOL \
--source-ranges=SUBNET_RANGES
מחליפים את מה שכתוב בשדות הבאים:
-
RULE_NAME: השם של כלל חומת האש הזה. -
NETWORK: השם של הרשת שאליה חל כלל חומת האש הזה. ערך ברירת המחדל הואdefault. -
ICMP_PROTOCOL: סוג פרוטוקול ה-ICMP. מציינים ICMPv4 באמצעות שם הפרוטוקולicmpאו מספר הפרוטוקול1. מציינים ICMPv6 באמצעות מספר הפרוטוקול58.
SUBNET_RANGES: טווח אחד או יותר של כתובות IP. הכללת טווח כתובות IP פירושה שתעבורת נתונים מהטווח הזה יכולה להגיע לכל יעד של מכונת VM ברשת ה-VPC. אפשר לציין טווחי IPv4 או IPv6 בכלל נתון של חומת אש.טווחי תת-רשתות IPv4:
- רשתות VPC במצב אוטומטי משתמשות בטווחי כתובות IP שנמצאים בתוך
10.128.0.0/9. - ברשתות במצב מותאם אישית אפשר להשתמש בכל טווח IPv4 תקין. אם אתם לא משתמשים בטווחים רציפים של כתובות IP עבור רשתות המשנה ברשת ה-VPC, יכול להיות שתצטרכו לציין כמה טווחים.
- אפשר להשתמש ב-
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16כדי לאפשר תעבורה מכל טווחי כתובות ה-IPv4 הפרטיות (טווחים של RFC 1918).
טווחי רשתות משנה של IPv6:
אם הקציתם טווח של כתובות IPv6 פנימיות לרשת ה-VPC, תוכלו להשתמש בטווח הזה כטווח מקור. שימוש בטווח הפנימי של IPv6 ברשת ה-VPC אומר שכלל חומת האש כולל את כל טווחי רשתות המשנה הפנימיות של IPv6, גם אלה שקיימים וגם אלה שייווצרו בעתיד. אפשר למצוא את טווח ה-IPv6 הפנימי של רשת ה-VPC באמצעות הפקודה הבאה:
gcloud compute networks describe NETWORK \ --format="flattened(internalIpv6Range)"
אפשר גם לציין טווחים ספציפיים של רשתות משנה פנימיות של IPv6.
כדי לאפשר תנועה מטווחים של תת-רשתות IPv6 חיצוניות, צריך לציין את טווח כתובות ה-IPv6 של כל תת-רשת שרוצים לכלול.
- רשתות VPC במצב אוטומטי משתמשות בטווחי כתובות IP שנמצאים בתוך
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls
{
"kind": "compute#firewall",
"name": "RULE_NAME",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"direction": "INGRESS",
"priority": 1000,
"targetTags": [],
"allowed": [
{
"IPProtocol": "tcp",
"ports": [
"0-65535"
]
},
{
"IPProtocol": "udp",
"ports": [
"0-65535"
]
},
{
"IPProtocol": "ICMP_PROTOCOL"
}
],
"sourceRanges": [
"SUBNET_RANGES"
]
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת ה-VPC. -
RULE_NAME: השם של כלל חומת האש. -
NETWORK: השם של רשת ה-VPC שבה נוצר כלל חומת האש. ערך ברירת המחדל הואdefault. -
ICMP_PROTOCOL: סוג פרוטוקול ה-ICMP. מציינים ICMPv4 באמצעות שם הפרוטוקולicmpאו מספר הפרוטוקול1. מציינים ICMPv6 באמצעות מספר הפרוטוקול58.
INTERNAL_SOURCE_RANGES: טווח אחד או יותר של כתובות IP. כדי לאפשר תנועה פנימית בכל רשתות המשנה ברשתות ה-VPC, צריך לציין את טווחי כתובות ה-IP שמשמשים ברשת ה-VPC. אפשר לציין טווחי IPv4 או IPv6 בכלל נתון של חומת אש.טווחי תת-רשתות IPv4:
- רשתות VPC במצב אוטומטי משתמשות בטווחי כתובות IP שנמצאים בתוך
10.128.0.0/9. - ברשתות במצב מותאם אישית אפשר להשתמש בכל טווח IPv4 תקין. אם אתם לא משתמשים בטווחים רציפים של כתובות IP עבור רשתות המשנה ברשת ה-VPC, יכול להיות שתצטרכו לציין כמה טווחים.
- אפשר להשתמש ב-
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16כדי לאפשר תעבורה מכל טווחי כתובות ה-IPv4 הפרטיות (טווחים של RFC 1918).
טווחי רשתות משנה של IPv6:
אם הקציתם טווח של כתובות IPv6 פנימיות לרשת ה-VPC, תוכלו להשתמש בטווח הזה כטווח מקור. שימוש בטווח הפנימי של IPv6 ברשת ה-VPC אומר שכלל חומת האש כולל את כל טווחי רשתות המשנה הפנימיות של IPv6, גם אלה שקיימים וגם אלה שיווצרו בעתיד. אפשר למצוא את טווח ה-IPv6 הפנימי של רשת ה-VPC באמצעות הפקודה הבאה:
gcloud compute networks describe NETWORK \ --format="flattened(internalIpv6Range)"
אפשר גם לציין טווחים ספציפיים של רשתות משנה פנימיות של IPv6.
כדי לאפשר תנועה מטווחים של תת-רשתות IPv6 חיצוניות, צריך לציין את טווח כתובות ה-IPv6 של כל תת-רשת שרוצים לכלול.
- רשתות VPC במצב אוטומטי משתמשות בטווחי כתובות IP שנמצאים בתוך
אישור חיבורי SSH נכנסים למכונות וירטואליות
בדוגמאות הבאות נוצר כלל חומת אש שמאפשר חיבורי SSH למכונות הווירטואליות, בדומה לכלל allow-ssh ברשתות ברירת המחדל.
gcloud
משתמשים בפקודה gcloud compute firewall-rules create:
gcloud compute firewall-rules create RULE_NAME \
--action=ALLOW \
--direction=INGRESS \
--network=NETWORK \
--priority=1000 \
--rules=tcp:22 \
--source-ranges=RANGES_OUTSIDE_VPC_NETWORK
מחליפים את מה שכתוב בשדות הבאים:
-
RULE_NAME: השם של כלל חומת האש הזה. -
NETWORK: השם של הרשת שאליה חל כלל חומת האש הזה. ערך ברירת המחדל הואdefault.
RANGES_OUTSIDE_VPC_NETWORK: טווח אחד או יותר של כתובות IP. אפשר לציין טווחים של IPv4 או IPv6 בכלל כלל של חומת אש. השיטה המומלצת היא לציין את טווחי כתובות ה-IP הספציפיים שמהם רוצים לאפשר גישה, ולא את כל המקורות של IPv4 או IPv6.- הכללת
35.235.240.0/20בטווחים של המקורות מאפשרת חיבורי SSH באמצעות העברת TCP של שרת Proxy לאימות זהויות (IAP), אם מתקיימות כל הדרישות המוקדמות האחרות. מידע נוסף זמין במאמר שימוש ב-IAP להעברת TCP. - שימוש ב-
0.0.0.0/0כטווח מקורות מאפשר תנועה מכל מקורות ה-IPv4, כולל מקורות מחוץ ל- Cloud de Confiance. - השימוש ב-
::/0כטווח מקור מאפשר תנועה מכל המקורות של IPv6, כולל מקורות מחוץ ל- Cloud de Confiance.
- הכללת
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls
{
"kind": "compute#firewall",
"name": "RULE_NAME",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"direction": "INGRESS",
"priority": 1000,
"targetTags": [],
"allowed": [
{
"IPProtocol": "tcp",
"ports": [
"22"
]
}
],
"sourceRanges": [
"RANGES_OUTSIDE_VPC_NETWORK"
]
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת ה-VPC. -
RULE_NAME: השם של כלל חומת האש. -
NETWORK: השם של רשת ה-VPC שבה נוצר כלל חומת האש.
RANGES_OUTSIDE_VPC_NETWORK: טווח אחד או יותר של כתובות IP. אפשר לציין טווחים של IPv4 או IPv6 בכלל כלל של חומת אש. השיטה המומלצת היא לציין את טווחי כתובות ה-IP הספציפיים שמהם רוצים לאפשר גישה, ולא את כל המקורות של IPv4 או IPv6.- הכללת
35.235.240.0/20בטווחים של המקורות מאפשרת חיבורי SSH באמצעות העברת TCP של שרת Proxy לאימות זהויות (IAP), אם מתקיימות כל הדרישות המוקדמות האחרות. מידע נוסף זמין במאמר שימוש ב-IAP להעברת TCP. - שימוש ב-
0.0.0.0/0כטווח מקורות מאפשר תנועה מכל מקורות ה-IPv4, כולל מקורות מחוץ ל- Cloud de Confiance. - השימוש ב-
::/0כטווח מקור מאפשר תנועה מכל המקורות של IPv6, כולל מקורות מחוץ ל- Cloud de Confiance.
- הכללת
אישור חיבורי RDP נכנסים למכונות וירטואליות
בדוגמאות הבאות נוצר כלל חומת אש שמאפשר חיבורים של פרוטוקול שולחן עבודה מרוחק (RDP) של מיקרוסופט למכונות וירטואליות, בדומה לכלל allow-rdp ברשתות ברירת מחדל.
gcloud
משתמשים בפקודה gcloud compute firewall-rules create:
gcloud compute firewall-rules create RULE_NAME \
--action=ALLOW \
--direction=INGRESS \
--network=NETWORK \
--priority=1000 \
--rules=tcp:3389 \
--source-ranges=RANGES_OUTSIDE_VPC_NETWORK
מחליפים את מה שכתוב בשדות הבאים:
-
RULE_NAME: השם של כלל חומת האש הזה. -
NETWORK: השם של הרשת שאליה חל כלל חומת האש הזה. ערך ברירת המחדל הואdefault.
RANGES_OUTSIDE_VPC_NETWORK: טווח אחד או יותר של כתובות IP. אפשר לציין טווחים של IPv4 או IPv6 בכלל כלל של חומת אש. השיטה המומלצת היא לציין את טווחי כתובות ה-IP הספציפיים שמהם רוצים לאפשר גישה, ולא את כל המקורות של IPv4 או IPv6.- הכללת
35.235.240.0/20בטווחים של המקור מאפשרת חיבורי RDP באמצעות העברת TCP של שרת Proxy לאימות זהויות (IAP), אם מתקיימות כל הדרישות המוקדמות האחרות. מידע נוסף זמין במאמר שימוש ב-IAP להעברת TCP. - שימוש ב-
0.0.0.0/0כטווח מקורות מאפשר תנועה מכל מקורות ה-IPv4, כולל מקורות מחוץ ל- Cloud de Confiance. - השימוש ב-
::/0כטווח מקור מאפשר תנועה מכל המקורות של IPv6, כולל מקורות מחוץ ל- Cloud de Confiance.
- הכללת
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls
{
"kind": "compute#firewall",
"name": "RULE_NAME",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"direction": "INGRESS",
"priority": 1000,
"allowed": [
{
"IPProtocol": "tcp",
"ports": [
"3389"
]
}
],
"sourceRanges": [
"EXTERNAL_SOURCE_RANGES"
]
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת ה-VPC. -
RULE_NAME: השם של כלל חומת האש. -
NETWORK: השם של רשת ה-VPC שבה נוצר כלל חומת האש.
RANGES_OUTSIDE_VPC_NETWORK: טווח אחד או יותר של כתובות IP. אפשר לציין טווחים של IPv4 או IPv6 בכלל כלל של חומת אש. השיטה המומלצת היא לציין את טווחי כתובות ה-IP הספציפיים שמהם רוצים לאפשר גישה, ולא את כל המקורות של IPv4 או IPv6.- הכללת
35.235.240.0/20בטווחים של המקור מאפשרת חיבורי RDP באמצעות העברת TCP של שרת Proxy לאימות זהויות (IAP), אם מתקיימות כל הדרישות המוקדמות האחרות. מידע נוסף זמין במאמר שימוש ב-IAP להעברת TCP. - שימוש ב-
0.0.0.0/0כטווח מקורות מאפשר תנועה מכל מקורות ה-IPv4, כולל מקורות מחוץ ל- Cloud de Confiance. - השימוש ב-
::/0כטווח מקור מאפשר תנועה מכל המקורות של IPv6, כולל מקורות מחוץ ל- Cloud de Confiance.
- הכללת
אישור חיבורי ICMP נכנסים למכונות וירטואליות
בדוגמאות הבאות נוצר כלל חומת אש שמאפשר חיבורי ICMP למכונות הווירטואליות, בדומה לכלל allow-icmp ברשתות ברירת המחדל.
gcloud
משתמשים בפקודה gcloud compute firewall-rules create:
gcloud compute firewall-rules create RULE_NAME \
--action=ALLOW \
--direction=INGRESS \
--network=NETWORK \
--priority=1000 \
--rules=ICMP_PROTOCOL \
--source-ranges=RANGES_OUTSIDE_VPC_NETWORK
מחליפים את מה שכתוב בשדות הבאים:
-
RULE_NAME: השם של כלל חומת האש. -
NETWORK: השם של הרשת שאליה חל כלל חומת האש הזה. ערך ברירת המחדל הואdefault. -
ICMP_PROTOCOL: סוג פרוטוקול ה-ICMP. מציינים ICMPv4 באמצעות שם הפרוטוקולicmpאו מספר הפרוטוקול1. מציינים ICMPv6 באמצעות מספר הפרוטוקול58.
RANGES_OUTSIDE_VPC_NETWORK: טווח אחד או יותר של כתובות IP. אפשר לציין טווחים של IPv4 או IPv6 בכלל כלל של חומת אש. השיטה המומלצת היא לציין את טווחי כתובות ה-IP הספציפיים שמהם רוצים לאפשר גישה, ולא את כל המקורות של IPv4 או IPv6.- שימוש ב-
0.0.0.0/0כטווח מקורות מאפשר תנועה מכל מקורות ה-IPv4, כולל מקורות מחוץ ל- Cloud de Confiance. - השימוש ב-
::/0כטווח מקור מאפשר תנועה מכל המקורות של IPv6, כולל מקורות מחוץ ל- Cloud de Confiance.
- שימוש ב-
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls
{
"kind": "compute#firewall",
"name": "RULE_NAME",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"direction": "INGRESS",
"priority": 1000,
"targetTags": [],
"allowed": [
{
"IPProtocol": "ICMP_PROTOCOL"
}
],
"sourceRanges": [
"RANGES_OUTSIDE_VPC_NETWORK"
]
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת ה-VPC. -
RULE_NAME: השם של כלל חומת האש. -
NETWORK: השם של רשת ה-VPC שבה נוצר כלל חומת האש. -
ICMP_PROTOCOL: סוג פרוטוקול ה-ICMP שבו רוצים להשתמש. מציינים ICMPv4 באמצעות שם הפרוטוקולicmpאו מספר הפרוטוקול1. מציינים ICMPv6 באמצעות מספר הפרוטוקול58.
RANGES_OUTSIDE_VPC_NETWORK: טווח אחד או יותר של כתובות IP. אפשר לציין טווחים של IPv4 או IPv6 בכלל כלל של חומת אש. השיטה המומלצת היא לציין את טווחי כתובות ה-IP הספציפיים שמהם רוצים לאפשר גישה, ולא את כל המקורות של IPv4 או IPv6.- שימוש ב-
0.0.0.0/0כטווח מקורות מאפשר תנועה מכל מקורות ה-IPv4, כולל מקורות מחוץ ל- Cloud de Confiance. - השימוש ב-
::/0כטווח מקור מאפשר תנועה מכל המקורות של IPv6, כולל מקורות מחוץ ל- Cloud de Confiance.
- שימוש ב-
דוגמאות נוספות להגדרות
איור 1 מתאר דוגמה להגדרה של רשת VPC בשם my-network. הרשת מכילה את הפריטים הבאים:
- תת-רשת בשם
subnet1, עם טווח כתובות IP10.240.10.0/24ומופע יחיד - תת-רשת בשם
subnet2, עם טווח כתובות IP192.168.1.0/24 - מופע בשם
vm1ב-subnet2עם תגwebserverוכתובת IP פנימית192.168.1.2 - מופע בשם
vm2ב-subnet2עם תגdatabaseוכתובת IP פנימית192.168.1.3
דוגמה 1: דחיית כל חיבורי ה-TCP של תעבורת נתונים נכנסת (ingress) חוץ מאלה ליציאה 80 מתת-רשת1
בדוגמה הזו נוצרת קבוצה של כללי חומת אש של VPC שדוחים את כל חיבורי ה-TCP הנכנסים, למעט חיבורים שמיועדים ליציאה 80 מ-subnet1.
gcloud
יוצרים כלל חומת אש שדוחה את כל תעבורת הנתונים הנכנסת (ingress) מסוג TCP אל המכונות שתויגו באמצעות התג
webserver.gcloud compute firewall-rules create deny-subnet1-webserver-access \ --network NETWORK_NAME \ --action deny \ --direction INGRESS \ --rules tcp \ --source-ranges 0.0.0.0/0 \ --priority 1000 \ --target-tags webserverמחליפים את
NETWORK_NAMEבשם הרשת.יוצרים כלל חומת אש שמאפשר לכל כתובות ה-IP בטווח
subnet1(10.240.10.0/24) לגשת ליציאת TCP80במכונות שתויגו באמצעותwebserver.gcloud compute firewall-rules create vm1-allow-ingress-tcp-port80-from-subnet1 \ --network NETWORK_NAME \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 10.240.10.0/24 \ --priority 50 \ --target-tags webserverמחליפים את
NETWORK_NAMEבשם הרשת.
דוגמה 2: דחייה של כל חיבורי ה-TCP של תעבורת נתונים יוצאת (egress) חוץ מאלה ליציאה 80 של vm1
gcloud
יוצרים כלל חומת אש שדוחה את כל תעבורת הנתונים היוצאת (egress) מסוג TCP.
gcloud compute firewall-rules create deny-all-access \ --network NETWORK_NAME \ --action deny \ --direction EGRESS \ --rules tcp \ --destination-ranges 0.0.0.0/0 \ --priority 1000מחליפים את
NETWORK_NAMEבשם הרשת.יוצרים כלל חומת אש שמאפשר תעבורת TCP שמיועדת ליציאה
80בכתובתvm1.gcloud compute firewall-rules create vm1-allow-egress-tcp-port80-to-vm1 \ --network NETWORK_NAME \ --action allow \ --direction EGRESS \ --rules tcp:80 \ --destination-ranges 192.168.1.2/32 \ --priority 60מחליפים את
NETWORK_NAMEבשם הרשת.
דוגמה 3: מתירים חיבורי TCP יוצאים ליציאה 443 של מארח חיצוני
יוצרים כלל של חומת אש שמאפשר למכונות שתויגו באמצעות webserver לשלוח תעבורת TCP יוצאת ליציאה 443 של כתובת IP חיצונית לדוגמה, 192.0.2.5.
gcloud
gcloud compute firewall-rules create vm1-allow-egress-tcp-port443-to-192-0-2-5 \
--network NETWORK_NAME \
--action allow \
--direction EGRESS \
--rules tcp:443 \
--destination-ranges 192.0.2.5/32 \
--priority 70 \
--target-tags webserver
מחליפים את NETWORK_NAME בשם הרשת.
דוגמה 4: מתן הרשאה לחיבורי SSH ממכונה וירטואלית vm2 למכונה וירטואלית vm1
יוצרים כלל חומת אש שמאפשר לתעבורת SSH ממכונות עם התג
database (vm2) להגיע למכונות עם התג webserver (vm1).
gcloud
gcloud compute firewall-rules create vm1-allow-ingress-tcp-ssh-from-vm2 \
--network NETWORK_NAME \
--action allow \
--direction INGRESS \
--rules tcp:22 \
--source-tags database \
--priority 80 \
--target-tags webserver
מחליפים את NETWORK_NAME בשם הרשת.
דוגמה 5: מתן הרשאה ל-TCP:1443 משרת אינטרנט למסד נתונים באמצעות חשבונות שירות
מידע נוסף על חשבונות שירות ותפקידים זמין במאמר הקצאת תפקידים לחשבונות שירות.
בתרחיש שמוצג באיור 2, יש שתי אפליקציות שמתבצעת בהן שינוי אוטומטי של קנה המידה באמצעות תבניות: אפליקציית שרת אינטרנט שמשויכת לחשבון שירות my-sa-webserver ואפליקציית מסד נתונים שמשויכת לחשבון שירות my-sa-database. אדמין אבטחה רוצה לאפשר תעבורת TCP ממכונות וירטואליות עם חשבון השירות my-sa-webserver ליציאת היעד 1443 של מכונות וירטואליות עם חשבון השירות my-sa-database.
השלבים להגדרה, כולל יצירת חשבונות השירות, מפורטים בהמשך.
gcloud
משתמש עם הרשאת עריכה או בעלות על הפרויקט יוצר את חשבונות השירות
my-sa-webserverו-my-sa-database.gcloud iam service-accounts create my-sa-webserver \ --display-name "webserver service account"gcloud iam service-accounts create my-sa-database \ --display-name "database service account"בעל הפרויקט מקצה למפתח שרת האינטרנט web-dev@example.com את התפקיד Service Account User (
serviceAccountUser) בחשבון השירותmy-sa-webserverבאמצעות הגדרת מדיניות של ניהול זהויות והרשאות גישה (IAM).gcloud iam service-accounts add-iam-policy-binding \ my-sa-webserver@my-project.s3ns.iam.gserviceaccount.com \ --member='user:web-dev@example.com' \ --role='roles/iam.serviceAccountUser'בעל הפרויקט מקצה למפתח מסד הנתונים
db-dev@example.comאת התפקיד משתמש בחשבון שירות (serviceAccountUser) בחשבון השירותmy-sa-databaseבאמצעות הגדרת מדיניות IAM.gcloud iam service-accounts add-iam-policy-binding \ my-sa-database@my-project.s3ns.iam.gserviceaccount.com \ --member='user:db-dev@example.com' \ --role='roles/iam.serviceAccountUser'המפתח
web-dev@example.com, שיש לו את התפקיד Instance admin, יוצר תבנית של הגדרות מכונה של שרת אינטרנט ומאשר למכונות להריץ את חשבון השירותmy-sa-webserver.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --service-account my-sa-webserver@my-project-123.s3ns.iam.gserviceaccount.comDeveloper
db-dev@example.com, שיש לו את התפקיד 'אדמין מכונות', יוצר את תבנית של הגדרות מכונה של מסד הנתונים ומאשר למכונות להפעיל את חשבון השירותmy-sa-database.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --service-account my-sa-database@my-project-123.s3ns.iam.gserviceaccount.comאדמין האבטחה יוצר כלל חומת אש שמאפשר תעבורת TCP ממכונות וירטואליות עם חשבון השירות
my-sa-webserverלהגיע ליציאה 1443 של מכונות וירטואליות עם חשבון השירותmy-sa-database.gcloud compute firewall-rules create RULE_NAME \ --network network_a \ --allow TCP:1443 \ --source-service-accounts my-sa-webserver@my-project.s3ns.iam.gserviceaccount.com \ --target-service-accounts my-sa-database@my-project.s3ns.iam.gserviceaccount.com
פתרון בעיות
הודעות שגיאה כשיוצרים או מעדכנים כלל לחומת אש של VPC
יכול להיות שתופיע אחת מהודעות השגיאה הבאות:
Should not specify destination range for ingress direction.טווחים של כתובות יעד הם לא פרמטרים תקינים לכללי חומת אש של תעבורת נכנסת. כללי חומת אש נחשבים לכללי תנועה נכנסת, אלא אם מצוין כיוון ספציפי של
EGRESS. אם יוצרים כלל שלא מצוין בו כיוון, הוא נוצר ככלל כניסה שלא מאפשר טווח יעד. בנוסף, טווחים של מקורות הם לא פרמטרים תקינים לכללי יציאה.Firewall direction cannot be changed once created.אי אפשר לשנות את הכיוון של כלל חומת אש קיים. צריך ליצור כלל חדש עם הפרמטרים הנכונים, ואז למחוק את הכלל הישן.
Firewall traffic control action cannot be changed once created.אי אפשר לשנות את הפעולה של כלל חומת אש קיים. צריך ליצור כלל חדש עם הפרמטרים הנכונים, ואז למחוק את הכלל הישן.
Service accounts must be valid RFC 822 email addresses.חשבון השירות שצוין בכלל חומת האש צריך להיות כתובת אימייל בפורמט שמוגדר ב-RFC 822.gcloud compute firewall-rules create bad --allow tcp --source-service-accounts invalid-email
Creating firewall...failed. ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: – Invalid value for field 'resource.sourceServiceAccounts[0]': 'invalid-email'. Service accounts must be valid RFC 822 email addresses.
ServiceAccounts and Tags are mutually exclusive and can't be combined in the same firewall rule.אי אפשר לציין גם חשבונות שירות וגם תגים באותו כלל.gcloud compute firewall-rules create bad --allow tcp --source-service-accounts test@google.com --target-tags target
Creating firewall...failed. ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: – ServiceAccounts and Tags are mutually exclusive and can't be combined in the same firewall rule.
השגיאה 'המשאב לא נמצא'
כשמוחקים רשת VPC או כלל חומת אש, יכול להיות שתופיע הודעה דומה להודעה הבאה:
The resource "aet-uscentral1-subnet--1-egrfw" was not found.
השגיאה הזו יכולה למנוע מכם למחוק כלל חומת אש משתמע או לצפות בפרטים שלו. כלל חומת אש שנמצא במצב הזה יכול גם לחסום אתכם ממחיקת רשת VPC.
כדי למחוק כלל חומת אש או רשת שנחסמו בצורה הזו, צריך קודם למחוק את מחבר הגישה ל-VPC ללא שרתים שמשויך אליהם, ואז לנסות שוב. מידע נוסף על מחיקה של מחבר Serverless VPC Access
שגיאה: יש יותר מדי חומות אש גדולות
יכול להיות שתופיע הודעת השגיאה הבאה:
Google Compute Engine: The network contains too many large firewalls.
כדי לשמור על הבטיחות ועל הביצועים, יש מגבלה על המורכבות ועל מספר כללי חומת האש שאפשר להטמיע ברשת VPC. אם הודעת השגיאה הזו מוצגת, צריך לבקש מצוות ניהול החשבון לפשט או לאחד את הכללים של חומת האש.
אי אפשר להתחבר למכונת VM
אם אתם לא מצליחים להתחבר למופע של מכונה וירטואלית, כדאי לבדוק את כללי חומת האש.
gcloud
אם אתם יוזמים את החיבור ממופע אחר של מכונת VM, עליכם לרשום את כללי חומת האש ליציאה של המופע הזה.
gcloud compute firewall-rules list --filter network=NETWORK_NAME \ --filter EGRESS \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, sourceServiceAccounts.list():label=SRC_SVC_ACCT, targetTags.list():label=TARGET_TAGS, targetServiceAccounts.list():label=TARGET_SVC_ACCT )"מחליפים את
NETWORK_NAMEבשם הרשת.בודקים אם כתובת ה-IP של היעד נדחית על ידי כללי יציאה. הכלל עם העדיפות הגבוהה ביותר (מספר העדיפות הנמוך ביותר) מבטל כללים עם עדיפות נמוכה יותר. אם לשני כללים יש אותה עדיפות, כלל הדחייה מקבל עדיפות.
בודקים את כלל חומת האש של התנועה הנכנסת ברשת שמכילה את מופע המכונה הווירטואלית של היעד.
gcloud compute firewall-rules list --filter network=NETWORK_NAME \ --filter INGRESS \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, sourceServiceAccounts.list():label=SRC_SVC_ACCT, targetTags.list():label=TARGET_TAGS, targetServiceAccounts.list():label=TARGET_SVC_ACCT )"מחליפים את
NETWORK_NAMEבשם הרשת.פלט לדוגמה. הפלט שתקבלו יהיה תלוי ברשימת הכללים של חומת האש.
NAME NETWORK DIRECTION PRIORITY SRC_RANGES DEST_RANGES ALLOW DENY SRC_TAGS SRC_SVC_ACCT TARGET_TAGS TARGET_SVC_ACCT default-allow-icmp default INGRESS 65534 0.0.0.0/0 icmp default-allow-internal default INGRESS 65534 10.128.0.0/9 tcp:0-65535,udp:0-65535,icmp default-allow-rdp default INGRESS 65534 0.0.0.0/0 tcp:3389 default-allow-ssh default INGRESS 65534 0.0.0.0/0 tcp:22 firewall-with-sa default INGRESS 1000 tcp:10000 test1@google.com target@google.com
אפשר גם להריץ בדיקות קישוריות אל מכונות וירטואליות ברשת VPC או מרשת VPC לרשת ענן אחרת שאינה של Google, כדי לפתור בעיות שקשורות לתעבורת נתונים שנחסמת על ידי כללים של חומת האש לתעבורה נכנסת או יוצאת. במאמר הרצת בדיקות קישוריות מוסבר איך להריץ את בדיקות הקישוריות כדי לפתור בעיות בתרחישים שונים.
האם כלל חומת האש ב-VPC מופעל או מושבת?
כדי לראות אם כלל של חומת אש מופעל או מושבת, אפשר לעיין בפרטים של כללי חומת האש.
ב Cloud de Confiance console, מחפשים את האפשרות מופעל או מושבת בקטע אכיפה.
בפלט של ה-CLI של gcloud, מחפשים את השדה disabled.
אם מופיע הערך disabled:false, הכלל מופעל ונאכף. אם כתוב disabled: true, הכלל מושבת.
איזה כלל מוחל על מכונה וירטואלית?
אחרי שיוצרים כלל, אפשר לבדוק אם הוא מוחל בצורה נכונה על מופע מסוים. מידע נוסף זמין במאמר בנושא הצגת הכללים של חומת האש לממשק רשת של מופע VM.
כללי חומת אש ב-VPC עם תגי מקור לא נכנסים לתוקף באופן מיידי
יכול להיות שיעבור זמן עד שכללי חומת אש לתעבורת נתונים נכנסת שמשתמשים בתגי מקור יופצו. פרטים נוספים זמינים במאמר בנושא שיקולים שקשורים לתגי מקור עבור כללי חומת אש של תעבורת נכנסת.