בדף הזה נסביר איך להשתמש בServerless VPC Access כדי לחבר את שירותי App Engine בסביבה הרגילה ישירות לרשת ה-VPC, וכך לאפשר גישה למכונות וירטואליות ב-Compute Engine, למופעי Memorystore ולכל משאב אחר עם כתובת IP פנימית.
לפני שמתחילים
אם עדיין אין לכם רשת VPC בפרויקט, צרו אחת.
אם אתם משתמשים ב-VPC משותף, כדאי לעיין במאמר בנושא התחברות לרשת VPC משותפת.
במסוף Google Cloud , מוודאים שה-API של "חיבור לרשת (VPC) מאפליקציית serverless" מופעל בפרויקט.
מגבלות
- יצירת מחברים של חיבור לרשת (VPC) מאפליקציית serverless נכשלת בסביבות של Assured Workloads. כדי לעקוף את הבעיה, אפשר להגדיר Direct VPC egress למשאבים של App Engine.
יצירת מחבר לגישה לרשת VPC מאפליקציית serverless
כדי לשלוח בקשות לרשת ה-VPC ולקבל את התשובות המתאימות בלי להשתמש באינטרנט הציבורי, אפשר להשתמש במחבר של חיבור לרשת (VPC) מאפליקציית serverless.
אם המחבר נמצא באותו פרויקט כמו רשת ה-VPC שלו, אתם יכולים ליצור מחבר באמצעות רשת משנה קיימת או ליצור מחבר ורשת משנה חדשה.
אם המחבר שלכם נמצא בפרויקט שירות ומשתמש ברשת VPC משותפת, המחבר ורשת ה-VPC המשויכת שלו נמצאים בפרויקטים שונים. כשהמחבר ורשת ה-VPC שלו נמצאים בפרויקטים שונים, מנהל רשת ה-VPC המשותפת צריך ליצור את רשת המשנה של המחבר ברשת ה-VPC המשותפת לפני שתוכלו ליצור את המחבר, וגם תצטרכו ליצור את המחבר באמצעות רשת משנה קיימת.
מידע נוסף על הדרישות של רשתות משנה מופיע במאמר דרישות של רשתות משנה למחברים.
כדי לקבל מידע על קצב העברת הנתונים של המחבר, כולל סוג המכונה וההתאמה לגודל, אפשר לעיין במאמר בנושא קצב העברת נתונים והתאמה לגודל.
אפשר ליצור מחבר באמצעות מסוף Google Cloud , Google Cloud CLI או Terraform.
המסוף
נכנסים לדף הסקירה הכללית של Serverless VPC Access.
לוחצים על יצירת מחבר.
בשדה Name (שם), מזינים שם למחבר בהתאם למוסכמות למתן שמות ב-Compute Engine, עם הדרישות הנוספות שהשם צריך להיות באורך של פחות מ-21 תווים, ושהמקפים (-) נספרים כשני תווים.
בשדה Region, בוחרים אזור למחבר. האזור הזה צריך להיות זהה לאזור של השירות ללא שרתים.
בשדה רשת, בוחרים את רשת ה-VPC שאליה רוצים לצרף את המחבר.
בשדה Subnet, בוחרים באחת מהאפשרויות הבאות:
יצירת מחבר באמצעות רשת משנה קיימת: בוחרים את רשת המשנה הקיימת בשדה Subnet.
ליצור מחבר ורשת משנה חדשה: בוחרים באפשרות טווח כתובות IP מותאם אישית בשדה רשת משנה. לאחר מכן, מזינים את הכתובת הראשונה ב-
/28CIDR שלא נמצא בשימוש (לדוגמה,10.8.0.0/28) כדי להשתמש בה כטווח הכתובות הראשי של IPv4 של רשת משנה חדשה ש Google Cloud נוצרת ברשת ה-VPC של המחבר. חשוב לוודא שטווח כתובות ה-IP לא מתנגש עם נתיבים קיימים ברשת ה-VPC של המחבר. השם של רשת המשנה החדשה מתחיל בקידומת "aet-".
(אופציונלי) כדי להגדיר אפשרויות שינוי גודל לשליטה נוספת במחבר, לוחצים על הצגת הגדרות שינוי הגודל כדי להציג את טופס שינוי הגודל.
- מגדירים את מספר המכונות המינימלי והמקסימלי למחבר, או משתמשים בערכי ברירת המחדל: 2 (מינימום) ו-10 (מקסימום). המחבר מתרחב עד למספר המקסימלי שצוין אם השימוש בתנועה דורש זאת. חובה להשתמש בערכים בין
2ל-10. - בתפריט Instance Type (סוג האינסטנס), בוחרים את סוג המכונה שבה ישתמש המחבר, או משתמשים בברירת המחדל
e2-micro. שימו לב לסרגל הצד של העלויות בצד שמאל כשבוחרים את סוג המופע. בסרגל מוצגים נתונים על רוחב הפס והערכות עלויות.
- מגדירים את מספר המכונות המינימלי והמקסימלי למחבר, או משתמשים בערכי ברירת המחדל: 2 (מינימום) ו-10 (מקסימום). המחבר מתרחב עד למספר המקסימלי שצוין אם השימוש בתנועה דורש זאת. חובה להשתמש בערכים בין
לוחצים על יצירה.
כשמחבר מוכן לשימוש, מופיע סימן וי ירוק ליד השם שלו.
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מעדכנים את הרכיבים של
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: צריך לספק CIDR/28שלא נמצא בשימוש (לדוגמה,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 כדי להפעיל את ה-API של vpcaccess.googleapis.com.
אתם יכולים להשתמש במודולים של Terraform כדי ליצור רשת VPC ותת-רשת, ואז ליצור את המחבר.
הגדרת שירות לשימוש במחבר
אחרי שיוצרים מחבר של חיבור לרשת (VPC) מאפליקציית serverless, צריך להגדיר כל שירות באפליקציית App Engine שרוצים לחבר לרשת ה-VPC.
כדי לציין מחבר לשירות באפליקציה:
מוסיפים את השדה
vpc_access_connectorלקובץapp.yamlשל השירות:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
כאשר
PROJECT_IDהוא מזהה הפרויקט ב- Google Cloud ,REGIONהוא האזור שבו נמצא המחבר ו-CONNECTOR_NAMEהוא שם המחבר.פורסים את השירות:
gcloud app deploy
אחרי פריסת השירות, הוא יכול לשלוח בקשות לכתובות IP פנימיות כדי לגשת למשאבים ברשת ה-VPC.
גישה למשאבי VPC
כללי חומת אש שנדרשים למחברים בפרויקטים של שירותים
אם יוצרים מחבר ברשת VPC עצמאית או בפרויקט המארח של רשת VPC משותפת, Google Cloud יוצר את כל כללי חומת האש שנדרשים להפעלת המחבר. מידע נוסף זמין במאמר כללי חומת אש למחברים ברשתות VPC עצמאיות או בפרויקטים מארחים של VPC משותף.
עם זאת, אם אתם יוצרים מחבר בפרויקט שירות והמחבר מטרגט רשת VPC משותפת בפרויקט המארח, אתם צריכים להוסיף כללי חומת אש כדי לאפשר את תעבורת הנתונים הנדרשת לפעולת המחבר מהטווחים הבאים:
- טווח כתובות ה-IP של התשתית ללא שרתים:
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) - התפקיד "Security Admin ב-Compute" (
roles/compute.securityAdmin) - תפקיד ניהול זהויות והרשאות גישה (IAM) בהתאמה אישית עם ההרשאה
compute.firewalls.createמופעלת
בהגדרה בסיסית, מחילים את הכללים כדי לאפשר למשאבים בלי שרתים בכל פרויקט שירות שמחובר לרשת ה-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, אפשר לעיין במאמר בנושא הגבלת הגישה של מכונת ה-VM של המחבר למשאבי רשת VPC.
יצירת כללים לחומת אש למחברים ספציפיים
אם פועלים לפי התהליך שמתואר במאמר כללי חומת אש שנדרשים למחברים בפרויקטים של שירותים, כללי חומת האש יחולו על כל המחברים, גם על אלה שקיימים וגם על אלה שייווצרו בעתיד. אם אתם לא רוצים שזה יקרה, אלא רוצים ליצור כללים למחברים ספציפיים בלבד, אתם יכולים להגדיר את היקף הכללים כך שיחולו רק על המחברים האלה.
כדי להגביל את היקף הכללים למחברים ספציפיים, אפשר להשתמש באחד מהמנגנונים הבאים:
- תגי רשת: לכל מחבר יש שני תגי רשת:
vpc-connectorו-vpc-connector-REGION-CONNECTOR_NAME. כדי להגביל את ההיקף של כללי חומת האש למחבר ספציפי, צריך להשתמש בפורמט השני. - טווחי כתובות IP: השתמשו באפשרות הזו רק לכללי תעבורת נתונים יוצאת, כי היא לא פועלת לכללי תעבורת נתונים נכנסת. אתם יכולים להשתמש בטווח כתובות ה-IP של רשת המשנה של המחבר כדי להגביל את ההיקף של כללי חומת האש למחבר VPC יחיד.
הגבלת הגישה של מכונות וירטואליות של מחברים למשאבי רשת VPC
אתם יכולים להגביל את הגישה של המחבר למשאבים ברשת ה-VPC של היעד באמצעות כללי חומת אש של VPC או כללים במדיניות חומת אש. אפשר להגדיר את ההגבלות האלה באמצעות אחת מהאסטרטגיות הבאות:
- יוצרים כללי תעבורת נתונים נכנסת שהיעדים שלהם מייצגים את המשאבים שרוצים להגביל את הגישה של המכונות הווירטואליות של המחבר אליהם, והמקורות שלהם מייצגים את המכונות הווירטואליות של המחבר.
- יוצרים כללי יציאה שהיעדים שלהם מייצגים את המכונות הווירטואליות של המחבר, והיעדים שלהם מייצגים את המשאבים שרוצים להגביל את הגישה של המכונות הווירטואליות של המחבר אליהם.
הדוגמאות הבאות ממחישות כל אסטרטגיה.
הגבלת הגישה באמצעות כללי כניסה
בוחרים תגי רשת או טווחי CIDR כדי לשלוט בתעבורה הנכנסת לרשת ה-VPC.
תגים של רשתות
השלבים הבאים מראים איך ליצור כללי כניסה שמגבילים את הגישה של מחבר לרשת VPC על סמך תגי הרשת של המחבר.
מוודאים שיש לכם את ההרשאות הנדרשות להוספת כללי חומת אש. צריך להיות לכם אחד מהתפקידים הבאים בניהול זהויות והרשאות גישה (IAM):
- התפקיד Compute Security Admin
- תפקיד IAM בהתאמה אישית עם ההרשאה
compute.firewalls.createמופעלת
דחיית תנועה של מחברים ברשת ה-VPC.
יוצרים כלל חומת אש לדחיית תעבורת נתונים נכנסת (ingress) עם עדיפות נמוכה מ-1,000 ברשת ה-VPC כדי לדחות תעבורת נתונים נכנסת מהתג של רשת המחבר. הכלל הזה מבטל את כלל חומת האש המשתמע שנוצר כברירת מחדל ברשת ה-VPC על ידי החיבור לרשת (VPC) מאפליקציית serverless.
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: תג הרשת של המחבר האוניברסלי, אם רוצים להגביל את הגישה לכל המחברים (כולל מחברים שייווצרו בעתיד), או תג הרשת הייחודי, אם רוצים להגביל את הגישה למחבר ספציפי.
- thought
תג רשת אוניברסלי:
vpc-connector תג רשת ייחודי:
vpc-connector-REGION-CONNECTOR_NAMEמחליפים את:
- REGION: האזור של המחבר שרוצים להגביל
- CONNECTOR_NAME: השם של מחבר שרוצים להגביל
- thought
תג רשת אוניברסלי:
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
בשלבים הבאים מוסבר איך ליצור כללי תעבורת נתונים נכנסת שמגבילים את הגישה של המחבר לרשת ה-VPC, על סמך טווח ה-CIDR של המחבר.
מוודאים שיש לכם את ההרשאות הנדרשות להוספת כללי חומת אש. אתם צריכים להיות בעלי אחד מהתפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):
- התפקיד Compute Security Admin
- תפקיד IAM בהתאמה אישית עם ההרשאה
compute.firewalls.createמופעלת
דחיית תעבורת נתונים של מחבר ברשת ה-VPC.
יוצרים כלל חומת אש לתעבורה נכנסת עם עדיפות נמוכה מ-1000 ברשת ה-VPC כדי לחסום תעבורה נכנסת מטווח ה-CIDR של המחבר. הפעולה הזו מבטלת את כלל חומת האש המרומז שנוצר כברירת מחדל על ידי Serverless VPC Access ברשת ה-VPC.
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
הגבלת הגישה באמצעות כללים לתעבורת נתונים יוצאת
בשלבים הבאים מוסבר איך ליצור כללי יציאה כדי להגביל את הגישה למחבר.
מוודאים שיש לכם את ההרשאות הנדרשות להוספת כללי חומת אש. אתם צריכים לקבל הקצאה לאחד מהתפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):
- התפקיד Compute Security Admin
- תפקיד IAM בהתאמה אישית עם ההרשאה
compute.firewalls.create
דחיית תנועת יציאה מהמחבר.
יוצרים כלל חומת אש לתעבורת נתונים יוצאת במחבר של 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 פנימיים מנותבות דרך מחבר של חיבור לרשת (VPC) מאפליקציית serverless. אפשר לציין את הגדרת תעבורת הנתונים היוצאת (egress) של השירות בקובץ 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 CloudREGIONבאזור שבו נמצא המחבר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
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי לעדכן את סוג המכונה של המחבר, מריצים את הפקודה הבאה בטרמינל:
מחליפים את הערכים בשדות הבאים:gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
-
CONNECTOR_NAME: השם של המחבר -
REGION: השם של האזור של המחבר -
MACHINE_TYPE: סוג המכונה המועדף. מידע על סוגי המכונות שזמינים מופיע במאמר בנושא תפוקה ושינוי גודל.
-
הקטנת המספר המינימלי והמקסימלי של מופעים
כדי להקטין את מספר המינימום והמקסימום של המופעים, צריך לבצע את הפעולות הבאות:
- יוצרים מחבר חדש עם הערכים הרצויים.
- מעדכנים את השירות או הפונקציה כדי להשתמש במחבר החדש.
- אחרי שמעבירים את התנועה של המחבר הישן, מוחקים אותו.
הגדלת המספר המינימלי והמקסימלי של מופעים
המסוף
נכנסים לדף הסקירה הכללית של Serverless VPC Access.
בוחרים את כלי הקישור שרוצים לערוך ולוחצים על עריכה.
בשדה Minimum instances, בוחרים את המספר המינימלי הרצוי של המכונות.
הערך הקטן ביותר שאפשר להזין בשדה הזה הוא הערך הנוכחי. הערך הגדול ביותר שאפשר להזין בשדה הזה הוא הערך הנוכחי בשדה מספר מופעים מקסימלי פחות 1. לדוגמה, אם הערך בשדה מספר מופעים מקסימלי הוא 8, הערך הגדול ביותר שאפשר להזין בשדה מספר מופעים מינימלי הוא 7.
בשדה מספר מופעים מקסימלי, בוחרים את המספר המקסימלי המועדף של מופעים.
הערך הקטן ביותר שאפשר להזין בשדה הזה הוא הערך הנוכחי. הערך המקסימלי שאפשר להזין בשדה הזה הוא 10.
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי להגדיל את מספר המינימום או המקסימום של המופעים של המחבר, מריצים את הפקודה הבאה בטרמינל:
מחליפים את הערכים בשדות הבאים: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.
לוחצים על השם של מחבר הנתונים שרוצים לעקוב אחריו.
בוחרים את מספר הימים שרוצים להציג, בין 1 ל-90 ימים.
בתרשים Throughput, מחזיקים את הסמן מעל התרשים כדי לראות את הנתונים האחרונים של קצב העברת הנתונים של המחבר.
בתרשים מספר המופעים, מעבירים את מצביע העכבר מעל התרשים כדי לראות את מספר המופעים שהמחבר השתמש בהם לאחרונה.
בתרשים CPU Utilization, מעבירים את מצביע העכבר מעל התרשים כדי לראות את השימוש האחרון במעבד של המחבר. בתרשים מוצג השימוש ב-CPU שמתחלק בין המכונות באחוזונים ה-50, ה-95 וה-99.
מחיקת מחבר
לפני שמוחקים מחבר, צריך להסיר אותו מכל המשאבים ללא שרתים שעדיין משתמשים בו. אם תמחקו מחבר לפני שתסירו אותו מהמשאבים ללא שרת (serverless), לא תוכלו למחוק את רשת ה-VPC מאוחר יותר.
משתמשים ב-VPC משותף שהגדירו מחברים בפרויקט המארח של ה-VPC המשותף יכולים להשתמש בפקודה gcloud compute networks vpc-access connectors describe כדי להציג את רשימת הפרויקטים שבהם יש משאבים ללא שרתים שמשתמשים במחבר נתון.
כדי למחוק מחבר, משתמשים במסוף Google Cloud או ב-Google Cloud CLI:
המסוף
עוברים לדף הסקירה הכללית של Serverless VPC Access במסוףGoogle Cloud :
בוחרים את המחבר שרוצים למחוק.
לוחצים על Delete.
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי למחוק מחבר, משתמשים בפקודה
gcloudהבאה:gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
מחליפים את מה שכתוב בשדות הבאים:
- CONNECTOR_NAME בשם של המחבר שרוצים למחוק.
- REGION עם האזור שבו נמצא המחבר
ניהול אילוצים מותאמים אישית לפרויקטים
בקטע הזה מוסבר איך ליצור אילוצים מותאמים אישית למחברים של Serverless VPC Access ולאכוף אותם ברמת הפרויקט. במאמר יצירה וניהול של מדיניות ארגונית בהתאמה אישית מוסבר איך יוצרים מדיניות ארגונית בהתאמה אישית.
Google Cloud מדיניות הארגון מאפשרת לכם שליטה מרוכזת ופרוגרמטית על המשאבים של הארגון. בתור אדמינים של מדיניות הארגון, אתם יכולים להגדיר מדיניות ארגונית, שהיא קבוצה של הגבלות שנקראות אילוצים, שחלות על משאבים ב-Google Cloud ועל משאבים שנגזרים מהם בGoogle Cloud היררכיית המשאבים. אפשר לאכוף את מדיניות הארגון ברמת הארגון, התיקייה או הפרויקט.
מדיניות הארגון מספקת אילוצים מוגדרים מראש לשירותים שונים שלGoogle Cloud . עם זאת, אם אתם רוצים שליטה מפורטת יותר שניתנת להתאמה אישית בשדות הספציפיים שמוגבלים בכללי המדיניות של הארגון, אתם יכולים גם ליצור כללי מדיניות מותאמים אישית לארגון.
יתרונות
חיבור לרשת (VPC) מאפליקציית serverless מאפשר לכם לכתוב מספר כלשהו של אילוצים בהתאמה אישית, באמצעות רוב השדות שמוגדרים על ידי המשתמש ב-Serverless VPC Access API. לדוגמה, אפשר ליצור אילוץ מותאם אישית שמציין באילו תת-רשתות יכול מחבר של חיבור לרשת (VPC) מאפליקציית serverless להשתמש.
אחרי שמחילים את האילוץ, בקשות שמפירות מדיניות שאוכפת אילוץ מותאם אישית מציגות הודעת שגיאה ב-CLI של gcloud וביומנים של "גישה ל-VPC ללא שרת (Serverless)". הודעת השגיאה מכילה את מזהה האילוץ ואת התיאור של האילוץ המותאם אישית שהופר.
העברת מדיניות בירושה
כברירת מחדל, מדיניות הארגון עוברת בירושה לצאצאים של המשאבים שבהם אתם אוכפים את המדיניות. לדוגמה, אם אוכפים מדיניות בתיקייה, Google Cloud המדיניות נאכפת בכל הפרויקטים בתיקייה. כאן אפשר לקרוא מידע נוסף על ההתנהגות הזו ועל שינוי שלה.
מגבלות
אין תמיכה בציון של סוג המכונה, מספר המופעים המינימלי או מספר המופעים המקסימלי.
לפני שמתחילים
חשוב לוודא שאתם יודעים מהו מזהה הארגון שלכם.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לניהול מדיניות הארגון, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של מדיניות הארגון (roles/orgpolicy.policyAdmin) ב-IAM במשאב הארגון.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת אילוץ בהתאמה אישית
אילוץ בהתאמה אישית מוגדר בקובץ YAML לפי המשאבים, השיטות, התנאים והפעולות שנתמכים על ידי השירות שבו אתם אוכפים את מדיניות הארגון. התנאים להגבלות המותאמות אישית מוגדרים באמצעות Common Expression Language (CEL). בקטע בנושא CEL במאמר יצירה וניהול של אילוצים בהתאמה אישית מוסבר איך ליצור תנאים באילוצים בהתאמה אישית באמצעות CEL.
כדי ליצור קובץ YAML לאילוץ בהתאמה אישית של Serverless VPC Access, אפשר להיעזר בדוגמה הבאה:
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.". האורך המקסימלי של השדה הזה הוא 2,000 תווים.
למידע נוסף על יצירת אילוץ בהתאמה אישית, ראו הגדרת אילוצים בהתאמה אישית.
הגדרת אילוץ בהתאמה אישית
המסוף
כדי ליצור אילוץ בהתאמה אישית:
- נכנסים לדף Organization policies במסוף Google Cloud .
- בכלי לבחירת פרויקטים, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
- לוחצים על Custom constraint (הגבלה מותאמת אישית).
- בתיבה שם לתצוגה, מזינים שם שאפשר לקרוא ולהבין את המשמעות שלו. השם הזה מופיע בהודעות שגיאה ויכול לשמש לזיהוי ולניפוי באגים. אל תשתמשו בפרטים אישיים מזהים (PII) או במידע אישי רגיש בשמות לתצוגה, כי השם הזה עלול להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 200 תווים.
-
בתיבה Constraint ID, מזינים את המזהה שרוצים לתת לאילוץ החדש בהתאמה אישית. אילוץ בהתאמה אישית יכול להכיל רק אותיות (כולל אותיות גדולות וקטנות) או מספרים, למשל
custom.defaultNetworkConstraint. השדה הזה יכול להכיל עד 70 תווים, לא כולל הקידומת (custom.), לדוגמה,organizations/123456789/customConstraints/custom. אל תכללו פרטים אישיים מזהים (PII) או נתונים רגישים במזהה האילוץ, כי הם עלולים להיחשף בהודעות שגיאה. - בתיבה Description, מזינים תיאור של האילוץ שקל לאנשים לקרוא. התיאור הזה משמש כהודעת שגיאה כשיש הפרה של המדיניות. צריך לכלול פרטים על הסיבה להפרת המדיניות ועל האופן שבו אפשר לפתור את הבעיה. אל תכללו בתיאור פרטים אישיים מזהים (PII) או מידע רגיש, כי הם עלולים להיחשף בהודעות שגיאה. בשדה הזה אפשר להזין עד 2,000 תווים.
-
בתיבה Resource type, בוחרים את השם של Google Cloud משאב REST
שמכיל את האובייקט והשדה שרוצים להגביל – לדוגמה,
container.googleapis.com/NodePool. רוב סוגי המשאבים תומכים בעד 20 אילוצים מותאמים אישית. אם תנסו ליצור עוד אילוצים בהתאמה אישית, הפעולה תיכשל. -
אפשר לאכוף את האילוץ הזה רק בשיטת REST
CREATE. - כדי להגדיר תנאי, לוחצים על Edit condition.
-
בחלונית Add condition, יוצרים תנאי CEL שמתייחס למשאב שירות נתמך, לדוגמה
resource.management.autoUpgrade == false. השדה הזה יכול לכלול עד 1,000 תווים. פרטים על השימוש ב-CEL זמינים במאמר בנושא Common Expression Language. מידע נוסף על משאבי השירות שאפשר להשתמש בהם באילוצים בהתאמה אישית זמין במאמר שירותים שתומכים באילוצים בהתאמה אישית. - לוחצים על Save.
- בקטע Action, בוחרים אם לאשר או לדחות את השיטה שנבדקה אם התנאי מתקיים.
- לוחצים על Create constraint.
כדי לראות את השיטות הנתמכות לכל שירות, חפשו את השירות במאמר שירותים שתומכים באילוצים בהתאמה אישית.
פעולת הדחייה חוסמת את הפעולה ליצירה או לעדכון של המשאב אם התנאי מתקיים.
פעולת ההרשאה מאפשרת ליצור או לעדכן את המשאב רק אם התנאי מתקיים. כל מקרה אחר, מלבד אלה שרשומים במפורש בתנאי, נחסם.
אחרי שמזינים ערך בכל שדה, מופיעה משמאל הגדרת ה-YAML המקבילה לאילוץ המותאם אישית הזה.
gcloud
- כדי ליצור אילוץ בהתאמה אישית, יוצרים קובץ YAML בפורמט הבא:
-
ORGANIZATION_ID: מזהה הארגון, למשל123456789. -
CONSTRAINT_NAME: השם שרוצים לתת לאילוץ המותאם אישית החדש. אילוץ בהתאמה אישית יכול להכיל רק אותיות (כולל אותיות רישיות וקטנות) או מספרים, למשל,custom.defaultNetworkConstraint. השדה הזה יכול להכיל עד 70 תווים, לא כולל הקידומת (custom.) – לדוגמה,organizations/123456789/customConstraints/custom. אל תכללו פרטים אישיים מזהים (PII) או נתונים רגישים במזהה האילוץ, כי הם עלולים להיחשף בהודעות שגיאה. -
RESOURCE_NAME: השם מוגדר במלואו של המשאב Google Cloudשמכיל את האובייקט והשדה שרוצים להגביל. לדוגמה,vpcaccess.googleapis.com/Connector. רוב סוגי המשאבים תומכים בעד 20 אילוצים מותאמים אישית. אם תנסו ליצור עוד אילוצים בהתאמה אישית, הפעולה תיכשל. -
methodTypes: שיטות REST שבהן האילוץ נאכף. יכול להיות רקCREATE. -
CONDITION: תנאי CEL שנכתב כנגד ייצוג של משאב שירות נתמך. השדה הזה יכול להכיל עד 1,000 תווים. לדוגמה,"resource.network == default". -
ACTION: הפעולה שתתבצע אם התנאיconditionיתקיים. הערך יכול להיות רקALLOW. -
DISPLAY_NAME: שם קריא לאנשים של האילוץ. השם הזה מופיע בהודעות שגיאה ויכול לשמש לזיהוי ולניפוי באגים. אל תשתמשו בפרטים אישיים מזהים (PII) או במידע אישי רגיש בשמות המוצגים, כי השם הזה עלול להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 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
מחליפים את מה שכתוב בשדות הבאים:
כדי לראות את השיטות הנתמכות לכל שירות, צריך לחפש את השירות בקטע שירותים שתומכים באילוצים בהתאמה אישית.
מידע נוסף על המשאבים שאפשר לכתוב תנאים לגביהם זמין במאמר משאבים נתמכים.
הפעולה allow פירושה שאם התנאי מקבל את הערך 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 .המסוף
- נכנסים לדף Organization policies במסוף Google Cloud .
- בכלי לבחירת פרויקטים, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
- מהרשימה בדף מדיניות הארגון, בוחרים את האילוץ כדי לראות את הדף פרטי המדיניות של האילוץ הזה.
- כדי להגדיר את מדיניות הארגון עבור המשאב הזה, לוחצים על ניהול מדיניות.
- בדף עריכת מדיניות, בוחרים באפשרות במקום המדיניות של המשאב הראשי.
- לוחצים על Add a rule.
- בקטע Enforcement (אכיפה), בוחרים אם מדיניות הארגון הזו נאכפת או לא.
- אופציונלי: כדי להגדיר את מדיניות הארגון כתלויה בתג, לוחצים על הוספת תנאי. הערה: אם מוסיפים כלל מותנה למדיניות ארגון, צריך להוסיף לפחות כלל לא מותנה אחד, אחרת אי אפשר לשמור את המדיניות. מידע נוסף זמין במאמר בנושא הגדרת היקף של מדיניות הארגון באמצעות תגים.
- לוחצים על בדיקת שינויים כדי לדמות את ההשפעה של מדיניות הארגון. מידע נוסף זמין במאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.
- כדי לאכוף את מדיניות הארגון במצב פרימטר לבדיקות, לוחצים על הגדרת המדיניות להרצת בדיקה. מידע נוסף זמין במאמר בנושא בדיקת מדיניות הארגון.
- אחרי שמוודאים שמדיניות הארגון במצב פרימטר לבדיקות פועלת כמו שצריך, לוחצים על Set policy כדי להגדיר את המדיניות הפעילה.
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 ללא שרת יוכלו להשתמש רק ברשת ספציפית. |
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. |
| תיאור | תחביר של אילוצים |
| הדרישה היא שלמחברי Serverless VPC Access תהיה גישה רק לרשת משנה ספציפית. |
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". |
פתרון בעיות
הרשאות של חשבון שירות
סוכן שירות לגישה ל-VPC מאפליקציית serverless
כדי לבצע פעולות בפרויקט ב- Google Cloud , החיבור לרשת (VPC) מאפליקציית serverless משתמש בחשבון השירות Serverless VPC Access Service Agent. כתובת האימייל של חשבון השירות הזה היא בפורמט הבא:
service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
כברירת מחדל, לחשבון השירות הזה יש את התפקיד סוכן שירות של גישה ל-VPC ללא שרת (Serverless) (roles/vpcaccess.serviceAgent). אם תשנו את ההרשאות של החשבון הזה, יכול להיות שהפעולות של גישה ל-VPC ללא שרת (Serverless) ייכשלו.
סוכן שירות של Google APIs
Serverless VPC Access API תלוי ב-Deployment Manager כדי להקצות את המשאבים הבסיסיים שמטמיעים את המחבר. כדי לבצע פעולות בפרויקט Google Cloud , Deployment Manager משתמש בסוכן שירות של Google APIs. כתובת האימייל של חשבון השירות הזה היא בפורמט הבא:
PROJECT_NUMBER@cloudservices.gserviceaccount.com
כברירת מחדל, לחשבון השירות הזה יש את התפקיד 'עריכה' (roles/project.editor) או הרשאות של התפקיד 'עריכה'. אם רוצים להעניק לסוכן השירות של Google APIs הרשאות מוגבלות יותר, בלי להשפיע על הפונקציונליות של חיבור לרשת VPC, אפשר להעניק לחשבון השירות הזה את התפקיד סוכן שירות של Serverless VPC Access (roles/vpcaccess.serviceAgent) במקום זאת.
שירותים מסוימים אחרים, מלבד Deployment Manager, מסתמכים גם על הרשאות התפקיד 'עריכה' שמוגדרות כברירת מחדל לסוכן שירות של Google APIs. הסרת התפקיד הזה עלולה להשפיע על שירותים ומשאבים אחרים, מלבד Serverless VPC Access API. מידע נוסף על ההשלכות של הסרת תפקיד העריכה מסוכן השירות של Google APIs זמין במאמר סוכן השירות של Google APIs.
ביצועים חלשים ברשת או ניצול גבוה של המעבד (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 שחוסמים כניסה מטווח כתובות ה-IP של המחבר.
אם מגדירים מחבר בפרויקט שירות של VPC משותף, צריך לוודא שכללי חומת האש מאפשרים תעבורת נתונים נכנסת (ingress) מהתשתית ללא שרתים אל המחבר.
שגיאה מסוג 'החיבור נדחה'
אם אתם מקבלים שגיאות connection refused או connection timeout שפוגעות בביצועי הרשת, יכול להיות שהחיבורים שלכם גדלים ללא הגבלה בכל הפעלה של האפליקציה ללא שרת. כדי להגביל את המספר המקסימלי של חיבורים שנעשה בהם שימוש לכל מופע, צריך להשתמש בספריית לקוח שתומכת במאגרי חיבורים. דוגמאות מפורטות לשימוש במאגרי חיבורים מופיעות במאמר בנושא ניהול חיבורים למסדי נתונים.
השגיאה 'המשאב לא נמצא'
כשמוחקים רשת 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.