בדף הזה מוסבר על הפקודות שמשמשות לעבודה עם כללי חומת האש של ענן וירטואלי פרטי (VPC), ומוצגות כמה דוגמאות לשימוש בהן. כללי חומת אש של VPC מאפשרים תעבורה או מונעים אותה ממכונות וירטואליות (VM) ברשת VPC או אליהן, על סמך מספר היציאה, התג או הפרוטוקול.
לפני שמתחילים
למידע נוסף על כללי חומת אש ב-VPC, כמו כללים משתמעים וכללים שנוצרו על ידי המערכת עבור רשתות ברירת מחדל, אפשר לעיין במאמר בנושא כללי חומת אש ב-VPC.
לפני שמגדירים כללי חומת אש, כדאי לעיין ברכיבים של כללי חומת אש כדי להכיר את רכיבי חומת האש שמשמשים ב- Google Cloud.
יצירת כללים לחומת האש ב-VPC
כללי חומת אש של VPC מוגדרים ברמת הרשת, והם חלים רק על הרשת שבה הם נוצרו. עם זאת, השם שבוחרים לכל אחד מהם צריך להיות ייחודי לפרויקט.
כלל חומת אש יכול להכיל טווחים של כתובות IPv4 או IPv6, אבל לא את שניהם.
כשיוצרים כלל לחומת האש, אפשר להפעיל את האפשרות 'רישום ביומן של כללים לחומת האש'. אם מפעילים את הרישום ביומן, אפשר להשמיט שדות של מטא-נתונים כדי לחסוך בעלויות האחסון. מידע נוסף זמין במאמר בנושא שימוש ברישום ביומן של כללים של חומת אש ב-VPC.
אם רוצים לציין כמה חשבונות שירות בשדה של חשבון השירות של היעד או המקור, צריך להשתמש ב-Google Cloud CLI, ב-API או בספריות הלקוח.
רשת ברירת המחדל מספקת כללים אוטומטיים של חומת אש בזמן היצירה. אם אתם משתמשים במסוף Google Cloud , רשתות בהתאמה אישית ורשתות במצב אוטומטי מאפשרות לכם ליצור בקלות חומות אש דומות במהלך יצירת הרשת. אם אתם משתמשים ב-CLI של gcloud או ב-API ורוצים ליצור כללים דומים של חומת אש לאלה שרשת ברירת המחדל מספקת, כדאי לעיין במאמר הגדרת כללים של חומת אש לתרחישי שימוש נפוצים.
המסוף
נכנסים לדף Firewall policies במסוף Google Cloud .
לוחצים על יצירת כלל לחומת האש.
מזינים שם לכלל חומת האש.
השם הזה חייב להיות ייחודי בפרויקט.
(אופציונלי) אפשר להפעיל רישום ביומן של כללים לחומת האש:
- לוחצים על יומנים > מופעל.
- כדי להשמיט מטא-נתונים, לוחצים על הצגת פרטי היומנים ומבטלים את הסימון של תיבת הסימון הכללת מטא-נתונים.
מציינים את הרשת עבור כלל חומת האש.
מציינים את העדיפות של הכלל.
ככל שהמספר נמוך יותר, כך העדיפות גבוהה יותר.
בשדה כיוון התנועה, בוחרים באפשרות 'תעבורת נתונים נכנסת' או 'תעבורת נתונים יוצאת'.
בקטע פעולה בהתאמה, בוחרים באפשרות 'אישור' או 'דחייה'.
מציינים את היעדים של הכלל.
- אם רוצים שהכלל יחול על כל המקרים ברשת, בוחרים באפשרות כל המקרים ברשת.
- אם רוצים שהכלל יחול על מקרים נבחרים לפי תגי רשת (תגי טירגוט), בוחרים באפשרות תגי טירגוט ספציפיים, ואז בשדה תגי טירגוט מקלידים את התגים שהכלל צריך לחול עליהם.
- אם רוצים שהכלל יחול על מקרים נבחרים לפי חשבון השירות המשויך, בוחרים באפשרות 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 בטווח המקור.
כדי לציין טווחים של כתובות IPv4 או IPv6 בפורמט CIDR, משתמשים ב-
--source-rangesכדי לחדד את המקור של כלל היציאה. אם לא מציינים את--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, אבל לא שילוב של שניהם.
אם לא מציינים יעד, Google Cloud משתמש ב-0.0.0.0/0. מידע נוסף זמין במאמרים בנושא יעדים לכללי תעבורה נכנסת וכתובות IP ויעדים לכללי תעבורה נכנסת.
לכלל חומת אש לתעבורת נתונים יוצאת, מציינים את המקור והיעד של התעבורה היוצאת:
משתמשים בשדה
sourceRangesכדי לציין את מקור היציאה.sourceRangeיכול להיות טווח של כתובות IPv4 או IPv6, אבל לא שילוב של שניהם.
אם לא מציינים מקור, Google Cloud המערכת משתמשת בערך0.0.0.0/0. מידע נוסף זמין במאמרים בנושא מקורות לכללי תעבורה יוצאת וכתובות IP וכתובות יעד לכללי תעבורה יוצאת.משתמשים בשדה
destinationRangesכדי לציין את היעד. destinationRangesיכול להיות טווח של כתובות IPv4 או IPv6, אבל לא שילוב של שניהם.
אם לא מציינים יעד, Google Cloudהמערכת משתמשת ב-0.0.0.0/0. משתמשים בשדהtargetTagsאוtargetServiceAccountsכדי לציין על אילו יעדים הכלל חל. אם לא מציינים שדה יעד, הכלל חל על כל היעדים ברשת.
מידע נוסף ותיאורים של כל שדה זמינים בשיטה firewalls.insert.