בדף הזה נסביר איך להשתמש בחיבור לרשת (VPC) מאפליקציית serverless כדי לחבר את שירותי App Engine בסביבה הרגילה ישירות לרשת ה-VPC, וכך לאפשר גישה למופעי מכונות וירטואליות של Compute Engine, למופעי Memorystore ולכל משאב אחר עם כתובת IP פנימית.
לפני שמתחילים
אם עדיין אין לכם רשת VPC בפרויקט, צריך ליצור אחת.
אם אתם משתמשים ב-VPC משותף, כדאי לעיין במאמר בנושא התחברות לרשת VPC משותפת.
במסוף Google Cloud , מוודאים ש-Serverless VPC Access API מופעל בפרויקט.
יצירת מחבר של חיבור לרשת (VPC) מאפליקציית serverless
כדי לשלוח בקשות לרשת ה-VPC ולקבל את התשובות המתאימות בלי להשתמש באינטרנט הציבורי, אפשר להשתמש במחבר Serverless VPC Access.
אם המחבר נמצא באותו פרויקט כמו רשת ה-VPC שלו, אפשר ליצור מחבר באמצעות רשת משנה קיימת או ליצור מחבר ורשת משנה חדשה.
אם המחבר נמצא בפרויקט שירות ומשתמש ברשת VPC משותפת, המחבר ורשת ה-VPC המשויכת שלו נמצאים בפרויקטים שונים. אם המחבר ורשת ה-VPC שלו נמצאים בפרויקטים שונים, מנהל רשת ה-VPC המשותפת צריך ליצור את רשת המשנה של המחבר ברשת ה-VPC המשותפת לפני שיוצרים את המחבר, וצריך ליצור את המחבר באמצעות רשת משנה קיימת.
מידע נוסף על הדרישות בנושא רשתות משנה זמין במאמר בנושא דרישות רשת המשנה של מחבר.
מידע על קצב העברת הנתונים של המחבר, כולל סוג המכונה והתאמת קנה המידה, זמין במאמר בנושא קצב העברת נתונים והתאמת קנה מידה.
אפשר ליצור מחבר באמצעות מסוף Google Cloud , Google Cloud CLI או Terraform.
המסוף
עוברים לדף הסקירה הכללית של חיבור לרשת (VPC) מאפליקציית serverless.
לוחצים על יצירת מחבר.
בשדה שם, מזינים שם למחבר בהתאם למוסכמות למתן שמות ב-Compute Engine, עם הדרישות הנוספות הבאות: השם צריך להיות באורך של פחות מ-21 תווים, ומקפים (-) נספרים כשני תווים.
בשדה Region (אזור), בוחרים אזור למחבר. האזור הזה צריך להיות זהה לאזור של השירות בלי שרת (serverless).
בשדה רשת, בוחרים את רשת ה-VPC שאליה רוצים לצרף את המחבר.
בשדה Subnet, בוחרים באחת מהאפשרויות הבאות:
יצירת מחבר באמצעות רשת משנה קיימת: בוחרים את רשת המשנה הקיימת בשדה Subnet (רשת משנה).
יצירת מחבר ורשת משנה חדשה: בוחרים באפשרות טווח כתובות IP בהתאמה אישית בשדה רשת משנה. לאחר מכן, מזינים את הכתובת הראשונה ב-
/28CIDR שלא נמצא בשימוש (לדוגמה,10.8.0.0/28) כדי להשתמש בה כטווח הכתובות הראשי של IPv4 ברשת משנה חדשה שנוצרת ברשת ה-VPC של המחבר. Google Cloud מוודאים שטווח כתובות ה-IP לא מתנגש עם נתיבים קיימים ברשת ה-VPC של המחבר. השם של רשת המשנה החדשה מתחיל בקידומת 'aet-'.
(אופציונלי) כדי להגדיר אפשרויות שינוי גודל לשליטה נוספת במחבר, לוחצים על הצגת הגדרות שינוי גודל כדי להציג את טופס שינוי הגודל.
- מגדירים את מספר המכונות המינימלי והמקסימלי למחבר, או משתמשים בערכי ברירת המחדל: 2 (מינימום) ו-10 (מקסימום). המחבר מתרחב עד למקסימום שצוין אם השימוש בתנועה דורש זאת, אבל המחבר לא מצטמצם כשהתנועה פוחתת. חובה להשתמש בערכים בין
2ל-10. - בתפריט Instance Type (סוג האינסטנס), בוחרים את סוג המכונה שבה רוצים להשתמש עבור המחבר, או משתמשים בברירת המחדל
e2-micro. שימו לב לסרגל הצד של העלויות בצד שמאל כשבוחרים את סוג המופע, שבו מוצגים רוחב הפס ואומדני העלויות.
- מגדירים את מספר המכונות המינימלי והמקסימלי למחבר, או משתמשים בערכי ברירת המחדל: 2 (מינימום) ו-10 (מקסימום). המחבר מתרחב עד למקסימום שצוין אם השימוש בתנועה דורש זאת, אבל המחבר לא מצטמצם כשהתנועה פוחתת. חובה להשתמש בערכים בין
לוחצים על יצירה.
כשמחבר מוכן לשימוש, יופיע סימן וי ירוק ליד השם שלו.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
מעדכנים את הרכיבים של
gcloudלגרסה האחרונה:gcloud components update
מוודאים ש-Serverless VPC Access API מופעל בפרויקט:
gcloud services enable vpcaccess.googleapis.com
יוצרים את המחבר באחת מהדרכים הבאות:
פרטים נוספים וארגומנטים אופציונליים מופיעים במאמר
gcloud.יצירת מחבר באמצעות רשת משנה קיימת:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --subnet SUBNET_NAME \ --subnet-project HOST_PROJECT_ID \ --min-instances MIN \ --max-instances MAX \ --machine-type MACHINE_TYPE
מחליפים את מה שכתוב בשדות הבאים:
-
CONNECTOR_NAME: שם המחבר, בהתאם למוסכמות למתן שמות ב-Compute Engine, עם הדרישות הנוספות הבאות: השם צריך להיות באורך של פחות מ-21 תווים, ומקפים (-) נחשבים כשני תווים. REGION: אזור עבור המחבר שלך, שזהה לאזור של השירות או המשימה ללא שרת.-
SUBNET_NAME: השם של רשת המשנה הקיימת. -
HOST_PROJECT_ID: מזהה הפרויקט המארח של ה-VPC המשותף. אם המחבר ורשת המשנה הקיימת נמצאים באותו פרויקט, לא צריך להשתמש בדגל--subnet-project. -
MIN: מספר המינימום של המופעים לשימוש במחבר. צריך להשתמש במספר שלם בין2(ברירת המחדל) לבין9. -
MAX: המספר המקסימלי של מופעים לשימוש במחבר. צריך להשתמש במספר שלם בין3ל-10(ברירת המחדל). אם המחבר מתרחב למספר המקסימלי של מופעים, הוא לא יצטמצם בחזרה. -
MACHINE_TYPE: צריך להיות אחד מהערכים הבאים:f1-micro, e2-microאוe2-standard-4.
-
יצירת מחבר ורשת משנה חדשה:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --network VPC_NETWORK \ --range IP_RANGE --min-instances MIN \ --max-instances MAX \ --machine-type MACHINE_TYPE
מחליפים את מה שכתוב בשדות הבאים:
-
CONNECTOR_NAME: שם המחבר, בהתאם למוסכמות למתן שמות ב-Compute Engine, עם הדרישות הנוספות הבאות: השם צריך להיות באורך של פחות מ-21 תווים, ומקפים (-) נחשבים כשני תווים. REGION: אזור עבור המחבר שלך, שזהה לאזור של השירות או המשימה ללא שרת.-
VPC_NETWORK: השם של רשת ה-VPC שאליה רוצים לצרף את המחבר. המחבר ורשת ה-VPC צריכים להיות באותו פרויקט. -
IP_RANGE: צריך לספק/28CIDR שלא נמצא בשימוש (לדוגמה,10.8.0.0/28) כדי להשתמש בו כטווח כתובות ה-IPv4 הראשי של רשת משנה חדשה שנוצרת ברשת ה-VPC של המחבר. Google Cloud מוודאים שטווח כתובות ה-IP לא מתנגש עם נתיבים קיימים ברשת ה-VPC של המחבר. השם של רשת המשנה החדשה מתחיל בקידומת 'aet-'. -
MIN: מספר המינימום של המופעים לשימוש במחבר. צריך להשתמש במספר שלם בין2(ברירת המחדל) לבין9. -
MAX: המספר המקסימלי של מופעים לשימוש במחבר. צריך להשתמש במספר שלם בין3ל-10(ברירת המחדל). אם המחבר מתרחב למספר המקסימלי של מופעים, הוא לא יצטמצם בחזרה. -
MACHINE_TYPE: צריך להיות אחד מהערכים הבאים:f1-micro, e2-microאוe2-standard-4.
-
לפני שמשתמשים במחבר, צריך לוודא שהוא במצב
READY:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region REGION
מחליפים את מה שכתוב בשדות הבאים:
-
CONNECTOR_NAME: השם של המחבר. זה השם שציינתם בשלב הקודם. -
REGION: האזור של המחבר. זהו האזור שציינתם בשלב הקודם.
הפלט צריך לכלול את השורה
state: READY.-
Terraform
אפשר להשתמש במשאב של Terraform כדי להפעיל את vpcaccess.googleapis.com API.
אתם יכולים להשתמש במודולים של Terraform כדי ליצור רשת VPC ותת-רשת, ואז ליצור את המחבר.
הגדרת השירות לשימוש במחבר
אחרי שיוצרים מחבר Serverless VPC Access, צריך להגדיר כל שירות באפליקציית App Engine שרוצים לחבר לרשת ה-VPC.
כדי לציין מחבר לשירות באפליקציה:
מוסיפים את השדה
vpc_access_connectorלקובץapp.yamlשל השירות:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
כאשר
PROJECT_IDהוא מזהה הפרויקט, Google CloudREGIONהוא האזור שבו נמצא המחבר ו-CONNECTOR_NAMEהוא שם המחבר.פורסים את השירות:
gcloud app deploy
אחרי שפורסים את השירות, הוא יכול לשלוח בקשות לכתובות IP פנימיות כדי לגשת למשאבים ברשת ה-VPC.
גישה למשאבי VPC
כללי חומת אש שנדרשים למחברים בפרויקטים של שירותים
אם יוצרים מחבר ברשת VPC עצמאית או בפרויקט המארח של רשת VPC משותפת, Google Cloud יוצר את כל כללי חומת האש שנדרשים להפעלת המחבר. מידע נוסף זמין במאמר כללי חומת אש למחברים ברשתות VPC עצמאיות או בפרויקטים מארחים של VPC משותף.
עם זאת, אם יוצרים מחבר בפרויקט שירות והמחבר מכוון לרשת VPC משותפת בפרויקט המארח, צריך להוסיף כללי חומת אש כדי לאפשר את התעבורה הדרושה להפעלת המחבר מהטווחים הבאים:
- טווח כתובות ה-IP של התשתית בלי שרת (serverless):
35.199.224.0/19 - טווחי כתובות ה-IP של בדיקת התקינות:
35.191.0.0/16,35.191.192.0/18ו-130.211.0.0/22
הטווחים האלה משמשים את התשתית של Google שמהווה בסיס ל-Cloud Run, לפונקציות Cloud Run ולסביבה הרגילה של App Engine. כל הבקשות מכתובות ה-IP האלה מגיעות מהתשתית של Google, כדי לוודא שכל משאב בלי שרת (serverless) מתקשר רק עם המחבר שאליו הוא מחובר.
בנוסף, צריך לאפשר תנועה מרשת המשנה של המחבר למשאבים ברשת ה-VPC.
כדי לבצע את השלבים האלה, צריך להיות לכם אחד מהתפקידים הבאים בפרויקט המארח:
- תפקיד בעלים (
roles/owner) - התפקיד אדמין לענייני אבטחה ב-Compute (
roles/compute.securityAdmin) - תפקיד ניהול זהויות והרשאות גישה (IAM) בהתאמה אישית עם ההרשאה
compute.firewalls.createמופעלת
בהגדרה בסיסית, מחילים את הכללים כדי לאפשר למשאבי serverless בכל פרויקט שירות שמחובר לרשת ה-VPC המשותפת לשלוח בקשות לכל משאב ברשת.
כדי להחיל את הכללים האלה, מריצים את הפקודות הבאות בפרויקט המארח:
יוצרים כללים של חומת אש שמאפשרים לבקשות מהתשתית חסרת השרתים של Google ולבדיקות תקינות להגיע לכל המחברים ברשת. בפקודות האלה, יציאות ה-UDP וה-TCP משמשות כשרתי proxy ולבדיקות תקינות של HTTP, בהתאמה. אל תשנו את היציאות שצוינו.
gcloud compute firewall-rules create serverless-to-vpc-connector \ --allow tcp:667,udp:665-666,icmp \ --source-ranges=35.199.224.0/19 \ --direction=INGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
gcloud compute firewall-rules create vpc-connector-to-serverless \ --allow tcp:667,udp:665-666,icmp \ --destination-ranges=35.199.224.0/19 \ --direction=EGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
gcloud compute firewall-rules create vpc-connector-health-checks \ --allow tcp:667 \ --source-ranges=35.191.0.0/16,35.191.192.0/18,130.211.0.0/22 \ --direction=INGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
מחליפים את
VPC_NETWORKבשם של רשת ה-VPC שאליה רוצים לצרף את המחבר.יוצרים כלל חומת אש לתעבורה נכנסת ברשת ה-VPC כדי לאפשר בקשות ממחברים שמכוונים לרשת הזו:
gcloud compute firewall-rules create vpc-connector-requests \ --allow tcp,udp,icmp \ --direction=INGRESS \ --source-tags vpc-connector \ --network=VPC_NETWORK
הכלל הזה מעניק למחבר גישה לכל משאב ברשת. כדי להגביל את המשאבים שאליהם סביבת ה-serverless יכולה להגיע באמצעות חיבור לרשת (VPC) מאפליקציית serverless, אפשר לעיין במאמר בנושא הגבלת הגישה של מכונות וירטואליות של מחברים למשאבי רשת VPC.
יצירת כללים לחומת האש למחברים ספציפיים
אם פועלים לפי התהליך במאמר כללי חומת אש שנדרשים למחברים בפרויקטים של שירותים, כללי חומת האש יחולו על כל המחברים, גם על אלה שקיימים וגם על אלה שייווצרו בעתיד. אם אתם לא רוצים את זה, אלא רוצים ליצור כללים רק למחברים ספציפיים, אתם יכולים להגדיר את היקף הכללים כך שהם יחולו רק על המחברים האלה.
כדי להגביל את היקף הכללים למחברים ספציפיים, אפשר להשתמש באחד מהמנגנונים הבאים:
- תגי רשת: לכל מחבר יש שני תגי רשת:
vpc-connectorו-vpc-connector-REGION-CONNECTOR_NAME. כדי להגביל את ההיקף של כללי חומת האש למחבר ספציפי, צריך להשתמש בפורמט השני. - טווחים של כתובות IP: אפשר להשתמש באפשרות הזו רק בכללי יציאה, כי היא לא פועלת בכללי כניסה. אתם יכולים להשתמש בטווח כתובות ה-IP של רשת המשנה של המחבר כדי להגביל את ההיקף של כללי חומת האש למחבר VPC יחיד.
הגבלת הגישה של מכונות וירטואליות של מחברים למשאבי רשת VPC
אתם יכולים להגביל את הגישה של המחבר למשאבים ברשת ה-VPC של היעד באמצעות כללי חומת אש של VPC או כללים במדיניות חומת אש. אפשר להגביל את הגישה באמצעות אחת מהאסטרטגיות הבאות:
- יוצרים כללי תעבורת נתונים נכנסת (ingress) שהיעדים שלהם מייצגים את המשאבים שרוצים להגביל את הגישה של VM של מחברים אליהם, והמקורות שלהם מייצגים את ה-VM של המחברים.
- יוצרים כללי תעבורת נתונים יוצאת (egress) שהיעדים שלהם מייצגים את מכונות ה-VM של המחבר, והיעדים שלהם מייצגים את המשאבים שרוצים להגביל את הגישה של מכונות ה-VM של המחבר אליהם.
הדוגמאות הבאות ממחישות כל אסטרטגיה.
הגבלת הגישה באמצעות כללי Ingress
כדי לשלוט בתעבורה הנכנסת לרשת ה-VPC, בוחרים באפשרות תגי רשת או בטווחים של CIDR.
תגים ברשת
השלבים הבאים מראים איך ליצור כללי Ingress שמגבילים את הגישה של מחבר לרשת VPC על סמך תגי הרשת של המחבר.
מוודאים שיש לכם את ההרשאות הנדרשות להוספת כללי חומת אש. אתם צריכים להיות בעלי אחד מהתפקידים הבאים בניהול זהויות והרשאות גישה (IAM):
- תפקיד אדמין לענייני אבטחה ב-Compute
- תפקיד IAM בהתאמה אישית עם ההרשאה
compute.firewalls.createמופעלת
דחיית תנועת נתונים של מחבר ברשת ה-VPC.
יוצרים כלל חומת אש לדחיית תעבורת נתונים נכנסת (ingress) עם עדיפות נמוכה מ-1000 ברשת ה-VPC, כדי לדחות תעבורת נתונים נכנסת מהתג של רשת המחברים. ההגדרה הזו מבטלת את כלל חומת האש המרומז שנוצר כברירת מחדל ב-VPC שלכם על ידי Serverless VPC Access.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
מחליפים את מה שכתוב בשדות הבאים:
RULE_NAME: השם של כלל חומת האש החדש. לדוגמה,
deny-vpc-connector.PROTOCOL: פרוטוקול אחד או יותר שרוצים לאפשר ממחבר ה-VPC. הפרוטוקולים הנתמכים הם
tcpאוudp. לדוגמה,tcp:80,udpמאפשר תעבורת TCP דרך יציאה 80 ותעבורת UDP. מידע נוסף זמין במאמרי העזרה בנושא הדגלallow.למטרות אבטחה ואימות, אפשר גם להגדיר כללי דחייה כדי לחסום תנועה עבור הפרוטוקולים הבאים שלא נתמכים:
ah,all,esp,icmp,ipipו-sctp.VPC_CONNECTOR_NETWORK_TAG: תג הרשת של המחבר האוניברסלי אם רוצים להגביל את הגישה לכל המחברים (כולל מחברים שייווצרו בעתיד), או תג הרשת הייחודי אם רוצים להגביל את הגישה למחבר ספציפי.
- תג רשת אוניברסלי:
vpc-connector תג רשת ייחודי:
vpc-connector-REGION-CONNECTOR_NAMEמחליפים את:
- REGION: האזור של המחבר שרוצים להגביל
- CONNECTOR_NAME: השם של מחבר שרוצים להגביל
מידע נוסף על תגי רשת של מחברים זמין במאמר בנושא תגי רשת.
- תג רשת אוניברסלי:
VPC_NETWORK: השם של רשת ה-VPC
PRIORITY: מספר שלם בין 0 ל-65535. לדוגמה, 0 מגדיר את העדיפות הגבוהה ביותר.
מאפשרים לתנועה של מחברים להגיע למשאב שאליו אמורה להגיע תנועה של מחברים.
משתמשים בדגלים
allowו-target-tagsכדי ליצור כלל חומת אש לתעבורת נתונים נכנסת שמטרגט את המשאב ברשת ה-VPC שרוצים שהמחבר של ה-VPC יקבל אליו גישה. מגדירים את העדיפות של הכלל הזה לערך נמוך יותר מהעדיפות של הכלל שיצרתם בשלב הקודם.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
מחליפים את מה שכתוב בשדות הבאים:
RULE_NAME: השם של כלל חומת האש החדש. לדוגמה,
allow-vpc-connector-for-select-resources.PROTOCOL: פרוטוקול אחד או יותר שרוצים לאפשר ממחבר ה-VPC. הפרוטוקולים הנתמכים הם
tcpאוudp. לדוגמה,tcp:80,udpמאפשר תעבורת TCP דרך יציאה 80 ותעבורת UDP. מידע נוסף זמין במאמרי העזרה בנושא הדגלallow.VPC_CONNECTOR_NETWORK_TAG: תג הרשת של המחבר האוניברסלי אם רוצים להגביל את הגישה לכל המחברים (כולל מחברים שייווצרו בעתיד), או תג הרשת הייחודי אם רוצים להגביל את הגישה למחבר ספציפי. המספר הזה צריך להיות זהה למספר התג של הרשת שציינתם בשלב הקודם.
- תג רשת אוניברסלי:
vpc-connector תג רשת ייחודי:
vpc-connector-REGION-CONNECTOR_NAMEמחליפים את:
- REGION: האזור של המחבר שרוצים להגביל
- CONNECTOR_NAME: השם של מחבר שרוצים להגביל
מידע נוסף על תגי רשת של מחברים זמין במאמר בנושא תגי רשת.
- תג רשת אוניברסלי:
VPC_NETWORK: השם של רשת ה-VPC
RESOURCE_TAG: תג הרשת של משאב ה-VPC שרוצים שמחבר ה-VPC יקבל אליו גישה
PRIORITY: מספר שלם שקטן מהעדיפות שהגדרתם בשלב הקודם. לדוגמה, אם הגדרתם את העדיפות של הכלל שיצרתם בשלב הקודם ל-990, נסו להגדיר אותה ל-980.
מידע נוסף על הדגלים הנדרשים והאופציונליים ליצירת כללים של חומת אש זמין במאמרי העזרה בנושא gcloud compute firewall-rules create.
טווח CIDR
השלבים הבאים מראים איך ליצור כללי Ingress שמגבילים את הגישה של מחבר לרשת VPC על סמך טווח ה-CIDR של המחבר.
מוודאים שיש לכם את ההרשאות הנדרשות להוספת כללי חומת אש. אתם צריכים להיות בעלי אחד מהתפקידים הבאים בניהול זהויות והרשאות גישה (IAM):
- תפקיד אדמין לענייני אבטחה ב-Compute
- תפקיד IAM בהתאמה אישית עם ההרשאה
compute.firewalls.createמופעלת
דחיית תנועת נתונים של מחבר ברשת ה-VPC.
יוצרים כלל חומת אש לתנועה נכנסת עם עדיפות נמוכה מ-1000 ברשת ה-VPC כדי לחסום תנועה נכנסת מטווח ה-CIDR של המחבר. ההגדרה הזו מבטלת את כלל חומת האש המרומז שנוצר כברירת מחדל ב-VPC שלכם על ידי Serverless VPC Access.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
מחליפים את מה שכתוב בשדות הבאים:
RULE_NAME: השם של כלל חומת האש החדש. לדוגמה,
deny-vpc-connector.PROTOCOL: פרוטוקול אחד או יותר שרוצים לאפשר ממחבר ה-VPC. הפרוטוקולים הנתמכים הם
tcpאוudp. לדוגמה,tcp:80,udpמאפשר תעבורת TCP דרך יציאה 80 ותעבורת UDP. מידע נוסף זמין במאמרי העזרה בנושא הדגלallow.למטרות אבטחה ואימות, אפשר גם להגדיר כללי דחייה כדי לחסום תנועה עבור הפרוטוקולים הבאים שלא נתמכים:
ah,all,esp,icmp,ipipו-sctp.VPC_CONNECTOR_CIDR_RANGE: טווח ה-CIDR של המחבר שהגישה אליו מוגבלת
VPC_NETWORK: השם של רשת ה-VPC
PRIORITY: מספר שלם בין 0 ל-65535. לדוגמה, 0 מגדיר את העדיפות הגבוהה ביותר.
מאפשרים לתנועה של מחברים להגיע למשאב שאליו אמורה להגיע תנועה של מחברים.
משתמשים בדגלים
allowו-target-tagsכדי ליצור כלל חומת אש לתעבורת נתונים נכנסת שמטרגט את המשאב ברשת ה-VPC שרוצים שהמחבר של ה-VPC יקבל אליו גישה. מגדירים את העדיפות של הכלל הזה לערך נמוך יותר מהעדיפות של הכלל שיצרתם בשלב הקודם.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
מחליפים את מה שכתוב בשדות הבאים:
RULE_NAME: השם של כלל חומת האש החדש. לדוגמה,
allow-vpc-connector-for-select-resources.PROTOCOL: פרוטוקול אחד או יותר שרוצים לאפשר ממחבר ה-VPC. הפרוטוקולים הנתמכים הם
tcpאוudp. לדוגמה,tcp:80,udpמאפשר תעבורת TCP דרך יציאה 80 ותעבורת UDP. מידע נוסף זמין במאמרי העזרה בנושא הדגלallow.VPC_CONNECTOR_CIDR_RANGE: טווח ה-CIDR של המחבר שהגישה אליו מוגבלת
VPC_NETWORK: השם של רשת ה-VPC
RESOURCE_TAG: תג הרשת של משאב ה-VPC שרוצים שמחבר ה-VPC יקבל אליו גישה
PRIORITY: מספר שלם שקטן מהעדיפות שהגדרתם בשלב הקודם. לדוגמה, אם הגדרתם את העדיפות של הכלל שיצרתם בשלב הקודם ל-990, נסו להגדיר אותה ל-980.
למידע נוסף על הדגלים הנדרשים והאופציונליים ליצירת כללים של חומת אשgcloud compute firewall-rules create
הגבלת הגישה באמצעות כללים לתעבורת נתונים יוצאת (egress)
בשלבים הבאים מוסבר איך ליצור כללי יציאה כדי להגביל את הגישה למחבר.
מוודאים שיש לכם את ההרשאות הנדרשות להוספת כללי חומת אש. אתם צריכים להיות בעלי אחד מהתפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):
- תפקיד אדמין לענייני אבטחה ב-Compute
- תפקיד IAM בהתאמה אישית עם ההרשאה
compute.firewalls.createמופעלת
דחיית תעבורת נתונים יוצאת (egress) מהמחבר.
יוצרים כלל חומת אש לתעבורת נתונים יוצאת במחבר Serverless VPC Access כדי למנוע ממנו לשלוח תעבורת נתונים יוצאת לכל יעד, למעט תגובות שנוצרו.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --direction=EGRESS \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --network=VPC_NETWORK \ --priority=PRIORITY
מחליפים את מה שכתוב בשדות הבאים:
RULE_NAME: השם של כלל חומת האש החדש. לדוגמה,
deny-vpc-connector.PROTOCOL: פרוטוקול אחד או יותר שרוצים לאפשר ממחבר ה-VPC. הפרוטוקולים הנתמכים הם
tcpאוudp. לדוגמה,tcp:80,udpמאפשר תעבורת TCP דרך יציאה 80 ותעבורת UDP. מידע נוסף זמין במאמרי העזרה בנושא הדגלallow.למטרות אבטחה ואימות, אפשר גם להגדיר כללי דחייה כדי לחסום תנועה עבור הפרוטוקולים הבאים שלא נתמכים:
ah,all,esp,icmp,ipipו-sctp.VPC_CONNECTOR_NETWORK_TAG: תג הרשת של מחבר ה-VPC האוניברסלי, אם רוצים שהכלל יחול על כל מחברי ה-VPC הקיימים ועל כל מחברי ה-VPC שייווצרו בעתיד. או תג הרשת הייחודי של מחבר ה-VPC אם רוצים לשלוט במחבר ספציפי.
VPC_NETWORK: השם של רשת ה-VPC
PRIORITY: מספר שלם בין 0 ל-65535. לדוגמה, 0 מגדיר את העדיפות הגבוהה ביותר.
מאפשרים תנועת יציאה כשהיעד נמצא בטווח ה-CIDR שרוצים שהמחבר יקבל אליו גישה.
משתמשים בדגלים
allowו-destination-rangesכדי ליצור כלל חומת אש שמאפשר תעבורת נתונים יוצאת מהמחבר לטווח יעד ספציפי. מגדירים את טווח היעד לטווח ה-CIDR של המשאב ברשת ה-VPC שרוצים שהמחבר יוכל לגשת אליו. מגדירים את העדיפות של הכלל הזה לערך נמוך יותר מהעדיפות של הכלל שיצרתם בשלב הקודם.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --destination-ranges=RESOURCE_CIDR_RANGE \ --direction=EGRESS \ --network=VPC_NETWORK \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --priority=PRIORITY
מחליפים את מה שכתוב בשדות הבאים:
RULE_NAME: השם של כלל חומת האש החדש. לדוגמה,
allow-vpc-connector-for-select-resources.PROTOCOL: פרוטוקול אחד או יותר שרוצים לאפשר ממחבר ה-VPC. הפרוטוקולים הנתמכים הם
tcpאוudp. לדוגמה,tcp:80,udpמאפשר תעבורת TCP דרך יציאה 80 ותעבורת UDP. מידע נוסף זמין במאמרי העזרה בנושא הדגלallow.RESOURCE_CIDR_RANGE: טווח ה-CIDR של המחבר שהגישה אליו מוגבלת
VPC_NETWORK: השם של רשת ה-VPC
VPC_CONNECTOR_NETWORK_TAG: תג הרשת של מחבר ה-VPC האוניברסלי, אם רוצים שהכלל יחול על כל מחברי ה-VPC הקיימים ועל כל מחברי ה-VPC שייווצרו בעתיד. או תג הרשת הייחודי של מחבר ה-VPC אם רוצים לשלוט במחבר ספציפי. אם השתמשתם בתג רשת ייחודי בשלב הקודם, השתמשו בתג הרשת הייחודי.
PRIORITY: מספר שלם שקטן מהעדיפות שהגדרתם בשלב הקודם. לדוגמה, אם הגדרתם את העדיפות של הכלל שיצרתם בשלב הקודם ל-990, נסו להגדיר אותה ל-980.
למידע נוסף על הדגלים הנדרשים והאופציונליים ליצירת כללים של חומת אש, אפשר לעיין במאמרי העזרה בנושא gcloud compute firewall-rules create.
ניהול המחבר
שליטה בתעבורת נתונים יוצאת משירות
כברירת מחדל, רק בקשות לכתובות IP פנימיות ולשמות DNS פנימיים מנותבות דרך מחבר של Serverless VPC Access. אפשר לציין את הגדרת תעבורת הנתונים היוצאת של השירות בקובץ app.yaml.
הגדרות תעבורת הנתונים היוצאת (egress) אינן תואמות לשירות אחזור של כתובות אתרים.
שימוש בספרייה urlfetch מתעלם מהגדרות היציאה, והבקשות לא ינותבו דרך מחבר של חיבור לרשת (VPC) מאפליקציית serverless.
כדי להגדיר את התנהגות היציאה של שירות App Engine:
מוסיפים את המאפיין
egress_settingלשדהvpc_access_connectorבקובץapp.yamlשל השירות:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME egress_setting: EGRESS_SETTING
מחליפים את:
-
PROJECT_IDבמזהה הפרויקט ב- Google Cloud -
REGIONעם האזור שבו נמצא המחבר -
CONNECTOR_NAMEבשם המחבר -
EGRESS_SETTINGעם אחת מהאפשרויות הבאות:private-ranges-onlyברירת מחדל. רק בקשות לטווחים של כתובות IP מסוג RFC 1918 ו-RFC 6598 או לשמות DNS פנימיים מנותבות לרשת ה-VPC. כל הבקשות האחרות מנותבות ישירות לאינטרנט.all-trafficכל הבקשות היוצאות מהשירות מנותבות לרשת ה-VPC. הבקשות כפופות לכללי חומת האש, ה-DNS והניתוב של רשת ה-VPC. שימו לב: ניתוב כל הבקשות היוצאות לרשת ה-VPC מגדיל את כמות התעבורה היוצאת שמטופלת על ידי המחבר של חיבור לרשת (VPC) מאפליקציית serverless, ועלול לגרור חיובים.
-
פורסים את השירות:
gcloud app deploy
ניתוק שירות מרשת VPC
כדי לנתק שירות מרשת VPC, מסירים את השדה vpc_access_connector מהקובץ app.yaml ומפעילים מחדש את השירות.
המחברים ממשיכים לצבור חיובים גם אם אין תנועה והם מנותקים. לפרטים נוספים, אפשר לעיין במחירון. אם אין לכם יותר צורך במחבר, הקפידו למחוק אותו כדי למנוע חיובים נוספים.
עדכון מחבר
אתם יכולים לעדכן ולנטר את המאפיינים הבאים של המחבר באמצעות Google Cloud המסוף, Google Cloud CLI או ה-API:
- סוג המכונה (המופע)
- מספר המופעים המינימלי והמקסימלי
- הנתונים האחרונים של קצב העברת הנתונים, מספר המופעים וניצול המעבד
עדכון סוג המכונה
המסוף
עוברים לדף הסקירה הכללית של חיבור לרשת (VPC) מאפליקציית serverless.
בוחרים את כלי החיבור שרוצים לערוך ולוחצים על עריכה.
ברשימה Instance type, בוחרים את סוג המכונה (המופע) המועדף. מידע על סוגי המכונות הזמינים מופיע במאמר בנושא תפוקה ושינוי גודל.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
כדי לעדכן את סוג המכונה של המחבר, מריצים את הפקודה הבאה בטרמינל:
מחליפים את מה שכתוב בשדות הבאים:gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
CONNECTOR_NAME: השם של המחבר-
REGION: השם של האזור של המחבר -
MACHINE_TYPE: סוג המכונה המועדף. מידע על סוגי המכונות שזמינים מופיע במאמר בנושא תפוקה ושינוי גודל.
הקטנת המספר המינימלי והמקסימלי של מופעים
כדי להקטין את מספר המינימום והמקסימום של המופעים, צריך לבצע את הפעולות הבאות:
- יוצרים מחבר חדש עם הערכים המועדפים.
- מעדכנים את השירות או הפונקציה כדי להשתמש במחבר החדש.
- אחרי שמעבירים את התנועה של המחבר הישן, מוחקים אותו.
הגדלת המספר המינימלי והמקסימלי של המופעים
המסוף
עוברים לדף הסקירה הכללית של חיבור לרשת (VPC) מאפליקציית serverless.
בוחרים את כלי החיבור שרוצים לערוך ולוחצים על עריכה.
בשדה Minimum instances (מינימום מופעים), בוחרים את מספר המופעים המינימלי המועדף.
הערך הקטן ביותר האפשרי בשדה הזה הוא הערך הנוכחי. הערך הגדול ביותר שאפשר להזין בשדה הזה הוא הערך הנוכחי בשדה מספר מופעים מקסימלי פחות 1. לדוגמה, אם הערך בשדה מספר מופעים מקסימלי הוא 8, הערך הגדול ביותר שאפשר להזין בשדה מספר מופעים מינימלי הוא 7.
בשדה מספר מופעים מקסימלי, בוחרים את המספר המקסימלי המועדף של מופעים.
הערך הקטן ביותר האפשרי בשדה הזה הוא הערך הנוכחי. הערך הגדול ביותר שאפשר להזין בשדה הזה הוא 10.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
כדי להגדיל את מספר המופעים המינימלי או המקסימלי של המחבר, מריצים את הפקודה הבאה בטרמינל:
מחליפים את מה שכתוב בשדות הבאים:gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
CONNECTOR_NAME: השם של המחבר-
REGION: השם של האזור של המחבר -
MIN_INSTANCES: מספר המינימום המועדף של המופעים.- הערך הקטן ביותר האפשרי בשדה הזה הוא הערך הנוכחי של
min_instances. כדי לראות את הערך הנוכחי, אפשר לעיין במאמר בנושא חיפוש ערכי המאפיינים הנוכחיים. - הערך הכי גדול שאפשר להזין בשדה הזה הוא הערך הנוכחי של
max_instancesפחות 1, כיmin_instancesחייב להיות קטן מ-max_instances. לדוגמה, אם הערך שלmax_instancesהוא 8, הערך הגדול ביותר שאפשר לציין בשדה הזה הוא 7. אם המחבר משתמש בערך ברירת המחדלmax-instancesשל 10, הערך המקסימלי האפשרי בשדה הזה הוא 9. כדי למצוא את הערך שלmax-instances, אפשר לעיין בקטע איך מוצאים את ערכי המאפיינים הנוכחיים.
- הערך הקטן ביותר האפשרי בשדה הזה הוא הערך הנוכחי של
MAX_INSTANCES:- הערך הקטן ביותר האפשרי בשדה הזה הוא הערך הנוכחי של
max_instances. כדי לראות את הערך הנוכחי, אפשר לעיין במאמר בנושא חיפוש ערכי המאפיינים הנוכחיים. - הערך המקסימלי האפשרי בשדה הזה הוא 10.
אם רוצים להגדיל רק את המספר המינימלי של המופעים ולא את המספר המקסימלי, עדיין צריך לציין את המספר המקסימלי של המופעים. לעומת זאת, אם רוצים לעדכן רק את המספר המקסימלי של המופעים ולא את המספר המינימלי, עדיין צריך לציין את המספר המינימלי של המופעים. כדי להשאיר את המספר המינימלי או המקסימלי של המופעים בערך הנוכחי שלהם, מציינים את הערך הנוכחי שלהם. כדי לראות את הערך הנוכחי של המאפיין, אפשר לעיין במאמר בנושא איתור הערכים הנוכחיים של המאפיינים.
- הערך הקטן ביותר האפשרי בשדה הזה הוא הערך הנוכחי של
חיפוש ערכי המאפיינים הנוכחיים
כדי למצוא את ערכי המאפיינים הנוכחיים של המחבר, מריצים את הפקודה הבאה במסוף:
gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
CONNECTOR_NAME: השם של המחבר-
REGION: השם של האזור של המחבר -
PROJECT: השם של Google Cloud הפרויקט
מעקב אחר השימוש במחבר
מעקב אחר השימוש לאורך זמן יכול לעזור לכם לקבוע מתי צריך לשנות את ההגדרות של מחבר. לדוגמה, אם השימוש במעבד עולה באופן חד, כדאי לנסות להגדיל את המספר המקסימלי של המופעים כדי לשפר את התוצאות. או אם אתם מגיעים למקסימום של קצב העברת הנתונים, יכול להיות שתחליטו לעבור לסוג מכונה גדול יותר.
כדי להציג תרשימים של נתוני התפוקה, מספר המופעים והשימוש במעבד של המחבר לאורך זמן באמצעות מסוף Google Cloud :
עוברים לדף הסקירה הכללית של חיבור לרשת (VPC) מאפליקציית serverless.
לוחצים על השם של מחבר הנתונים שרוצים לעקוב אחריו.
בוחרים את מספר הימים שרוצים להציג, בין יום אחד ל-90 ימים.
בתרשים Throughput (קצב העברת נתונים), מחזיקים את הסמן מעל התרשים כדי לראות את קצב העברת הנתונים האחרון של המחבר.
בתרשים Number of instances (מספר המופעים), מעבירים את מצביע העכבר מעל התרשים כדי לראות את מספר המופעים שהמחבר השתמש בהם לאחרונה.
בתרשים CPU Utilization, מעבירים את מצביע העכבר מעל התרשים כדי לראות את השימוש האחרון במעבד של המחבר. בתרשים מוצג השימוש במעבד שמפוזר על פני מופעים באחוזונים ה-50, ה-95 וה-99.
מחיקת מחבר
לפני שמוחקים מחבר, צריך להסיר אותו מכל המשאבים בלי שרת (serverless) שעדיין משתמשים בו. אם תמחקו מחבר לפני שתסירו אותו מהמשאבים חסרי השרתים, לא תוכלו למחוק את רשת ה-VPC בהמשך.
משתמשים ב-VPC משותף שהגדירו מחברים בפרויקט המארח של ה-VPC המשותף יכולים להשתמש בפקודה gcloud compute networks vpc-access connectors describe כדי להציג את רשימת הפרויקטים שבהם יש משאבים מסוג serverless שמשתמשים במחבר נתון.
כדי למחוק מחבר, משתמשים במסוף Google Cloud או ב-Google Cloud CLI:
המסוף
נכנסים לדף הסקירה הכללית של חיבור לרשת (VPC) מאפליקציית serverless במסוףGoogle Cloud :
בוחרים את המחבר שרוצים למחוק.
לוחצים על Delete.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
כדי למחוק מחבר, משתמשים בפקודה
gcloudהבאה:gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
מחליפים את מה שכתוב בשדות הבאים:
- CONNECTOR_NAME עם שם המחבר שרוצים למחוק
- REGION עם האזור שבו נמצא המחבר
ניהול אילוצים מותאמים אישית לפרויקטים
בקטע הזה מוסבר איך ליצור אילוצים בהתאמה אישית למחברי חיבור לרשת (VPC) מאפליקציית serverless ולאכוף אותם ברמת הפרויקט. במאמר יצירה וניהול של מדיניות ארגונית בהתאמה אישית מוסבר איך יוצרים מדיניות ארגונית בהתאמה אישית.
Google Cloud מדיניות הארגון מאפשרת לכם שליטה מרוכזת ופרוגרמטית על המשאבים של הארגון. בתור אדמינים של מדיניות הארגון, אתם יכולים להגדיר מדיניות ארגונית, שהיא קבוצה של הגבלות שנקראות אילוצים, שחלות על משאביGoogle Cloud ועל משאבים שנגזרים מהם בGoogle Cloud היררכיית המשאבים. אפשר לאכוף את מדיניות הארגון ברמת הארגון, התיקייה או הפרויקט.
השירות Organization Policy מספק מגבלות מוגדרות מראש לשירותים שונים שלGoogle Cloud . עם זאת, אם אתם רוצים שליטה מפורטת יותר בהתאמה אישית בשדות הספציפיים שמוגבלים במדיניות הארגון, אתם יכולים גם ליצור מדיניות ארגונית בהתאמה אישית.
יתרונות
התכונה 'חיבור לרשת (VPC) מאפליקציית serverless' מאפשרת לכם לכתוב כל מספר של אילוצים מותאמים אישית באמצעות רוב השדות שמוגדרים על ידי המשתמש ב-API של 'חיבור לרשת (VPC) מאפליקציית serverless'. לדוגמה, אפשר ליצור אילוץ מותאם אישית שמציין באילו תת-רשתות יכול מחבר של Serverless VPC Access להשתמש.
אחרי שמחילים את המדיניות, בקשות שמפרות מדיניות שמחילה אילוץ מותאם אישית מציגות הודעת שגיאה ב-CLI של gcloud וביומני הגישה של Serverless VPC. הודעת השגיאה מכילה את מזהה האילוץ ואת התיאור של האילוץ המותאם אישית שהופר.
העברה בירושה של מדיניות
כברירת מחדל, מדיניות הארגון עוברת בירושה לצאצאים של המשאבים שבהם אתם אוכפים את המדיניות. לדוגמה, אם אוכפים מדיניות בתיקייה, Google Cloud המדיניות נאכפת בכל הפרויקטים בתיקייה. מידע נוסף על ההתנהגות הזו ועל שינוי שלה זמין במאמר בנושא כללי הערכה היררכיים.
מגבלות
אין תמיכה בהגדרה של סוג המכונה, מספר המופעים המינימלי או מספר המופעים המקסימלי.
לפני שמתחילים
חשוב לוודא שאתם יודעים מהו מספר הארגון שלכם.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לניהול מדיניות הארגון, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Organization policy administrator (roles/orgpolicy.policyAdmin) במשאב הארגון.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת אילוץ בהתאמה אישית
אילוץ בהתאמה אישית מוגדר בקובץ YAML לפי המשאבים, השיטות, התנאים והפעולות שנתמכים על ידי השירות שבו אתם אוכפים את מדיניות הארגון. התנאים להגבלות המותאמות אישית מוגדרים באמצעות Common Expression Language (CEL). מידע נוסף על יצירת תנאים באילוצים מותאמים אישית באמצעות CEL זמין בקטע על CEL במאמר יצירה וניהול של אילוצים מותאמים אישית.
כדי ליצור קובץ YAML לאילוץ בהתאמה אישית של חיבור לרשת (VPC) מאפליקציית serverless, אפשר להיעזר בדוגמה הבאה:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- vpcaccess.googleapis.com/Connector
methodTypes:
- CREATE
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
מחליפים את מה שכתוב בשדות הבאים:
ORGANIZATION_ID: מזהה הארגון, למשל123456789.
CONSTRAINT_NAME: השם שרוצים לתת לאילוץ החדש בהתאמה אישית. אילוץ מותאם אישית חייב להתחיל ב-custom., ויכול לכלול רק אותיות גדולות, אותיות קטנות או מספרים. לדוגמה, custom.defaultNetworkConstraint. האורך המקסימלי של השדה הזה הוא 70 תווים, לא כולל הקידומת.
CONDITION: תנאי CEL שנכתב על סמך ייצוג של משאב שירות נתמך. האורך המקסימלי של השדה הוא 1,000 תווים. לדוגמה:"resource.network == default".
ACTION: הפעולה שיש לבצע אם התנאיconditionמתקיים. הערך יכול להיותALLOWאוDENY.
DISPLAY_NAME: שם קריא לאנשים של האילוץ. האורך המקסימלי של השדה הוא 200 תווים.
DESCRIPTION: תיאור ידידותי למשתמש של האילוץ שיוצג כהודעת שגיאה אם המדיניות תופר. לדוגמה:"Require network to not be set to default."This field has a maximum length of 2000 characters.
מידע נוסף על יצירת אילוץ בהתאמה אישית זמין במאמר הגדרת אילוצים בהתאמה אישית.
הגדרת אילוץ בהתאמה אישית
המסוף
כדי ליצור אילוץ בהתאמה אישית:
- במסוף Google Cloud , נכנסים לדף מדיניות הארגון.
- בבורר הפרויקטים, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
- לוחצים על Custom constraint (הגבלה מותאמת אישית).
- בתיבה שם לתצוגה, מזינים שם שאנשים יכולים לקרוא למגבלה. השם הזה משמש בהודעות שגיאה, ואפשר להשתמש בו לצורך זיהוי וניפוי באגים. אל תשתמשו בפרטים אישיים מזהים (PII) או במידע אישי רגיש בשמות המוצגים, כי השם הזה עלול להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 200 תווים.
-
בתיבה מזהה האילוץ, מזינים את השם שרוצים לתת לאילוץ המותאם אישית החדש. אילוץ מותאם אישית יכול להכיל רק אותיות (כולל אותיות גדולות וקטנות) או מספרים, למשל
custom.disableGkeAutoUpgrade. השדה הזה יכול להכיל עד 70 תווים, לא כולל הקידומת (custom.), לדוגמה,organizations/123456789/customConstraints/custom. אל תכללו פרטים אישיים מזהים (PII) או מידע אישי רגיש במזהה האילוץ, כי הם עלולים להיחשף בהודעות שגיאה. - בתיבה Description, מזינים תיאור קריא לאנשים של האילוץ. התיאור הזה משמש כהודעת שגיאה כשמתבצעת הפרה של המדיניות. לכלול פרטים על הסיבה להפרת המדיניות ואיך לפתור אותה. אל תכללו בתיאור פרטים אישיים מזהים (PII) או מידע אישי רגיש, כי הם עלולים להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 2,000 תווים.
-
בתיבה Resource type, בוחרים את השם של משאב REST Google Cloud שמכיל את האובייקט והשדה שרוצים להגביל – לדוגמה,
container.googleapis.com/NodePool. רוב סוגי המשאבים תומכים בעד 20 אילוצים מותאמים אישית. אם תנסו ליצור עוד אילוצים בהתאמה אישית, הפעולה תיכשל. - בקטע שיטת אכיפה, בוחרים אם לאכוף את ההגבלה על שיטת REST CREATE או על השיטות CREATE ו-UPDATE. אם אוכפים את המגבלה באמצעות השיטה UPDATE על משאב שמפר את המגבלה, מדיניות הארגון חוסמת שינויים במשאב הזה, אלא אם השינוי פותר את ההפרה.
- כדי להגדיר תנאי, לוחצים על Edit condition.
-
בחלונית Add condition, יוצרים תנאי CEL שמתייחס למשאב שירות נתמך, לדוגמה,
resource.management.autoUpgrade == false. השדה הזה יכול להכיל עד 1,000 תווים. פרטים על השימוש ב-CEL זמינים במאמר בנושא Common Expression Language. מידע נוסף על משאבי השירות שאפשר להשתמש בהם באילוצים בהתאמה אישית זמין במאמר שירותים שתומכים באילוצים בהתאמה אישית. - לוחצים על Save.
- בקטע פעולה, בוחרים אם לאשר או לדחות את השיטה שנבדקה אם התנאי מתקיים.
- לוחצים על יצירת אילוץ.
לא כל השירותים של Google Cloud תומכים בשתי השיטות. כדי לראות את השיטות הנתמכות לכל שירות, צריך לחפש את השירות בקטע שירותים נתמכים.
הפעולה deny (דחייה) פירושה שהפעולה ליצירה או לעדכון של המשאב נחסמת אם התנאי מחזיר את הערך true.
הפעולה allow (אישור) פירושה שהפעולה ליצירה או לעדכון של המשאב מותרת רק אם התנאי מחזיר את הערך true. כל מקרה אחר, מלבד אלה שמפורטים במפורש בתנאי, נחסם.
אחרי שמזינים ערך בכל שדה, מופיעה משמאל הגדרת ה-YAML המקבילה למגבלה המותאמת אישית הזו.
gcloud
- כדי ליצור אילוץ בהתאמה אישית, יוצרים קובץ YAML בפורמט הבא:
-
ORGANIZATION_ID: מזהה הארגון, למשל123456789. -
CONSTRAINT_NAME: השם שרוצים לתת לאילוץ המותאם אישית החדש. אילוץ מותאם אישית יכול להכיל רק אותיות (כולל אותיות רישיות וקטנות) או מספרים, למשל,custom.defaultNetworkConstraint. השדה הזה יכול להכיל עד 70 תווים. -
RESOURCE_NAME: השם המוגדר במלואו של המשאב Google Cloud שמכיל את האובייקט והשדה שרוצים להגביל. לדוגמה:vpcaccess.googleapis.com/Connector. -
CONDITION: תנאי CEL שנכתב על סמך ייצוג של משאב שירות נתמך. השדה הזה יכול להכיל עד 1,000 תווים. לדוגמה:"resource.network == default". -
ACTION: הפעולה שיש לבצע אם התנאיconditionמתקיים. הערך יכול להיות רקALLOW. -
DISPLAY_NAME: שם קריא לאילוץ. השדה הזה יכול להכיל עד 200 תווים. -
DESCRIPTION: תיאור ידידותי למשתמש של האילוץ שיוצג כהודעת שגיאה אם המדיניות תופר. השדה הזה יכול להכיל עד 2,000 תווים. -
אחרי שיוצרים קובץ YAML לאילוץ חדש בהתאמה אישית, צריך להגדיר אותו כדי שיהיה זמין למדיניות הארגון בארגון שלכם. כדי להגדיר אילוץ בהתאמה אישית, משתמשים בפקודה
gcloud org-policies set-custom-constraint: -
כדי לוודא שהאילוץ המותאם אישית קיים, משתמשים בפקודה
gcloud org-policies list-custom-constraints:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: RESOURCE_NAME methodTypes: - CREATE condition: "CONDITION" actionType: ACTION displayName: DISPLAY_NAME description: DESCRIPTION
מחליפים את מה שכתוב בשדות הבאים:
מידע נוסף על המשאבים שאפשר לכתוב תנאים לגביהם זמין במאמר משאבים נתמכים.
פעולת ההרשאה פירושה שאם התנאי מקבל את הערך True, הפעולה ליצירה או לעדכון של המשאב מותרת. המשמעות היא שכל מקרה אחר, מלבד זה שמופיע במפורש בתנאי, ייחסם.
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
מחליפים את CONSTRAINT_PATH בנתיב המלא לקובץ האילוצים המותאמים אישית. לדוגמה, /home/user/customconstraint.yaml.
אחרי שהפעולה הזו תושלם, ההגבלות המותאמות אישית יהיו זמינות כמדיניות ארגונית ברשימת Google Cloud מדיניות הארגון.
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
מחליפים את ORGANIZATION_ID במזהה של משאב הארגון.
מידע נוסף זמין במאמר בנושא צפייה במדיניות הארגון.
אכיפה של מגבלה בהתאמה אישית
כדי לאכוף אילוץ, יוצרים מדיניות ארגון שמפנה אליו, ואז מחילים את מדיניות הארגון הזו על משאב Google Cloud .המסוף
- במסוף Google Cloud , נכנסים לדף מדיניות הארגון.
- בתפריט לבחירת פרויקט, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
- ברשימה בדף מדיניות הארגון, בוחרים את האילוץ כדי לראות את הדף פרטי המדיניות של האילוץ הזה.
- כדי להגדיר את מדיניות הארגון למשאב הזה, לוחצים על ניהול מדיניות.
- בדף עריכת מדיניות, בוחרים באפשרות במקום המדיניות של המשאב הראשי.
- לוחצים על Add a rule.
- בקטע Enforcement (אכיפה), בוחרים אם מדיניות הארגון הזו נאכפת או לא.
- אופציונלי: כדי להגדיר את מדיניות הארגון כתלויה בתג, לוחצים על הוספת תנאי. הערה: אם מוסיפים כלל מותנה למדיניות ארגון, צריך להוסיף לפחות כלל לא מותנה אחד, אחרת אי אפשר לשמור את המדיניות. מידע נוסף זמין במאמר הגדרת מדיניות ארגונית באמצעות תגים.
- לוחצים על בדיקת שינויים כדי לדמות את ההשפעה של מדיניות הארגון. מידע נוסף זמין במאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.
- כדי לאכוף את המדיניות של הארגון במצב הרצת בדיקה, לוחצים על הגדרת המדיניות להרצת בדיקה. מידע נוסף מופיע במאמר יצירת מדיניות ארגונית במצב הרצה יבשה.
- אחרי שמוודאים שמדיניות הארגון במצב הרצה יבשה פועלת כמו שרוצים, לוחצים על הגדרת מדיניות כדי להגדיר את המדיניות הפעילה.
gcloud
- כדי ליצור מדיניות ארגונית עם כללים בוליאניים, יוצרים קובץ YAML של מדיניות שמפנה לאילוץ:
-
PROJECT_ID: הפרויקט שבו רוצים לאכוף את האילוץ. -
CONSTRAINT_NAME: השם שהגדרתם לאילוץ המותאם אישית. לדוגמה,custom.defaultNetworkConstraint. -
כדי לאכוף את מדיניות הארגון במצב הרצה יבשה, מריצים את הפקודה הבאה עם הדגל
dryRunSpec: -
אחרי שמוודאים שמדיניות הארגון במצב הרצה יבשה פועלת כמו שרוצים, מגדירים את המדיניות הפעילה באמצעות הפקודה
org-policies set-policyוהדגלspec:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true dryRunSpec: rules: - enforce: true
מחליפים את מה שכתוב בשדות הבאים:
gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec
מחליפים את POLICY_PATH בנתיב המלא לקובץ ה-YAML של מדיניות הארגון. יכולות לעבור עד 15 דקות עד שהמדיניות תיכנס לתוקף.
gcloud org-policies set-policy POLICY_PATH --update-mask=spec
מחליפים את POLICY_PATH בנתיב המלא לקובץ ה-YAML של מדיניות הארגון. יכולות לעבור עד 15 דקות עד שהמדיניות תיכנס לתוקף.
בדיקת האילוץ המותאם אישית
כדי לבדוק את הדוגמה שמגבילה את הגדרות הכניסה, צריך לפרוס מחבר בפרויקט עם הגדרת הרשת default:
gcloud compute networks vpc-access connectors create org-policy-test \
--project=PROJECT_ID \
--region=REGION_ID \
--network=default
הפלט שיתקבל:
Operation denied by custom org policies: ["customConstraints/custom.defaultNetworkConstraint": "Require network to not be set to default."]
דוגמאות למדיניות ארגון מותאמת אישית לתרחישי שימוש נפוצים
בטבלה הבאה מפורטות דוגמאות לאילוצים מותאמים אישית שיכולים להיות שימושיים עם מחברי חיבור לרשת (VPC) מאפליקציית serverless:
| תיאור | תחביר של אילוצים |
|---|---|
| דרישה שמחברי חיבור לרשת (VPC) מאפליקציית serverless יוכלו להשתמש רק ברשת ספציפית. |
name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistNetworks resourceTypes: - vpcaccess.googleapis.com/Connector methodTypes: - CREATE condition: "resource.network == 'allowlisted-network'" actionType: ALLOW displayName: allowlistNetworks description: Require connectors to use a specific network. |
| תיאור | תחביר של אילוצים |
| לדרוש שלמחברי חיבור לרשת (VPC) מאפליקציית serverless תהיה גישה רק לרשת משנה ספציפית. |
name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictSubnetForProject resourceTypes: - vpcaccess.googleapis.com/Connector methodTypes: - CREATE condition: "resource.subnet.name == 'allocated-subnet'" actionType: ALLOW displayName: restrictSubnetForProject description: This project is only allowed to use the subnet "allocated-subnet". |
פתרון בעיות
הרשאות של חשבון שירות
כדי לבצע פעולות ב Google Cloud פרויקט, חיבור לרשת (VPC) מאפליקציית serverless משתמש בחשבון השירות Serverless VPC Access Service Agent. כתובת האימייל של חשבון השירות הזה היא בפורמט הבא:
service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
כברירת מחדל, לחשבון השירות הזה יש את התפקיד סוכן שירות של Serverless VPC Access (roles/vpcaccess.serviceAgent). אם תשנו את ההרשאות של החשבון הזה, יכול להיות שפעולות של Serverless VPC Access ייכשלו.
ביצועי רשת נמוכים או שימוש גבוה במעבד בזמן שהוא בלי פעילות
שימוש במחבר יחיד לאלפי מקרים עלול לגרום לירידה בביצועים ולשימוש מוגבר במעבד (CPU) בזמן בלי פעילות. כדי לפתור את הבעיה, צריך לפצל את השירותים בין כמה מחברים.
בעיות עם MTU מותאם אישית
אם נתקלתם בבעיות עם MTU בהתאמה אישית, ודאו שאתם משתמשים בהגדרת ברירת המחדל של MTU ל-Cloud Run.
שגיאות
שגיאה: חשבון השירות צריך את התפקיד 'סוכן שירות'
אם אתם משתמשים באילוץ מדיניות הארגון
Restrict Resource Service Usage כדי לחסום את Cloud Deployment Manager (deploymentmanager.googleapis.com), יכול להיות שתופיע הודעת השגיאה הבאה:
Serverless VPC Access service account (service-<PROJECT_NUMBER>@gcp-sa-vpcaccess.iam.gserviceaccount.com) needs Serverless VPC Access Service Agent role in the project.
מגדירים את מדיניות הארגון כך שמסירים את Deployment Manager מהרשימה השחורה או מוסיפים אותו לרשימת ההיתרים.
שגיאה ביצירת מחבר
אם יצירת מחבר מובילה לשגיאה, נסו את הפעולות הבאות:
- מציינים טווח כתובות IP פנימיות מסוג RFC 1918 שלא חופף לאף כתובת IP קיימת ששמורה ברשת ה-VPC.
- נותנים לפרויקט הרשאה להשתמש בתמונות של מכונות וירטואליות ב-Compute Engine מהפרויקט עם המזהה
serverless-vpc-access-images. מידע נוסף על עדכון מדיניות הארגון בהתאם זמין במאמר בנושא הגדרת הגבלות על גישה לתמונות.
אין גישה למשאבים
אם ציינתם מחבר אבל עדיין אין לכם גישה למשאבים ברשת ה-VPC, ודאו שאין ברשת ה-VPC כללי חומת אש עם עדיפות נמוכה מ-1000 שחוסמים תעבורת נתונים נכנסת (ingress) מטווח כתובות ה-IP של המחבר.
אם מגדירים מחבר בפרויקט שירות של VPC משותף, צריך לוודא שכללי חומת האש מאפשרים תעבורת נתונים נכנסת מהתשתית חסרת השרתים אל המחבר.
שגיאה: החיבור נדחה
אם אתם מקבלים שגיאות connection refused או connection timeout שפוגעות בביצועים של הרשת, יכול להיות שהחיבורים שלכם גדלים ללא הגבלה בכל הפעלה של האפליקציה בלי שרת (serverless). כדי להגביל את המספר המקסימלי של חיבורים שנעשה בהם שימוש לכל מופע, צריך להשתמש בספריית לקוח שתומכת במאגרי חיבורים. דוגמאות מפורטות לשימוש במאגרי חיבורים מופיעות במאמר בנושא ניהול חיבורים למסדי נתונים.
השגיאה 'המשאב לא נמצא'
כשמוחקים רשת VPC או כלל חומת אש, יכול להיות שתוצג הודעה דומה לזו: The resource
"aet-uscentral1-subnet--1-egrfw" was not found.
מידע על השגיאה הזו ופתרון שלה מופיע במאמר שגיאה: לא נמצא משאב במסמכי התיעוד של כללי חומת האש של VPC.
השלבים הבאים
- אפשר לעקוב אחרי פעילות אדמין באמצעות רישום ביומן ביקורת של חיבור לרשת (VPC) מאפליקציית serverless.
- כדי להגן על משאבים ונתונים, אפשר ליצור גבול גזרה לשירות באמצעות VPC Service Controls.
- מידע על תפקידים בניהול זהויות והרשאות גישה (IAM) שמשויכים לחיבור לרשת (VPC) מאפליקציית serverless במאמר תפקידים ב-Serverless VPC Access במסמכי התיעוד של IAM מופיעה רשימת ההרשאות שמשויכות לכל תפקיד.
- איך מתחברים ל-Memorystore מסביבת App Engine סטנדרטית.