אתם יכולים להגדיר מחבר Serverless VPC Access כדי לאפשר לשירות או למשימה של Cloud Run לשלוח תנועה לרשת VPC.
לפני שמתחילים
אם עדיין אין לכם רשת VPC בפרויקט, צריך ליצור אחת.
אם אתם משתמשים ב-VPC משותף, כדאי לעיין במאמר בנושא התחברות לרשת VPC משותפת.
במסוף Google Cloud , מוודאים ש-Serverless VPC Access API מופעל בפרויקט.
כל מחבר של חיבור לרשת (VPC) מאפליקציית serverless צריך רשת משנה משלו כדי למקם בו מופעים של מחברים. ברשת המשנה הזו לא יכולים להיות משאבים אחרים מלבד המחבר.
/28אם אתם לא משתמשים ב-VPC משותף, אתם יכולים ליצור רשת משנה לשימוש המחבר, או לציין טווח כתובות IP מותאם אישית שלא נמצא בשימוש כדי שהמחבר ייצור רשת משנה לשימוש שלו. אם בוחרים בטווח כתובות IP מותאם אישית, רשת המשנה שנוצרת מוסתרת ואי אפשר להשתמש בה בכללי חומת אש ובהגדרות NAT.
מגבלה
- שיעורי חבילות גבוהים עלולים לגרום למיצוי של הקרדיטים המשותפים של מעבד מרכזי ושל זיכרון מעקב החיבורים במופעים של
f1ושלe2-micro, וכתוצאה מכך להפסקות זמן קצובות גם אם לא הושגו מגבלות רוחב הפס. מומלץ להשתמש במופעיe2-standard-4בסביבות ייצור שכוללות מספר גבוה של פעולות שמתבצעות בו-זמנית או בקשות קטנות תכופות, כדי להבטיח שיש מספיק משאבים ייעודיים.
יצירת מחבר
כדי לשלוח בקשות לרשת ה-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 ותת-רשת, ואז ליצור את המחבר.
הגדרת השירות
אתם יכולים להגדיר את שירות Cloud Run כך שישתמש במחבר Serverless VPC Access לשליחת תנועת יציאה. אפשר לעשות את זה באמצעות מסוף Google Cloud, Google Cloud CLI או קובץ YAML כשיוצרים שירות חדש או פורסים עדכון חדש: Google Cloud
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על עריכה ופריסה של עדכון חדש.
אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Container(s), Volumes, Networking, Security (מאגרים, אמצעי אחסון, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.
נכנסים לכרטיסייה Networking.
-
בשדה רשת, בוחרים אחת מהאפשרויות הבאות מהתפריט:
- כדי לנתק את השירות מרשת VPC, בוחרים באפשרות ללא.
- כדי להשתמש במחבר קיים, בוחרים אותו מהתפריט הנפתח או בוחרים באפשרות Custom (מותאם אישית) כדי להשתמש במחבר קיים שלא מוצג בתפריט הנפתח.
- כדי ליצור מחבר חדש, בוחרים באפשרות הוספת מחבר VPC חדש. לפרטים על יצירת מחבר, אפשר לעיין במאמר בנושא יצירת מחבר של גישה ל-VPC מאפליקציית serverless.
- בקטע Traffic routing (ניתוב תנועה), בוחרים באחת מהאפשרויות הבאות:
- הפניית בקשות רק לכתובות IP פרטיות אל ה-VPC כדי לשלוח תעבורה רק לכתובות פנימיות דרך רשת ה-VPC.
- העברת כל התעבורה ל-VPC כדי לשלוח את כל התעבורה היוצאת דרך רשת ה-VPC.
-
בשדה רשת, בוחרים אחת מהאפשרויות הבאות מהתפריט:
לוחצים על יצירה או על פריסה.
gcloud
כדי לציין מחבר במהלך הפריסה, משתמשים בדגל --vpc-connector:
gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE: השם של השירות. - IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה,
us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמטLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. -
CONNECTOR_NAME: השם של המחבר.
כדי לצרף, לעדכן או להסיר מחבר לשירות קיים, משתמשים בפקודה gcloud run services update עם אחד מהדגלים הבאים, לפי הצורך:
לדוגמה, כדי לצרף או לעדכן מחבר:
gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE: השם של השירות. -
CONNECTOR_NAME: השם של המחבר.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, מורידים את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מוסיפים או מעדכנים את מאפיין
run.googleapis.com/vpc-access-connectorמתחת למאפייןannotationsמתחת למאפייןspecברמה העליונה:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME name: REVISION
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
- CONNECTOR_NAME: השם של המחבר.
- REVISION עם שם חדש של גרסה או למחוק אותה (אם היא קיימת). אם מספקים שם חדש לגרסה, חובה שהוא יעמוד בקריטריונים הבאים:
- מתחיל ב-
SERVICE- - הוא מכיל רק אותיות קטנות, מספרים וגם
- - לא מסתיים ב-
- - לא חורג מ-63 תווים
- מתחיל ב-
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
Terraform
אתם יכולים להשתמש במשאב של Terraform כדי ליצור שירות ולהגדיר אותו לשימוש במחבר שלכם.
הגדרת המשימה
אחרי שיוצרים מחבר של גישה ל-VPC ללא שרת, אפשר להגדיר את העבודה ב-Cloud Run כך שתשתמש במחבר. אפשר לעשות את זה באמצעות מסוף Google Cloud , Google Cloud CLI או YAML כשיוצרים עבודה חדשה:
המסוף
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוניות של המשימה. אם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת המשימה).
לוחצים על Container(s), Volumes, Connections, Security (מאגרי נתונים, אמצעי אחסון, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
לוחצים על הכרטיסייה Connections (קישורים).
-
בשדה רשת, בוחרים אחת מהאפשרויות הבאות מהתפריט:
- כדי לנתק את העבודה מרשת VPC, בוחרים באפשרות ללא.
- כדי להשתמש במחבר קיים, בוחרים אותו מהתפריט הנפתח או בוחרים באפשרות Custom (מותאם אישית) כדי להשתמש במחבר קיים שלא מוצג בתפריט הנפתח.
- כדי ליצור מחבר חדש, בוחרים באפשרות הוספת מחבר VPC חדש. לפרטים על יצירת מחבר, אפשר לעיין במאמר בנושא יצירת מחבר של גישה ל-VPC מאפליקציית serverless.
-
בשדה רשת, בוחרים אחת מהאפשרויות הבאות מהתפריט:
לוחצים על יצירה או על עדכון.
gcloud
כדי לציין מחבר במהלך פריסת העבודה, משתמשים בדגל --vpc-connector:
gcloud run jobs create JOB --image IMAGE_URL --vpc-connector CONNECTOR_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
JOB: שם המשימה. - IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה,
us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמטLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. -
CONNECTOR_NAME: השם של המחבר.
כדי לצרף, לעדכן או להסיר מחבר לשירות קיים, משתמשים בפקודה gcloud run jobs update עם אחד מהדגלים הבאים, לפי הצורך:
לדוגמה, כדי לצרף או לעדכן מחבר:
gcloud run jobs update JOB --vpc-connector CONNECTOR_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
JOB: שם המשימה. -
CONNECTOR_NAME: השם של המחבר.
YAML
אפשר להוריד ולראות הגדרות של משימה קיימת באמצעות הפקודה gcloud run jobs describe --format export, שמניבה תוצאות נקיות בפורמט YAML. אחר כך אפשר לשנות את השדות שמתוארים בהמשך ולהעלות את קובץ ה-YAML ששונה באמצעות הפקודה gcloud run jobs replace.
חשוב לוודא שאתם משנים רק את השדות שמתועדים.
כדי להציג ולהוריד את ההגדרות:
gcloud run jobs describe JOB --format export > job.yaml
מוסיפים או מעדכנים את מאפיין
run.googleapis.com/vpc-access-connectorמתחת למאפייןannotationsמתחת למאפייןspecברמה העליונה:apiVersion: serving.knative.dev/v1 kind: Job metadata: name: JOB spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
מחליפים את מה שכתוב בשדות הבאים:
- JOB: השם של המשימה ב-Cloud Run.
- CONNECTOR_NAME: השם של המחבר.
כשמציינים הגדרת יציאה, חובה להשתמש במאפיין
run.googleapis.com/vpc-access-connector.
כדי להחליף את העבודה בהגדרה החדשה, משתמשים בפקודה הבאה:
gcloud run jobs replace job.yaml
גישה למשאבי VPC
אתם יכולים להגביל את הגישה מהמחבר באמצעות כללים ומדיניות של חומת אש, ולהוסיף הגבלות נוספות על ידי הגדרת תעבורת נתונים יוצאת (egress) ותעבורת נתונים נכנסת (ingress).
כללים לחומת אש והגדרות מדיניות
כללי חומת אש שנדרשים למחברים בפרויקטים של שירותים
אם יוצרים מחבר ברשת 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.
ניהול המחבר
כברירת מחדל, רק בקשות ליעדים מסוימים של כתובות IPv4 פנימיות (כולל יעדים פנימיים של כתובות IPv4 שפוענחו על ידי תגובות DNS) מנותבות דרך מחבר של חיבור לרשת (VPC) מאפליקציית serverless. עם זאת, במקרים מסוימים, יכול להיות שתרצו שכל הבקשות היוצאות מהשירות או מהעבודה שלכם ינותבו לרשת ה-VPC שלכם.
חיבור לרשת (VPC) מאפליקציית serverless תומך רק בהפניית תנועה של IPv4. לא ניתן לתמוך בתנועה של IPv6, גם אם יש לכם נתיבי IPv6 ברשת ה-VPC.
כדי לשלוט בניתוב של בקשות יוצאות מהשירות או מהעבודה, אפשר להגדיר את תעבורת הנתונים היוצאת (egress) מ-VPC לאחת מהאפשרויות הבאות:
הפניית בקשות רק לכתובות IP פרטיות אל ה-VPC: ברירת המחדל. התנועה מנותבת דרך רשת ה-VPC רק אם ליעדים של החבילות שנושאות את התנועה יש התאמה לאפשרויות הבאות:
חבילות שמיועדות ליעד אחר מנותבות מ-Cloud Run לאינטרנט (לא דרך רשת VPC).
ניתוב כל התעבורה אל ה-VPC: התעבורה תמיד מנותבת דרך רשת ה-VPC שמשויכת למחבר, לכל יעדי החבילות. חובה להשתמש באפשרות הזו במקרים הבאים:
- אם אתם צריכים לשלוח תנועה לטווחים של רשתות משנה ב-VPC עם טווחים של כתובות IP חיצוניות לשימוש פרטי. מידע נוסף על טווחי רשתות משנה של VPC זמין במאמר טווחים חוקיים של IPv4 בסקירה הכללית על רשתות משנה.
- אם אתם צריכים לשלוח תעבורה לנקודת קצה של Private Service Connect עבור ממשקי API של Google, שהכתובת שלה היא כתובת IP חיצונית בשימוש פרטי. מידע נוסף על נקודות קצה (endpoints) של Private Service Connect ל-Google APIs זמין במאמר גישה ל-Google APIs דרך נקודות קצה.
- אם אתם צריכים לשלוח תנועה לכל יעד אחר של כתובת IP חיצונית שמשמשת באופן פרטי וניתן לנתב אותה ברשת ה-VPC של המחבר. דוגמאות ליעדים אחרים שכוללים כתובות IP חיצוניות לשימוש פרטי יכולות להיות טווחים של תת-רשתות בחיבורי קישור בין רשתות שכנות (peering) (וגם טווחים של תת-רשתות בחיבורי קישור בין רשתות שכנות (peering) שנוצרו מטווחים של כתובות IP שהוקצו לשירותים) ויעדים שאפשר לגשת אליהם באמצעות מסלולים מותאמים אישית ב-VPC.
אם רשת ה-VPC כוללת נתיב ברירת מחדל, עדיין אפשר לנתב מנות לאינטרנט אחרי שהן עוברות עיבוד על ידי המחבר, אם מגדירים שער Cloud NAT כדי לספק שירותי NAT לרשת המשנה שבה המחבר משתמש. החבילות האלה כפופות לנתיבים ברשת ה-VPC ולכללי חומת האש שחלים על רשת ה-VPC. אתם יכולים להשתמש בהגדרות של מסלולים וחומת אש כדי לשלוט ביציאה מהאינטרנט של כל הבקשות היוצאות שנשלחות מהפונקציה שלכם דרך מחבר של Serverless VPC Access.
שליטה בתעבורת נתונים יוצאת של שירותים
אפשר לציין הגדרת תעבורת נתונים יוצאת (egress) של VPC באמצעות מסוףGoogle Cloud , Google Cloud CLI או קובץ YAML כשיוצרים שירות חדש או פורסים גרסה חדשה:
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על עריכה ופריסה של עדכון חדש.
אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Container(s), Volumes, Networking, Security (מאגרים, אמצעי אחסון, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.
נכנסים לכרטיסייה Networking.
- אחרי שבוחרים מחבר VPC, בוחרים באפשרות ניתוב רק של בקשות לכתובות IP פרטיות ל-VPC או באפשרות ניתוב כל התנועה ל-VPC.
לוחצים על יצירה או על פריסה.
gcloud
כדי לציין הגדרת יציאה, משתמשים בדגל --vpc-egress. אפשר לציין הגדרה של תעבורת נתונים יוצאת (egress) במהלך הפריסה:
gcloud run deploy SERVICE \ --image IMAGE_URL \ --vpc-connector CONNECTOR_NAME \ --vpc-egress EGRESS_SETTING
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE: השם של השירות. - IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה,
us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמטLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. -
CONNECTOR_NAME: השם של המחבר. -
EGRESS_SETTING: ערך של הגדרת יציאה:-
all-traffic: שליחת כל התעבורה היוצאת דרך המחבר. -
private-ranges-only: שולח רק תעבורה לכתובות פנימיות דרך מחבר ה-VPC.
-
אפשר גם לעדכן שירות קיים ולשנות את הגדרת תעבורת הנתונים היוצאת:
gcloud run services update SERVICE --vpc-egress EGRESS_SETTING
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE: השם של השירות. -
EGRESS_SETTING: ערך הגדרת היציאה כמו שמופיע למעלה.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, מורידים את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מוסיפים או מעדכנים את מאפיין
run.googleapis.com/vpc-access-egressמתחת למאפייןannotationsמתחת למאפייןspecברמה העליונה:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME run.googleapis.com/vpc-access-egress: EGRESS_SETTING name: REVISION
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
- CONNECTOR_NAME: השם של המחבר.
כשמציינים הגדרת יציאה, חובה להשתמש במאפיין
run.googleapis.com/vpc-access-connector. - EGRESS_SETTING: אחת מהאפשרויות הבאות:
-
all-traffic: שליחת כל התעבורה היוצאת דרך המחבר. -
private-ranges-only: שולח רק תעבורה לכתובות פנימיות דרך מחבר ה-VPC. - REVISION עם שם חדש של גרסה או למחוק אותה (אם היא קיימת). אם מספקים שם חדש לגרסה, חובה שהוא יעמוד בקריטריונים הבאים:
- מתחיל ב-
SERVICE- - הוא מכיל רק אותיות קטנות, מספרים וגם
- - לא מסתיים ב-
- - לא חורג מ-63 תווים
- מתחיל ב-
-
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
שליטה בתעבורת נתונים יוצאת של משימות
אפשר לציין הגדרת יציאה של VPC באמצעותGoogle Cloud המסוף, Google Cloud CLI או קובץ YAML כשיוצרים או מעדכנים משימה:
המסוף
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוניות של המשימה. אם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת המשימה).
לוחצים על Container(s), Volumes, Connections, Security (מאגרי נתונים, אמצעי אחסון, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
לוחצים על הכרטיסייה Connections (קישורים).
- אחרי שבוחרים מחבר, בוחרים באפשרות ניתוב רק של בקשות לכתובות IP פרטיות ל-VPC או באפשרות ניתוב כל התנועה ל-VPC.
לוחצים על יצירה או על עדכון.
gcloud
כדי לציין הגדרת יציאה, משתמשים בדגל --vpc-egress. אפשר לציין הגדרת תעבורת נתונים יוצאת (egress) במהלך תהליך פריסת העבודה:
gcloud run jobs create JOB \ --image IMAGE_URL \ --vpc-connector CONNECTOR_NAME \ --vpc-egress EGRESS_SETTING
מחליפים את מה שכתוב בשדות הבאים:
-
JOB: שם המשימה. - IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה,
us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמטLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. -
CONNECTOR_NAME: השם של המחבר. -
EGRESS_SETTING: ערך של הגדרת יציאה:-
all-traffic: שליחת כל התעבורה היוצאת דרך המחבר. -
private-ranges-only: שולח רק תעבורה לכתובות פנימיות דרך מחבר ה-VPC.
-
אפשר גם לעדכן משימה קיימת ולשנות את הגדרת תעבורת הנתונים היוצאת (egress):
gcloud run jobs update JOB --vpc-egress EGRESS_SETTING
מחליפים את מה שכתוב בשדות הבאים:
-
JOB: שם המשימה. -
EGRESS_SETTING: ערך הגדרת היציאה כמו שמופיע למעלה.
YAML
אפשר להוריד ולראות הגדרות של משימה קיימת באמצעות הפקודה gcloud run jobs describe --format export, שמניבה תוצאות נקיות בפורמט YAML. אחר כך אפשר לשנות את השדות שמתוארים בהמשך ולהעלות את קובץ ה-YAML ששונה באמצעות הפקודה gcloud run jobs replace.
חשוב לוודא שאתם משנים רק את השדות שמתועדים.
כדי להחליף את העבודה בהגדרה החדשה, משתמשים בפקודה הבאה:
gcloud run jobs replace job.yaml
מוסיפים או מעדכנים את מאפיין
run.googleapis.com/vpc-access-egressמתחת למאפייןannotationsמתחת למאפייןspecברמה העליונה:apiVersion: serving.knative.dev/v1 kind: Job metadata: name: JOB spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME run.googleapis.com/vpc-access-egress: EGRESS_SETTING
מחליפים את מה שכתוב בשדות הבאים:
- JOB: השם של המשימה ב-Cloud Run.
- CONNECTOR_NAME: השם של המחבר. כשמציינים הגדרת יציאה, צריך להשתמש במאפיין
run.googleapis.com/vpc-access-connector. - EGRESS_SETTING: אחת מהאפשרויות הבאות:
-
all-traffic: שליחת כל התעבורה היוצאת דרך המחבר. -
private-ranges-only: שולח רק תעבורה לכתובות פנימיות דרך מחבר ה-VPC.
-
מחליפים את המשימה בהגדרה החדשה שלה באמצעות הפקודה הבאה:
gcloud run jobs replace job.yaml
הצגת הגדרות המחבר
כדי לראות את ההגדרות הנוכחיות של מחבר Serverless VPC Access לשירות או לעבודה, אפשר להשתמש במסוף Google Cloud או בכלי gcloud של שורת הפקודה:
המסוף
לוחצים על השירות או על המשרה שרוצים לראות את דף הפרטים שלהם.
לוחצים על הכרטיסייה Revisions (גרסאות) בשירות הרלוונטי.
לוחצים על הכרטיסייה Configuration (הגדרה) של המשימה.
ההגדרה של מחבר הגישה ל-VPC מאפליקציית serverless מופיעה בכרטיסייה Networking (רשת).
gcloud
כדי לראות את ההגדרות של השירות, משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
כדי לראות את ההגדרות של העבודה, משתמשים בפקודה הבאה:
gcloud run jobs describe JOB
מאתרים את ההגדרה של מחבר הגישה ל-VPC מאפליקציית serverless בתצורה שמוחזרת.
ניתוק מרשת VPC
ניתוק שירות
אפשר לנתק שירות מרשת ה-VPC באמצעות מסוף Google Cloud או Google Cloud CLI:
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על עריכה ופריסה של עדכון חדש.
אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Container(s), Volumes, Networking, Security (מאגרים, אמצעי אחסון, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.
נכנסים לכרטיסייה Networking.
- בשדה Network, בוחרים באפשרות None כדי לנתק את השירות מרשת VPC.
לוחצים על יצירה או על פריסה.
gcloud
כדי לנתק שירות, משתמשים בפקודה gcloud run services update עם הדגל הבא:
gcloud run services update SERVICE --clear-vpc-connector
- מחליפים את SERVICE בשם השירות.
המחברים ממשיכים לצבור חיובים גם אם אין תנועה והם מנותקים. לפרטים נוספים, אפשר לעיין במחירון. אם אין לכם יותר צורך במחבר, הקפידו למחוק אותו כדי למנוע חיובים נוספים.
ניתוק של משרה
אפשר לנתק את העבודה מרשת ה-VPC באמצעות מסוף Google Cloud או Google Cloud CLI:
המסוף
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוניות של המשימה. אם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת המשימה).
לוחצים על Container(s), Volumes, Connections, Security (מאגרי נתונים, אמצעי אחסון, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
לוחצים על הכרטיסייה Connections (קישורים).
- בשדה רשת, בוחרים באפשרות ללא כדי לנתק את העבודה מרשת VPC.
לוחצים על יצירה או על עדכון.
gcloud
כדי לנתק את העבודה, משתמשים בפקודה gcloud run jobs update עם הדגל הבא:
gcloud run jobs update JOB --clear-vpc-connector
מחליפים את JOB בשם של העבודה.
המחברים ממשיכים לצבור חיובים גם אם אין תנועה והם מנותקים. לפרטים נוספים, אפשר לעיין במחירון. אם אין לכם יותר צורך במחבר, הקפידו למחוק אותו כדי למנוע חיובים נוספים.
עדכון מחבר
אתם יכולים לעדכן ולנטר את המאפיינים הבאים של המחבר באמצעות 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