חיבור לרשת VPC

בדף הזה נסביר איך להשתמש בחיבור לרשת (VPC) מאפליקציית serverless כדי לחבר את שירותי App Engine בסביבה הרגילה ישירות לרשת ה-VPC, וכך לאפשר גישה למופעי מכונות וירטואליות של Compute Engine, למופעי Memorystore ולכל משאב אחר עם כתובת IP פנימית.

לפני שמתחילים

יצירת מחבר של חיבור לרשת (VPC) מאפליקציית serverless

כדי לשלוח בקשות לרשת ה-VPC ולקבל את התשובות המתאימות בלי להשתמש באינטרנט הציבורי, אפשר להשתמש במחבר של חיבור לרשת (VPC) מאפליקציית serverless.

אם המחבר נמצא באותו פרויקט כמו רשת ה-VPC שלו, אתם יכולים ליצור מחבר באמצעות רשת משנה קיימת או ליצור מחבר ורשת משנה חדשה.

אם המחבר שלכם נמצא בפרויקט שירות ומשתמש ברשת VPC משותפת, המחבר ורשת ה-VPC המשויכת שלו נמצאים בפרויקטים שונים. אם המחבר ורשת ה-VPC שלו נמצאים בפרויקטים שונים, מנהל רשת ה-VPC המשותפת צריך ליצור את רשת המשנה של המחבר ברשת ה-VPC המשותפת לפני שיוצרים את המחבר, וצריך ליצור את המחבר באמצעות רשת משנה קיימת.

מידע נוסף על הדרישות בנושא רשתות משנה זמין במאמר בנושא הדרישות בנושא רשתות משנה של מחברים.

מידע על קצב העברת הנתונים של המחבר, כולל סוג המכונה והתאמת קנה מידה, זמין במאמר קצב העברת נתונים והתאמת קנה מידה.

אפשר ליצור מחבר באמצעות מסוף Google Cloud ,‏ Google Cloud CLI או Terraform.

המסוף

  1. עוברים לדף הסקירה הכללית של חיבור לרשת (VPC) מאפליקציית serverless.

    עוברים אל חיבור לרשת (VPC) מאפליקציית serverless

  2. לוחצים על יצירת מחבר.

  3. בשדה שם, מזינים שם למחבר בהתאם למוסכמות למתן שמות ב-Compute Engine, עם הדרישות הנוספות הבאות: השם צריך להיות באורך של פחות מ-21 תווים, ומקפים (-) נספרים כשני תווים.

  4. בשדה אזור, בוחרים אזור למחבר. האזור הזה צריך להיות זהה לאזור של השירות ללא שרת.

  5. בשדה רשת, בוחרים את רשת ה-VPC שאליה רוצים לצרף את המחבר.

  6. בשדה Subnet, בוחרים באחת מהאפשרויות הבאות:

    • יצירת מחבר באמצעות רשת משנה קיימת: בוחרים את רשת המשנה הקיימת בשדה רשת משנה.

    • ליצור מחבר ורשת משנה חדשה: בוחרים באפשרות טווח כתובות IP בהתאמה אישית בשדה רשת משנה. לאחר מכן, מזינים את הכתובת הראשונה ב-/28CIDR שלא נמצא בשימוש (לדוגמה, 10.8.0.0/28) כדי להשתמש בה כטווח כתובות IPv4 ראשי של רשת משנה חדשה שנוצרת ברשת ה-VPC של המחבר. Google Cloud מוודאים שטווח כתובות ה-IP לא מתנגש עם נתיבים קיימים ברשת ה-VPC של המחבר. השם של רשת המשנה החדשה מתחיל בקידומת 'aet-'.

  7. (אופציונלי) כדי להגדיר אפשרויות שינוי גודל לשליטה נוספת במחבר, לוחצים על הצגת הגדרות שינוי גודל כדי להציג את טופס שינוי הגודל.

    1. מגדירים את מספר המכונות המינימלי והמקסימלי למחבר, או משתמשים בערכי ברירת המחדל: 2 (מינימום) ו-10 (מקסימום). המחבר מתרחב עד למקסימום שצוין אם השימוש בתנועה דורש זאת, אבל המחבר לא מצטמצם בחזרה כשהתנועה פוחתת. חובה להשתמש בערכים בין 2 ל-10.
    2. בתפריט Instance Type, בוחרים את סוג המכונה שבה רוצים להשתמש עבור המחבר, או משתמשים בברירת המחדל e2-micro. שימו לב לסרגל הצד של העלויות בצד שמאל כשבוחרים את סוג המופע, שבו מוצגים רוחב הפס ואומדני העלויות.
  8. לוחצים על יצירה.

  9. כשמחבר מוכן לשימוש, יופיע סימן וי ירוק ליד השם שלו.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. מעדכנים את הרכיבים של gcloud לגרסה האחרונה:

    gcloud components update
  3. מוודאים ש-Serverless VPC Access API מופעל בפרויקט:

    gcloud services enable vpcaccess.googleapis.com
  4. יוצרים את המחבר באחת מהדרכים הבאות:

    פרטים נוספים וארגומנטים אופציונליים זמינים במאמר הזה.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.
  5. לפני שמשתמשים במחבר, מוודאים שהוא במצב READY:

    gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \
    --region REGION

    מחליפים את מה שכתוב בשדות הבאים:

    • CONNECTOR_NAME: השם של המחבר. זה השם שציינתם בשלב הקודם.
    • REGION: האזור של המחבר. זהו האזור שציינתם בשלב הקודם.

    הפלט צריך לכלול את השורה state: READY.

Terraform

אפשר להשתמש במשאב של Terraform כדי להפעיל את vpcaccess.googleapis.com API.

resource "google_project_service" "vpcaccess-api" {
  project = var.project_id # Replace this with your project ID in quotes
  service = "vpcaccess.googleapis.com"
}

אתם יכולים להשתמש במודולים של Terraform כדי ליצור רשת VPC ותת-רשת, ואז ליצור את המחבר.

module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 16.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "my-serverless-network"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "serverless-subnet"
      subnet_ip     = "10.10.10.0/28"
      subnet_region = "us-central1"
    }
  ]
}

module "serverless-connector" {
  source     = "terraform-google-modules/network/google//modules/vpc-serverless-connector-beta"
  version    = "~> 16.0"
  project_id = var.project_id
  vpc_connectors = [{
    name        = "central-serverless"
    region      = "us-central1"
    subnet_name = module.test-vpc-module.subnets["us-central1/serverless-subnet"].name
    # host_project_id = var.host_project_id # Specify a host_project_id for shared VPC
    machine_type  = "e2-standard-4"
    min_instances = 2
    max_instances = 7
    }
    # Uncomment to specify an ip_cidr_range
    #   , {
    #     name          = "central-serverless2"
    #     region        = "us-central1"
    #     network       = module.test-vpc-module.network_name
    #     ip_cidr_range = "10.10.11.0/28"
    #     subnet_name   = null
    #     machine_type  = "e2-standard-4"
    #     min_instances = 2
    #   max_instances = 7 }
  ]
  depends_on = [
    google_project_service.vpcaccess-api
  ]
}

הגדרת השירות לשימוש במחבר

אחרי שיוצרים מחבר Serverless VPC Access, צריך להגדיר כל שירות באפליקציית App Engine שרוצים לחבר לרשת ה-VPC.

כדי לציין מחבר לשירות באפליקציה:

  1. מוסיפים את השדה vpc_access_connector לקובץ app.yaml של השירות:

    vpc_access_connector:
     name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
    

    כאשר PROJECT_ID הוא מזהה הפרויקט, Google Cloud , REGION הוא האזור שבו נמצא המחבר, ו-CONNECTOR_NAME הוא שם המחבר.

  2. פורסים את השירות:

    gcloud app deploy
    

אחרי שפורסים את השירות, הוא יכול לשלוח בקשות לכתובות IP פנימיות כדי לגשת למשאבים ברשת ה-VPC.

גישה למשאבי VPC

כללי חומת אש שנדרשים למחברים בפרויקטים של שירותים

אם יוצרים מחבר ברשת VPC עצמאית או בפרויקט המארח של רשת VPC משותפת, Google Cloud יוצר את כל כללי חומת האש שנדרשים להפעלת המחבר. מידע נוסף זמין במאמר כללים של חומת אש למחברים ברשתות VPC עצמאיות או בפרויקטים מארחים של VPC משותף.

עם זאת, אם יוצרים מחבר בפרויקט שירות והמחבר מכוון לרשת VPC משותפת בפרויקט המארח, צריך להוסיף כללים לחומת האש כדי לאפשר את התעבורה הדרושה לפעולת המחבר מהטווחים הבאים:

הטווחים האלה משמשים את התשתית של Google שעליה מבוססים Cloud Run, פונקציות Cloud Run וסביבת App Engine רגילה. כל הבקשות מכתובות ה-IP האלה מגיעות מהתשתית של Google, כדי לוודא שכל משאב serverless מתקשר רק עם המחבר שאליו הוא מחובר.

בנוסף, צריך לאפשר תנועה מרשת המשנה של מחבר לנתונים למשאבים ברשת ה-VPC.

כדי לבצע את השלבים האלה, צריך להיות לכם אחד מהתפקידים הבאים בפרויקט המארח:

בהגדרה בסיסית, מחילים את הכללים כדי לאפשר למשאבי serverless בכל פרויקט שירות שמחובר לרשת ה-VPC המשותפת לשלוח בקשות לכל משאב ברשת.

כדי להחיל את הכללים האלה, מריצים את הפקודות הבאות בפרויקט המארח:

  1. יוצרים כללים של חומת אש שמאפשרים לבקשות מהתשתית חסרת השרתים של 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 שאליה רוצים לצרף את המחבר.

  2. יוצרים כלל חומת אש לתעבורת נתונים נכנסת ברשת ה-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 או בכללים במדיניות חומת אש. אפשר להגביל את הגישה באמצעות אחת מהאסטרטגיות הבאות:

  • יוצרים כללי תעבורה נכנסת שהיעדים שלהם מייצגים את המשאבים שרוצים להגביל את הגישה של מכונות וירטואליות של מחברים אליהם, והמקורות שלהם מייצגים את המכונות הווירטואליות של המחברים.
  • יוצרים כללי יציאה שהיעדים שלהם מייצגים את המכונות הווירטואליות של המחבר, והיעדים שלהם מייצגים את המשאבים שרוצים להגביל את הגישה של המכונות הווירטואליות של המחבר אליהם.

הדוגמאות הבאות ממחישות כל אסטרטגיה.

הגבלת הגישה באמצעות כללי כניסה

כדי לשלוט בתעבורה הנכנסת לרשת ה-VPC, בוחרים באפשרות תגי רשת או בטווחים של CIDR.

תגים של רשתות

השלבים הבאים מראים איך ליצור כללי תעבורה נכנסת שמגבילים את הגישה של מחבר לרשת ה-VPC שלכם על סמך תגי הרשת של המחבר.

  1. צריך לוודא שיש לכם את ההרשאות הנדרשות להוספת כללי חומת אש. אתם צריכים להיות בעלי אחד מהתפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):

  2. דחיית תנועת נתונים של מחבר ברשת ה-VPC.

    יוצרים כלל חומת אש לתעבורה נכנסת עם עדיפות נמוכה מ-1000 ברשת ה-VPC כדי לחסום תעבורה נכנסת מתג רשת המחברים. הכלל הזה מבטל את כלל חומת האש המרומז שנוצר כברירת מחדל על ידי חיבור לרשת (VPC) מאפליקציית serverless ברשת ה-VPC.

    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 מייצג את העדיפות הגבוהה ביותר.

  3. מאפשרים לתנועה של מחברים להגיע למשאב שאליו אמורה להגיע תנועה של מחברים.

    משתמשים בדגלים 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 של המחבר.

  1. צריך לוודא שיש לכם את ההרשאות הנדרשות להוספת כללי חומת אש. אתם צריכים להיות בעלי אחד מהתפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):

  2. חסימת התנועה של מחבר ברשת ה-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 מייצג את העדיפות הגבוהה ביותר.

  3. מאפשרים לתנועה של מחברים להגיע למשאב שאליו אמורה להגיע תנועה של מחברים.

    משתמשים בדגלים 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)

בשלבים הבאים מוסבר איך ליצור כללי יציאה כדי להגביל את הגישה למחבר.

  1. מוודאים שיש לכם את ההרשאות הנדרשות להוספת כללי חומת אש. אתם צריכים להיות בעלי אחד מהתפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):

  2. דחיית תנועת יציאה מהמחבר.

    יוצרים כלל חומת אש לתעבורת נתונים יוצאת במחבר 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 מייצג את העדיפות הגבוהה ביותר.

  3. מאפשרים תעבורת נתונים יוצאת (egress) כשהיעד נמצא בטווח ה-CIDR שרוצים שהמחבר יקבל אליו גישה.

    משתמשים בדגלים allow ו-destination-ranges כדי ליצור כלל חומת אש שמאפשר תעבורת נתונים יוצאת מהמחבר לטווח יעד ספציפי. מגדירים את טווח היעד לטווח ה-CIDR של המשאב ברשת ה-VPC שרוצים שהמחבר יוכל לגשת אליו. מגדירים את העדיפות של הכלל הזה לערך נמוך יותר מהעדיפות של הכלל שיצרתם בשלב הקודם.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --destination-ranges=RESOURCE_CIDR_RANGE \
    --direction=EGRESS \
    --network=VPC_NETWORK \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --priority=PRIORITY

    מחליפים את מה שכתוב בשדות הבאים:

    • RULE_NAME: השם של כלל חומת האש החדש. לדוגמה, allow-vpc-connector-for-select-resources.

    • PROTOCOL: פרוטוקול אחד או יותר שרוצים לאפשר ממחבר ה-VPC. הפרוטוקולים הנתמכים הם tcp או udp. לדוגמה, tcp:80,udp מאפשר תעבורת TCP דרך יציאה 80 ותעבורת UDP. מידע נוסף זמין במאמרי העזרה בנושא הדגל allow.

    • RESOURCE_CIDR_RANGE: טווח ה-CIDR של המחבר שהגישה אליו מוגבלת

    • VPC_NETWORK: השם של רשת ה-VPC

    • VPC_CONNECTOR_NETWORK_TAG: תג הרשת של מחבר ה-VPC האוניברסלי, אם רוצים שהכלל יחול על כל מחברי ה-VPC הקיימים ועל כל מחברי ה-VPC שייווצרו בעתיד. או תג הרשת הייחודי של מחבר ה-VPC אם רוצים לשלוט במחבר ספציפי. אם השתמשתם בתג רשת ייחודי בשלב הקודם, השתמשו בתג הרשת הייחודי.

    • PRIORITY: מספר שלם שקטן מהעדיפות שהגדרתם בשלב הקודם. לדוגמה, אם הגדרתם את העדיפות של הכלל שיצרתם בשלב הקודם ל-990, נסו להגדיר אותה ל-980.

למידע נוסף על הדגלים הנדרשים והאופציונליים ליצירת כללים של חומת אש, אפשר לעיין במאמרי העזרה בנושא gcloud compute firewall-rules create.

ניהול המחבר

שליטה בתעבורת נתונים יוצאת משירות

כברירת מחדל, רק בקשות לכתובות IP פנימיות ולשמות DNS פנימיים מנותבות דרך מחבר של Serverless VPC Access. אפשר לציין את הגדרת תעבורת הנתונים היוצאת (egress) של השירות בקובץ app.yaml.

הגדרות תעבורת נתונים יוצאת (egress) לא תואמות לשירות אחזור של כתובות אתרים. שימוש בספרייה urlfetch מתעלם מהגדרות היציאה, והבקשות לא ינותבו דרך מחבר של חיבור לרשת (VPC) מאפליקציית serverless.

כדי להגדיר את התנהגות היציאה של שירות App Engine:

  1. מוסיפים את המאפיין egress_setting לשדה vpc_access_connector בקובץ app.yaml של השירות:

    vpc_access_connector:
      name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
      egress_setting: EGRESS_SETTING

    מחליפים את:

    • PROJECT_ID במזהה הפרויקט ב- Google Cloud
    • REGION עם האזור שבו נמצא המחבר
    • CONNECTOR_NAME בשם המחבר
    • EGRESS_SETTING עם אחת מהאפשרויות הבאות:
      • private-ranges-only ברירת מחדל. רק בקשות לטווחים של כתובות IP מסוג RFC 1918 ו-RFC 6598 או לשמות DNS פנימיים מנותבות לרשת ה-VPC. כל הבקשות האחרות מנותבות ישירות לאינטרנט.
      • all-traffic כל הבקשות היוצאות מהשירות מנותבות לרשת ה-VPC. הבקשות כפופות לכללי חומת האש, ה-DNS והניתוב של רשת ה-VPC. שימו לב: ניתוב כל הבקשות היוצאות לרשת ה-VPC מגדיל את כמות התעבורה היוצאת שמטופלת על ידי המחבר של חיבור לרשת (VPC) מאפליקציית serverless, ועלול לגרור חיובים.
  2. פורסים את השירות:

    gcloud app deploy
    

ניתוק שירות מרשת VPC

כדי לנתק שירות מרשת VPC, מסירים את השדה vpc_access_connector מהקובץ app.yaml ומפעילים מחדש את השירות.

המחברים ממשיכים לצבור חיובים גם אם אין תנועה והם מנותקים. פרטים נוספים זמינים בדף תמחור. אם אתם לא צריכים יותר את המחבר, הקפידו למחוק אותו כדי למנוע חיובים נוספים.

עדכון מחבר

אתם יכולים לעדכן ולנטר את המאפיינים הבאים של המחבר באמצעות Google Cloud המסוף, Google Cloud CLI או ה-API:

  • סוג המכונה (המופע)
  • מספר המופעים המינימלי והמקסימלי
  • הנתונים האחרונים של קצב העברת הנתונים, מספר המופעים וניצול המעבד

עדכון סוג המכונה

המסוף

  1. עוברים לדף הסקירה הכללית של חיבור לרשת (VPC) מאפליקציית serverless.

    עוברים אל חיבור לרשת (VPC) מאפליקציית serverless

  2. בוחרים את כלי החיבור שרוצים לערוך ולוחצים על עריכה.

  3. ברשימה Instance type, בוחרים את סוג המכונה (המופע) המועדף. מידע על סוגי המכונות שזמינים מופיע במאמר בנושא תפוקה ושינוי גודל.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי לעדכן את סוג המכונה של המחבר, מריצים את הפקודה הבאה בטרמינל:

    gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
    מחליפים את מה שכתוב בשדות הבאים:

    • CONNECTOR_NAME: השם של המחבר
    • REGION: השם של האזור של המחבר
    • MACHINE_TYPE: סוג המכונה המועדף. מידע על סוגי המכונות הזמינים מופיע במאמר בנושא תפוקה ושינוי גודל.

הקטנת המספר המינימלי והמקסימלי של מופעים

כדי להקטין את מספר המינימום והמקסימום של המופעים, צריך לבצע את הפעולות הבאות:

  1. יוצרים מחבר חדש עם הערכים המועדפים.
  2. מעדכנים את השירות או הפונקציה כדי להשתמש במחבר החדש.
  3. אחרי שמעבירים את התנועה של המחבר הישן, מוחקים אותו.

הגדלת המספר המינימלי והמקסימלי של מופעים

המסוף

  1. עוברים לדף הסקירה הכללית של חיבור לרשת (VPC) מאפליקציית serverless.

    עוברים אל חיבור לרשת (VPC) מאפליקציית serverless

  2. בוחרים את כלי החיבור שרוצים לערוך ולוחצים על עריכה.

  3. בשדה Minimum instances (מינימום מופעים), בוחרים את מספר המופעים המינימלי המועדף.

    הערך הקטן ביותר האפשרי בשדה הזה הוא הערך הנוכחי. הערך הגדול ביותר שאפשר להזין בשדה הזה הוא הערך הנוכחי בשדה מספר מופעים מקסימלי פחות 1. לדוגמה, אם הערך בשדה Maximum instances (מספר מופעים מקסימלי) הוא 8, הערך הגדול ביותר שאפשר להזין בשדה Minimum instances (מספר מופעים מינימלי) הוא 7.

  4. בשדה מספר מופעים מקסימלי, בוחרים את המספר המקסימלי המועדף של מופעים.

    הערך הקטן ביותר האפשרי בשדה הזה הוא הערך הנוכחי. הערך הגדול ביותר האפשרי בשדה הזה הוא 10.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי להגדיל את מספר המופעים המינימלי או המקסימלי של המחבר, מריצים את הפקודה הבאה בטרמינל:

    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 :

  1. עוברים לדף הסקירה הכללית של חיבור לרשת (VPC) מאפליקציית serverless.

    עוברים אל חיבור לרשת (VPC) מאפליקציית serverless

  2. לוחצים על השם של מחבר הנתונים שרוצים לעקוב אחריו.

  3. בוחרים את מספר הימים שרוצים להציג, בין 1 ל-90 ימים.

  4. בתרשים Throughput (קצב העברת נתונים), מחזיקים את הסמן מעל התרשים כדי לראות את קצב העברת הנתונים האחרון של המחבר.

  5. בתרשים Number of instances (מספר המופעים), מעבירים את מצביע העכבר מעל התרשים כדי לראות את מספר המופעים שהמחבר השתמש בהם לאחרונה.

  6. בתרשים CPU Utilization, מעבירים את מצביע העכבר מעל התרשים כדי לראות את השימוש האחרון במעבד של המחבר. בתרשים מוצג השימוש במעבד שמפוזר על פני מופעים עבור המאון ה-50, המאון ה-95 והמאון ה-99.

מחיקת מחבר

לפני שמוחקים מחבר, צריך להסיר אותו מכל המשאבים ללא שרתים שעדיין משתמשים בו. אם תמחקו את המחבר לפני שתסירו אותו מהמשאבים חסרי השרת, לא תוכלו למחוק את רשת ה-VPC בהמשך.

משתמשים ב-VPC משותף שהגדירו מחברים בפרויקט המארח של ה-VPC המשותף יכולים להשתמש בפקודה gcloud compute networks vpc-access connectors describe כדי להציג את רשימת הפרויקטים שיש בהם משאבים מסוג serverless שמשתמשים במחבר נתון.

כדי למחוק מחבר, משתמשים במסוף Google Cloud או ב-Google Cloud CLI:

המסוף

  1. נכנסים לדף הסקירה הכללית של חיבור לרשת (VPC) מאפליקציית serverless במסוףGoogle Cloud :

    עוברים אל חיבור לרשת (VPC) מאפליקציית serverless

  2. בוחרים את המחבר שרוצים למחוק.

  3. לוחצים על Delete.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי למחוק מחבר, משתמשים בפקודה 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'. לדוגמה, אפשר ליצור אילוץ מותאם אישית שמציין באילו תת-רשתות יכול מחבר של חיבור לרשת (VPC) מאפליקציית serverless להשתמש.

אחרי שמחילים את המדיניות, בקשות שמפרות מדיניות שמחילה אילוץ מותאם אישית מציגות הודעת שגיאה ב-CLI של gcloud וביומנים של Serverless VPC Access. הודעת השגיאה מכילה את מזהה האילוץ ואת התיאור של האילוץ המותאם אישית שהופר.

העברה בירושה של מדיניות

כברירת מחדל, מדיניות הארגון עוברת בירושה לצאצאים של המשאבים שבהם אתם אוכפים את המדיניות. לדוגמה, אם אוכפים מדיניות בתיקייה, 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.". האורך המקסימלי של השדה הזה הוא 2, 000 תווים.

מידע נוסף על יצירת אילוץ בהתאמה אישית זמין במאמר הגדרת אילוצים בהתאמה אישית.

הגדרת אילוץ בהתאמה אישית

המסוף

כדי ליצור אילוץ בהתאמה אישית:

  1. במסוף Google Cloud , נכנסים לדף מדיניות הארגון.

    מעבר למדיניות הארגון

  2. בבורר הפרויקטים, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
  3. לוחצים על Custom constraint (הגבלה מותאמת אישית).
  4. בתיבה שם לתצוגה, מזינים שם שקל לקרוא אותו עבור האילוץ. השם הזה משמש בהודעות שגיאה, ואפשר להשתמש בו לזיהוי ולניפוי באגים. אל תשתמשו בפרטים אישיים מזהים (PII) או במידע אישי רגיש בשמות לתצוגה, כי השם הזה עשוי להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 200 תווים.
  5. בתיבה Constraint ID (מזהה ההגבלה), מזינים את המזהה שרוצים להגדיר להגבלה החדשה בהתאמה אישית. אילוץ מותאם אישית יכול להכיל רק אותיות (כולל אותיות גדולות וקטנות) או מספרים, למשל custom.defaultNetworkConstraint. השדה הזה יכול להכיל עד 70 תווים, לא כולל הקידומת (custom.), לדוגמה, organizations/123456789/customConstraints/custom. אל תכללו פרטים אישיים מזהים (PII) או נתונים רגישים במזהה האילוץ, כי הם עלולים להיחשף בהודעות שגיאה.
  6. בתיבה Description, מזינים תיאור של האילוץ שכתוב בצורה שקריאה לאנשים. התיאור הזה משמש כהודעת שגיאה כשמתרחשת הפרה של המדיניות. לכלול פרטים על הסיבה להפרת המדיניות ואיך לפתור אותה. אל תכללו בתיאור פרטים אישיים מזהים (PII) או מידע אישי רגיש, כי הם עלולים להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 2,000 תווים.
  7. בתיבה Resource type, בוחרים את השם של משאב REST‏ Google Cloud שמכיל את האובייקט והשדה שרוצים להגביל – לדוגמה, container.googleapis.com/NodePool. רוב סוגי המשאבים תומכים בעד 20 אילוצים מותאמים אישית. אם תנסו ליצור עוד אילוצים בהתאמה אישית, הפעולה תיכשל.
  8. אפשר לאכוף את ההגבלה הזו רק בשיטת REST‏ CREATE.
  9. כדי לראות את השיטות הנתמכות לכל שירות, מחפשים את השירות ב שירותים שתומכים באילוצים בהתאמה אישית.

  10. כדי להגדיר תנאי, לוחצים על Edit condition.
    1. בחלונית Add condition, יוצרים תנאי CEL שמתייחס למשאב שירות נתמך, לדוגמה, resource.management.autoUpgrade == false. השדה הזה יכול להכיל עד 1,000 תווים. פרטים על השימוש ב-CEL זמינים במאמר בנושא Common Expression Language. מידע נוסף על משאבי השירות שאפשר להשתמש בהם באילוצים בהתאמה אישית זמין במאמר שירותים שתומכים באילוצים בהתאמה אישית.
    2. לוחצים על Save.
  11. בקטע פעולה, בוחרים אם לאשר או לדחות את השיטה שנבדקה אם התנאי מתקיים.
  12. הפעולה deny (דחייה) פירושה שהפעולה ליצירה או לעדכון של המשאב נחסמת אם התנאי מוערך כ-True.

    הפעולה allow (אישור) אומרת שהפעולה ליצירה או לעדכון של המשאב מותרת רק אם התנאי מחזיר את הערך true. כל מקרה אחר, מלבד אלה שמפורטים במפורש בתנאי, נחסם.

  13. לוחצים על יצירת אילוץ.
  14. אחרי שמזינים ערך בכל שדה, מופיעה משמאל הגדרת ה-YAML המקבילה לאילוץ המותאם אישית הזה.

gcloud

  1. כדי ליצור אילוץ בהתאמה אישית, יוצרים קובץ YAML בפורמט הבא:
  2. name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
    resourceTypes: RESOURCE_NAME
    methodTypes:
      - CREATE
    condition: "CONDITION"
    actionType: ACTION
    displayName: DISPLAY_NAME
    description: DESCRIPTION

    מחליפים את מה שכתוב בשדות הבאים:

    • 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.
    • הפעולה allow (אישור) אומרת שאם התנאי מקבל את הערך True, הפעולה ליצירה או לעדכון של המשאב מותרת. המשמעות היא שכל מקרה אחר, מלבד המקרה שמופיע במפורש בתנאי, ייחסם.

    • DISPLAY_NAME: שם קריא לאנשים של האילוץ. השם הזה מופיע בהודעות שגיאה ויכול לשמש לזיהוי ולניפוי באגים. אל תשתמשו בפרטים אישיים מזהים (PII) או במידע אישי רגיש בשמות המוצגים, כי השם הזה עלול להיחשף בהודעות שגיאה. השדה הזה יכול להכיל עד 200 תווים.
    • DESCRIPTION: תיאור ידידותי למשתמש של האילוץ שיוצג כהודעת שגיאה אם המדיניות תופר. השדה הזה יכול להכיל עד 2,000 תווים.
  3. אחרי שיוצרים קובץ YAML לאילוץ חדש בהתאמה אישית, צריך להגדיר אותו כדי שיהיה זמין למדיניות הארגון בארגון. כדי להגדיר אילוץ בהתאמה אישית, משתמשים בפקודה gcloud org-policies set-custom-constraint:
  4. gcloud org-policies set-custom-constraint CONSTRAINT_PATH

    מחליפים את CONSTRAINT_PATH בנתיב המלא לקובץ האילוצים המותאמים אישית. לדוגמה, /home/user/customconstraint.yaml.

    אחרי שהפעולה הזו תושלם, האילוצים המותאמים אישית יהיו זמינים כמדיניות ארגונית ברשימת Google Cloud מדיניות הארגון.

  5. כדי לוודא שהאילוץ המותאם אישית קיים, משתמשים בפקודה gcloud org-policies list-custom-constraints:
  6. gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID

    מחליפים את ORGANIZATION_ID במזהה של משאב הארגון.

    מידע נוסף זמין במאמר בנושא צפייה במדיניות הארגון.

החלת אילוץ מותאם אישית

כדי לאכוף אילוץ, יוצרים מדיניות ארגון שמפנה אליו, ואז מחילים את מדיניות הארגון הזו על משאב Google Cloud .

המסוף

  1. במסוף Google Cloud , נכנסים לדף מדיניות הארגון.

    מעבר למדיניות הארגון

  2. בתפריט לבחירת פרויקט, בוחרים את הפרויקט שרוצים להגדיר לו את מדיניות הארגון.
  3. מהרשימה בדף מדיניות הארגון, בוחרים את האילוץ כדי לראות את הדף פרטי המדיניות של האילוץ הזה.
  4. כדי להגדיר את מדיניות הארגון עבור המשאב הזה, לוחצים על ניהול מדיניות.
  5. בדף עריכת מדיניות, בוחרים באפשרות במקום המדיניות של המשאב הראשי.
  6. לוחצים על Add a rule.
  7. בקטע Enforcement (אכיפה), בוחרים אם מדיניות הארגון הזו נאכפת או לא.
  8. אופציונלי: כדי להגדיר את מדיניות הארגון כתלויה בתג, לוחצים על הוספת תנאי. הערה: אם מוסיפים כלל מותנה למדיניות ארגון, צריך להוסיף לפחות כלל לא מותנה אחד, אחרת אי אפשר לשמור את המדיניות. מידע נוסף על מדיניות ארגונית עם תגים
  9. לוחצים על בדיקת שינויים כדי לדמות את ההשפעה של מדיניות הארגון. מידע נוסף זמין במאמר בדיקת שינויים במדיניות הארגון באמצעות סימולטור המדיניות.
  10. כדי לאכוף את המדיניות של הארגון במצב פרימטר לבדיקות, לוחצים על הגדרת המדיניות להרצת בדיקה. מידע נוסף זמין במאמר בנושא בדיקת מדיניות הארגון.
  11. אחרי שמוודאים שמדיניות הארגון במצב הרצה יבשה פועלת כמו שרוצים, לוחצים על הגדרת מדיניות כדי להגדיר את המדיניות הפעילה.

gcloud

  1. כדי ליצור מדיניות ארגונית עם כללים בוליאניים, יוצרים קובץ YAML של מדיניות שמפנה לאילוץ:
  2. name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - enforce: true
    
    dryRunSpec:
      rules:
      - enforce: true

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: הפרויקט שבו רוצים לאכוף את האילוץ.
    • CONSTRAINT_NAME: השם שהגדרתם לאילוץ המותאם אישית. לדוגמה, custom.defaultNetworkConstraint.
  3. כדי לאכוף את מדיניות הארגון במצב הרצה יבשה, מריצים את הפקודה הבאה עם הדגל dryRunSpec:
  4. gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec

    מחליפים את POLICY_PATH בנתיב המלא לקובץ ה-YAML של מדיניות הארגון. יכולות לעבור עד 15 דקות עד שהמדיניות תיכנס לתוקף.

  5. אחרי שמוודאים שמדיניות הארגון במצב הרצה יבשה פועלת כמו שרוצים, מגדירים את המדיניות הפעילה באמצעות הפקודה org-policies set-policy והדגל spec:
  6. 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 שחוסמים כניסה מטווח כתובות ה-IP של המחבר.

אם מגדירים מחבר בפרויקט שירות של VPC משותף, צריך לוודא שכללי חומת האש מאפשרים תעבורת נתונים נכנסת מהתשתית חסרת השרתים אל המחבר.

שגיאה מסוג 'החיבור נדחה'

אם אתם מקבלים שגיאות connection refused או connection timeout שפוגעות בביצועים של הרשת, יכול להיות שהחיבורים שלכם גדלים ללא הגבלה בכל הפעלה של האפליקציה ללא שרת. כדי להגביל את המספר המקסימלי של חיבורים שמשמשים לכל מופע, צריך להשתמש בספריית לקוח שתומכת במאגרי חיבורים. דוגמאות מפורטות לשימוש במאגרי חיבורים מופיעות במאמר בנושא ניהול חיבורים למסדי נתונים.

השגיאה 'המשאב לא נמצא'

כשמוחקים רשת VPC או כלל חומת אש, יכול להיות שתוצג הודעה דומה לזו: The resource "aet-uscentral1-subnet--1-egrfw" was not found.

מידע על השגיאה הזו ופתרון שלה זמין במאמר שגיאה: לא נמצא משאב במסמכי התיעוד בנושא כללים של חומת אש ב-VPC.

השלבים הבאים