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

במאמר הזה מוסבר איך לגשת לשירותים ברשת VPC אחרת באמצעות נקודות קצה (endpoints) של Private Service Connect. אתם יכולים להתחבר לשירותים שלכם או לשירותים שסופקו על ידי ספקי שירותים אחרים, כולל Google.

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

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

  • מומלץ לקרוא את המאמר מידע על התחברות לשירותים באמצעות נקודות קצה, כולל מגבלות.
  • צריך להפעיל את Compute Engine API בפרויקט.
  • צריך להפעיל את Service Directory API בפרויקט.
  • צריך להפעיל את Cloud DNS API בפרויקט.
  • מזהים או יוצרים רשת משנה רגילה לשימוש בהקצאת כתובת IP לנקודת הקצה.
    • רשת המשנה צריכה להיות באותו אזור כמו השירות שאליו רוצים להתחבר.
    • אפשר להשתמש בכתובת IPv4 מתת-רשת IPv4 בלבד או מתת-רשת עם תמיכה כפולה.
    • אפשר להשתמש בכתובת IPv6 מרשת משנה מסוג IPv6 בלבד או מרשת משנה עם מחסנית כפולה, אם לרשת המשנה יש טווח כתובות IPv6 פנימיות.
    • גרסת ה-IP של כתובת ה-IP משפיעה על השירותים שפורסמו שאליהם נקודת הקצה יכולה להתחבר. מידע נוסף זמין במאמר בנושא תרגום של גרסת IP.
  • כללי חומת האש של תעבורת נתונים יוצאת צריכים לאפשר תעבורת נתונים לכתובת ה-IP הפנימית של נקודת הקצה. כלל חומת האש implied allow egress מאפשר יציאה לכל כתובת IP של יעד. אם יצרתם כללי חומת אש לדחיית תעבורת נתונים יוצאת (egress) ברשת ה-VPC, או אם יצרתם מדיניות חומת אש היררכית שמשנה את התנהגות ברירת המחדל של תעבורת נתונים יוצאת (egress), יכול להיות שתהיה לכך השפעה על הגישה לנקודת הקצה. יוצרים כלל או מדיניות ספציפיים של חומת אש ליציאה כדי לאפשר תעבורה ליעד של כתובת ה-IP הפנימית של נקודת הקצה של השירות.
  • צריך שיהיה לכם ה-URI של קובץ השירות המצורף לשירות. לדוגמה, projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

התפקידים הנדרשים

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

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

התפקידים הנדרשים בפרויקט

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

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

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

ההרשאות הנדרשות

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

  • כדי ליצור, להציג ולמחוק נקודות קצה:
    • compute.networks.use בפרויקט
    • compute.subnetworks.use בפרויקט
    • compute.addresses.createInternal בפרויקט
    • compute.addresses.deleteInternal בפרויקט
    • compute.addresses.get בפרויקט
    • compute.addresses.list בפרויקט
    • compute.addresses.use בפרויקט
    • compute.forwardingRules.create בפרויקט
    • compute.forwardingRules.delete בפרויקט
    • compute.forwardingRules.get בפרויקט
    • compute.forwardingRules.list בפרויקט
    • compute.forwardingRules.pscCreate בפרויקט
    • compute.forwardingRules.pscDelete בפרויקט
    • compute.regionOperations.get בפרויקט
    • servicedirectory.namespaces.create בפרויקט
    • servicedirectory.namespaces.delete בפרויקט
    • servicedirectory.services.create בפרויקט
    • servicedirectory.services.delete בפרויקט
  • כדי להגדיר באופן אוטומטי או ידני רשומות DNS לנקודת קצה:
    • dns.managedZones.create בפרויקט
    • dns.managedZones.delete בפרויקט
    • dns.networks.bindPrivateDNSZone בפרויקט
    • servicedirectory.namespaces.associatePrivateZone בפרויקט
  • כדי לגשת לדף Private Service Connect במסוף Google Cloud :
    • compute.forwardingRules.list בפרויקט
    • compute.globalForwardingRules.list בפרויקט
    • compute.networkEndpointGroups.list בפרויקט
    • compute.regionNetworkEndpointGroups.list בפרויקט
    • compute.urlMaps.list בפרויקט
    • compute.backendService.list בפרויקט
    • compute.regionBackendService.list בפרויקט
    • compute.backendBucket.list בפרויקט
    • compute.targetHttpProxy.list בפרויקט
    • compute.targetHttpsProxy.list בפרויקט
    • compute.regionTargetTcpProxy.list בפרויקט
    • compute.targetTcpProxy.list בפרויקט
    • compute.targetSslProxy.list בפרויקט
    • compute.sslCertificate.list בפרויקט
    • compute.sslPolicy.list בפרויקט
    • compute.regionHealthCheck.list בפרויקט
    • compute.healthCheck.list בפרויקט
    • compute.httpHealthCheck.list בפרויקט
    • compute.httpsHealthCheck.list בפרויקט

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

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

אם אתם יוצרים נקודת קצה בפרויקט שירות שמשתמש בכתובת IP מרשת משנה של פרויקט מארח, אתם צריכים את ההרשאות הבאות בנוסף לתפקידים בפרויקט (פרויקט השירות).

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

  • כדי ליצור, להציג ולמחוק נקודות קצה שמשתמשות בכתובת IP של פרויקט מארח: Compute Network User (roles/compute.networkUser) בפרויקט המארח

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

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

ההרשאות הנדרשות

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

  • כדי ליצור, להציג ולמחוק נקודות קצה שמשתמשות בכתובת IP של פרויקט מארח:
    • compute.networks.use בפרויקט המארח
    • compute.subnetworks.use בפרויקט המארח

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

יצירת נקודת קצה

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

כשיוצרים נקודת קצה, היא נרשמת באופן אוטומטי ב-Service Directory באמצעות מרחב שמות שבוחרים או מרחב השמות שמוגדר כברירת מחדל, goog-psc-default.

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

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

המסוף

  1. נכנסים לדף Private Service Connect במסוף Google Cloud .

    כניסה אל Private Service Connect

  2. לוחצים על הכרטיסייה Connected endpoints (נקודות קצה מחוברות).

  3. לוחצים על Connect endpoint.

  4. בקטע יעד, בוחרים באפשרות שירות שפורסם.

  5. בשדה Target service (שירות יעד), מזינים את מזהה המשאבים האחיד (URI) של קובץ השירות שאליו רוצים להתחבר.

    ה-URI של קובץ השירות המצורף הוא בפורמט הבא: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

  6. בשדה Endpoint name, מזינים שם לשימוש בנקודת הקצה.

  7. בוחרים רשת לנקודת הקצה.

  8. בוחרים רשת משנה לנקודת הקצה.

  9. בוחרים כתובת IP לנקודת הקצה. אם אתם צריכים כתובת IP חדשה, אתם יכולים ליצור אחת:

    1. לוחצים על התפריט הנפתח כתובת IP ובוחרים באפשרות יצירת כתובת IP.
    2. מזינים שם לכתובת ה-IP, ואפשר גם להוסיף תיאור.
    3. בוחרים גרסת IP.
    4. אם יוצרים כתובת IPv4, בוחרים באפשרות הקצאה אוטומטית או באפשרות אני רוצה לבחור.

      אם בחרתם באפשרות אני רוצה לבחור, מזינים את כתובת ה-IP המותאמת אישית שבה רוצים להשתמש.

    5. לוחצים על Reserve.

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

  11. בוחרים מרחב שמות מהרשימה הנפתחת או יוצרים מרחב שמות חדש.

    השדה אזור מאוכלס על סמך רשת המשנה שנבחרה.

  12. לוחצים על הוספת נקודת קצה.

gcloud

  1. שומרים כתובת IP פנימית להקצאה לנקודת הקצה.

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --subnet=SUBNET \
        --ip-version=IP_VERSION
    

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

    • ADDRESS_NAME: השם שיוקצה לכתובת ה-IP השמורה.

    • REGION: האזור של כתובת ה-IP של נקודת הקצה. זה חייב להיות אותו אזור שמכיל את קובץ השירות של יצרן השירות.

    • SUBNET: השם של תת-הרשת של כתובת ה-IP של נקודת הקצה.

    • IP_VERSION: גרסת ה-IP של כתובת ה-IP, שיכולה להיות IPV4 או IPV6. ברירת המחדל היא IPV4. כדי לציין את IPV6, כתובת ה-IP צריכה להיות מחוברת לתת-רשת עם טווח כתובות IPv6 פנימי.

  2. יוצרים כלל העברה כדי לחבר את נקודת הקצה ל-Service Attachment של בעלי השירות המנוהל. כברירת מחדל, נקודות קצה זמינות רק מהאזור שלהן. כדי להפוך נקודת קצה לזמינה מכל אזור, משתמשים בדגל --allow-psc-global-access.

    • יוצרים נקודת קצה שאפשר לגשת אליה רק מהאזור שלה.

      gcloud compute forwarding-rules create ENDPOINT_NAME \
          --region=REGION \
          --network=NETWORK_NAME \
          --address=ADDRESS_NAME \
          --target-service-attachment=SERVICE_ATTACHMENT \
          [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
      
    • יוצרים נקודת קצה שאפשר לגשת אליה מכל אזור.

      gcloud compute forwarding-rules create ENDPOINT_NAME \
          --region=REGION \
          --network=NETWORK_NAME \
          --address=ADDRESS_NAME \
          --target-service-attachment=SERVICE_ATTACHMENT \
          --allow-psc-global-access \
          [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
      

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

    • ENDPOINT_NAME: השם שרוצים להקצות לנקודת הקצה.

    • REGION: האזור של נקודת הקצה. האזור הזה חייב להיות זהה לאזור שמכיל את קובץ השירות של ספק השירות.

    • NETWORK_NAME: השם של רשת ה-VPC של נקודת הקצה.

    • ADDRESS_NAME: השם של הכתובת השמורה.

    • SERVICE_ATTACHMENT: ה-URI של קובץ השירות המצורף של ספק השירות. לדוגמה: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

    • PROJECT_ID: מזהה הפרויקט.

    • NAMESPACE: מרחב השמות של Service Directory שבו רוצים להשתמש. אם מציינים מרחב שמות שלא קיים, המערכת יוצרת אותו.

      אם לא מציינים את הדגל --service-directory-registration, נעשה שימוש במרחב השמות שמוגדר כברירת מחדל goog-psc-default.

API

  1. שומרים כתובת IP פנימית להקצאה לנקודת הקצה.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
    
    
    {
      "name": "ADDRESS_NAME",
      "addressType": "INTERNAL",
      "subnetwork": "SUBNET_URI",
      "ipVersion": "IP_VERSION"
    }
    

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

    • PROJECT_ID: מזהה הפרויקט.

    • REGION: האזור של נקודת הקצה. האזור הזה חייב להיות זהה לאזור שמכיל את קובץ השירות של ספק השירות.

    • ADDRESS_NAME: השם שיוקצה לכתובת ה-IP השמורה.

    • SUBNET_URI: תת-הרשת של כתובת ה-IP. כדי למצוא את כתובות ה-URL של הרשתות, אפשר להשתמש בשיטה subnetworks.list ‎ או ב-gcloud compute networks subnets list --uri.

    • IP_VERSION: גרסת ה-IP של כתובת ה-IP, שיכולה להיות IPV4 או IPV6. ברירת המחדל היא IPV4. כדי לציין את IPV6, כתובת ה-IP צריכה להיות מחוברת לתת-רשת עם טווח כתובות IPv6 פנימי.

  2. יוצרים כלל העברה כדי לחבר את נקודת הקצה ל-Service Attachment של בעלי השירות המנוהל. כברירת מחדל, נקודות קצה זמינות רק מהאזור שלהן. כדי להפוך נקודת קצה לזמינה מכל אזור, מגדירים את הערך allowPscGlobalAccess ל-true.

    • יוצרים נקודת קצה שאפשר לגשת אליה רק מהאזור שלה.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
      
      {
        "name": "ENDPOINT_NAME",
        "IPAddress": "ADDRESS_URI",
        "target": "SERVICE_ATTACHMENT",
        "network": "NETWORK_URI",
        "serviceDirectoryRegistrations": [
            {
                "namespace": "NAMESPACE"
            }
        ]
      }
      
    • יוצרים נקודת קצה שאפשר לגשת אליה מכל אזור.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
      
      {
        "name": "ENDPOINT_NAME",
        "IPAddress": "ADDRESS_URI",
        "target": "SERVICE_ATTACHMENT",
        "network": "NETWORK_URI",
        "allowPscGlobalAccess": true,
        "serviceDirectoryRegistrations": [
            {
                "namespace": "NAMESPACE"
            }
        ]
      }
      

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

    • PROJECT_ID: מזהה הפרויקט.

    • REGION: האזור של נקודת הקצה.

    • ENDPOINT_NAME: השם שרוצים להקצות לנקודת הקצה.

    • ADDRESS_URI: ה-URI של הכתובת השמורה ברשת המשויכת.

    • SERVICE_ATTACHMENT: ה-URI של קובץ השירות המצורף של בעל השירות. לדוגמה: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

    • NETWORK_URI: רשת ה-VPC של נקודת הקצה. כדי למצוא את ה-URI של הרשת, משתמשים בשיטה network.list ‎ או ב-gcloud compute networks list --uri.

    • NAMESPACE: מרחב השמות של נקודת הקצה. אם תציינו מרחב שמות שלא קיים, הוא ייווצר. אם משמיטים את השדה namespace, מוקצה מרחב השמות שמוגדר כברירת מחדל goog-psc-default.

יצירת נקודת קצה בפרויקט שירות של VPC משותף

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

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

gcloud

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

    כתובת ה-IP צריכה להיות באותו אזור שבו נמצא קובץ השירות של יצרן השירות.

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --subnet=projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET \
        --ip-version=IP_VERSION
    

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

    • ADDRESS_NAME: השם שרוצים להקצות לכתובת ה-IP השמורה.
    • REGION: האזור של כתובת ה-IP של נקודת הקצה. זה חייב להיות אותו אזור שמכיל את קובץ השירות של יצרן השירות.
    • HOST_PROJECT: מזהה הפרויקט המארח.
    • HOST_SUBNET: השם של רשת המשנה בפרויקט המארח שמספקת את כתובת ה-IP של נקודת הקצה.
    • IP_VERSION: גרסת ה-IP של כתובת ה-IP, שיכולה להיות IPV4 או IPV6. ברירת המחדל היא IPV4. כדי לציין את IPV6, כתובת ה-IP צריכה להיות מחוברת לתת-רשת עם טווח כתובות IPv6 פנימיות.
  2. כדי ליצור את נקודת הקצה בפרויקט השירות, מבצעים אחת מהפעולות הבאות:

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

      gcloud compute forwarding-rules create ENDPOINT_NAME \
          --region=REGION \
          --network=projects/HOST_PROJECT/global/networks/HOST_NETWORK \
          --address=projects/SERVICE_PROJECT/regions/REGION/addresses/ADDRESS_NAME \
          --target-service-attachment=SERVICE_ATTACHMENT
      

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

      • ENDPOINT_NAME: השם שרוצים להקצות לנקודת הקצה.
      • REGION: האזור של נקודת הקצה. האזור הזה חייב להיות זהה לאזור שבו נמצא קובץ מצורף עם שירות ההפקה.
      • HOST_PROJECT: מזהה הפרויקט של רשת ה-VPC המשותפת.
      • HOST_NETWORK: השם של רשת ה-VPC המשותפת שמכילה את כתובת ה-IP של נקודת הקצה.
      • SERVICE_PROJECT: המזהה של פרויקט השירות.
      • ADDRESS_NAME: השם של כתובת ה-IP השמורה.
      • SERVICE_ATTACHMENT: ה-URI של קובץ השירות המצורף של ספק השירות. לדוגמה: projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
    • אם יש לכם הרשאה להשתמש רק בחלק מרשתות המשנה בפרויקט המארח, אתם צריכים לציין רשת משנה משותפת באמצעות הפקודה הבאה:

      gcloud compute forwarding-rules create ENDPOINT_NAME \
          --region=REGION \
          --subnet=projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET \
          --address=projects/SERVICE_PROJECT/regions/REGION/addresses/ADDRESS_NAME \
          --target-service-attachment=SERVICE_ATTACHMENT
      

      מחליפים את HOST_SUBNET בשם של רשת המשנה שמכילה את כתובת ה-IP של נקודת הקצה.

API

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

    POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT/regions/REGION/addresses
    
    
    {
        "name": "ADDRESS_NAME",
        "addressType": "INTERNAL",
        "subnetwork": "projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET",
        "ipVersion": "IP_VERSION"
    }
    

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

    • SERVICE_PROJECT: המזהה של פרויקט השירות.

    • REGION: האזור של נקודת הקצה. זה צריך להיות אותו אזור שמכיל את קובץ השירות של ספק השירות.

    • ADDRESS_NAME: השם שרוצים להקצות לכתובת ה-IP השמורה.

    • HOST_PROJECT: המזהה של פרויקט המארח.

    • HOST_SUBNET: רשת המשנה בפרויקט המארח.

    • IP_VERSION: גרסת ה-IP של כתובת ה-IP, שיכולה להיות IPV4 או IPV6. ברירת המחדל היא IPV4. כדי לציין את IPV6, כתובת ה-IP צריכה להיות מחוברת לתת-רשת עם טווח כתובות IPv6 פנימיות.

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

    • אם יש לכם הרשאה להשתמש בכל רשתות המשנה בפרויקט המארח, אתם יכולים לשלוח את הבקשה הבאה:

      POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT/regions/REGION/forwardingRules
      
      {
        "name": "ENDPOINT_NAME",
        "IPAddress": "projects/SERVICE_PROJECT/regions/REGION/addresses/ADDRESS_NAME",
        "target": "SERVICE_ATTACHMENT",
        "network": "projects/HOST_PROJECT/global/networks/HOST_NETWORK"
      }
      

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

      • SERVICE_PROJECT: מזהה פרויקט השירות.
      • REGION: האזור של נקודת הקצה. האזור הזה חייב להיות זהה לאזור שבו נמצא קובץ מצורף עם שירות ההפקה.
      • ENDPOINT_NAME: השם שרוצים להקצות לנקודת הקצה.
      • SERVICE_PROJECT: המזהה של פרויקט השירות.
      • ADDRESS_NAME: השם של כתובת ה-IP השמורה.
      • SERVICE_ATTACHMENT: ה-URI של קובץ השירות המצורף של ספק השירות. לדוגמה: projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
      • HOST_PROJECT: המזהה של פרויקט המארח.
      • HOST_NETWORK: השם של רשת ה-VPC המשותפת שמכילה את כתובת ה-IP של נקודת הקצה.
    • אם יש לכם הרשאה להשתמש רק בחלק מרשתות המשנה בפרויקט המארח, אתם יכולים לציין רשת משנה משותפת על ידי שליחת הבקשה הבאה:

      POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT/regions/REGION/forwardingRules
      
      {
        "name": "ENDPOINT_NAME",
        "IPAddress": "projects/SERVICE_PROJECT/regions/REGION/addresses/ADDRESS_NAME",
        "target": "SERVICE_ATTACHMENT",
        "subnetwork": "projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET"
      }
      

      מחליפים את HOST_SUBNET בשם של רשת המשנה שמכילה את כתובת ה-IP של נקודת הקצה.

הצגת רשימה של נקודות קצה

אפשר לראות רשימה של כל נקודות הקצה שהוגדרו.

המסוף

  1. נכנסים לדף Private Service Connect במסוף Google Cloud .

    כניסה אל Private Service Connect

  2. לוחצים על הכרטיסייה Connected endpoints (נקודות קצה מחוברות).

    נקודות הקצה מוצגות.

gcloud

gcloud compute forwarding-rules list \
    --filter 'target~serviceAttachments'

הפלט אמור להיראות כך:

NAME  REGION  IP_ADDRESS  IP_PROTOCOL  TARGET
RULE          IP          TCP          REGION/serviceAttachments/SERVICE_NAME

API

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

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules

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

  • PROJECT_ID: הפרויקט שמכיל את נקודת הקצה.
  • REGION: האזור של נקודת הקצה.

הצגת הפרטים של נקודת הקצה

אפשר לראות את כל פרטי ההגדרה של נקודת קצה, כולל סטטוס החיבור ומזהה ה-URI של נקודת הקצה.

כדי למצוא URI מבוסס-מזהה של נקודת קצה של Private Service Connect, משתמשים ב-Google Cloud CLI או שולחים בקשת API. כתובת ה-URI שמבוססת על המזהה מוצגת בשדה selfLinkWithId. יכול להיות שספק השירות יצטרך את ה-URI הזה אם רשימת ההיתרים של הצרכנים בחיבור השירות מוגדרת לקבל צרכנים על סמך נקודות קצה נפרדות של Private Service Connect.

המסוף

  1. נכנסים לדף Private Service Connect במסוף Google Cloud .

    כניסה אל Private Service Connect

  2. לוחצים על הכרטיסייה Connected endpoints (נקודות קצה מחוברות).

  3. לוחצים על נקודת הקצה שרוצים לראות.

gcloud

gcloud compute forwarding-rules describe \
    ENDPOINT_NAME --region=REGION

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

  • ENDPOINT_NAME: השם של נקודת הקצה.
  • REGION: האזור של נקודת הקצה.

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME

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

  • PROJECT_ID: הפרויקט שמכיל את נקודת הקצה.
  • REGION: האזור של נקודת הקצה.
  • ENDPOINT_NAME: השם של נקודת הקצה.

הוספת תווית לנקודת קצה

אפשר לנהל תוויות לנקודות קצה. הוראות מפורטות זמינות במאמר בנושא הוספת תוויות למשאבים.

מחיקת נקודת קצה

אפשר למחוק נקודת קצה.

עם זאת, ההגדרות הבאות של Service Directory לא נמחקות כשמוחקים את נקודת הקצה:

  • מרחב שמות של Service Directory
  • תחום DNS של Service Directory

שירותים אחרים יכולים להשתמש במרחב השמות של Service Directory ובתחום ה-DNS של Service Directory. לפני שמוחקים את מרחב השמות של Service Directory או מוחקים את אזור ה-DNS של Service Directory, צריך לוודא שמרחב השמות ריק.

המסוף

  1. נכנסים לדף Private Service Connect במסוף Google Cloud .

    כניסה אל Private Service Connect

  2. לוחצים על הכרטיסייה Connected endpoints (נקודות קצה מחוברות).

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

gcloud

gcloud compute forwarding-rules delete ENDPOINT_NAME \
    --region=REGION

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

  • ENDPOINT_NAME: השם של נקודת הקצה.
  • REGION: האזור של נקודת הקצה.

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME

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

  • PROJECT_ID: הפרויקט שמכיל את נקודת הקצה.
  • REGION: האזור של נקודת הקצה.
  • ENDPOINT_NAME: השם של נקודת הקצה.

גישה לנקודות קצה (endpoints) מרשתות היברידיות

לקוחות ברשתות שמחוברות ל- Google Cloud עם קבצים מצורפים של VLAN ל-Cloud Interconnect או למנהרות Cloud VPN יכולים להגיע לנקודות קצה של Private Service Connect.

  • החיבור ל-VLAN או מנהרת Cloud VPN חייבים להסתיים באותה רשת VPC (או רשת VPC משותפת) כמו נקודת הקצה. לקוחות ברשתות VPC מקושרות לא יכולים להגיע לנקודות קצה.

  • תעבורת לקוחות מחיבורי VLAN או ממנהרות Cloud VPN יכולה להגיע לנקודות קצה באזור אחר אם מוגדרת גישה גלובלית.

  • יש תמיכה ב-Dataplane v1 וב-Dataplane v2 לחיבורי VLAN. מידע נוסף על גרסאות של Dataplane זמין במאמר בנושא Dataplane v2.

אם רוצים לגשת לנקודת הקצה באמצעות שם ה-DNS שלה, צריך להגדיר את המערכות ברשת השנייה כך שיוכלו לבצע שאילתות באזורי ה-DNS הפרטיים.

אם הטמעתם את אזורי ה-DNS הפרטיים באמצעות Cloud DNS, צריך לבצע את השלבים הבאים:

צפייה באזורי DNS של Service Directory

אם מתקיימים התנאים המוקדמים להגדרה אוטומטית של DNS, נוצר תחום DNS עם שם בפורמט NAMESPACE--REGION.

המסוף

  1. נכנסים לדף Cloud DNS zones במסוף Google Cloud .

    מעבר לאזורים ב-Cloud DNS

  2. מחפשים אזור פרטי בשם NAMESPACE--REGION.

gcloud

  • כדי להציג את כל אזורי ה-DNS הפרטיים, מריצים את הפקודה הבאה:

    gcloud dns managed-zones list \
        --filter="visibility=private"
    
  • מריצים את הפקודה הבאה כדי לקבל פרטים על אזור עם השם NAMESPACE--REGION.

    gcloud dns managed-zones describe NAMESPACE--REGION
    

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

דרכים אחרות להגדרת DNS

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

הגדרת תחום DNS בספריית השירותים

אם נקודת קצה רשומה ב-Service Directory, אבל לשירות שפורסם שאליו היא מתחברת לא מוגדר שם דומיין, לא מתבצעים שינויים ב-DNS.

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

יוצרים אזור DNS של Service Directory עם ההגדרה הבאה:

  • שם האזור: מציינים NAMESPACE--REGION, כאשר NAMESPACE הוא מרחב השמות שהנקודה הסופית רשומה בו, ו-REGION הוא האזור שבו הנקודה הסופית נוצרה.

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

    שם ה-DNS יכול להיות בפורמט REGION.p.DOMAIN. לדוגמה, אם הדומיין הציבורי של ספק השירות הוא example.com, והשירות שפורסם נמצא ב-us-west1, מומלץ לספק את השירות באמצעות שמות דומיין של us-west1.p.example.com. כוללים נקודה בסוף – לדוגמה, us-west1.p.example.com.

  • מרחב השמות של Service Directory: מרחב השמות שהגדרתם לנקודת הקצה הזו.

צופים בפרטי נקודת הקצה כדי למצוא את מרחב השמות והאזור של Service Directory.

במקרה כזה, אם הגדרתם תחום DNS של Service Directory עם שם ה-DNS‏ us-west1.p.example.com, ואתם יוצרים נקודת קצה עם השם analytics, נוצרת באופן אוטומטי רשומת DNS עבור analytics.us-west1.p.example.com.

רישום נקודת קצה ב-Service Directory

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

אפשר למחוק את נקודת הקצה וליצור נקודת קצה חדשה, שנרשמת באופן אוטומטי ב-Service Directory.

אפשר גם לפעול לפי השלבים הבאים כדי לרשום נקודת קצה קיימת במרחב שמות של Service Directory.

  1. יוצרים מרחב שמות של Service Directory לנקודת הקצה, NAMESPACE.

  2. יוצרים שירות Service Directory לנקודת הקצה, SERVICE_NAME.

    בשדה השירות, צריך להשתמש באותו שם של כלל ההעברה שמשמש לנקודת הקצה, ENDPOINT_NAME.

  3. יוצרים נקודת קצה של Service Directory עם השם default ומשתמשים בכתובת ה-IP וביציאה (443) של נקודת הקצה.

אחרי שרושמים את נקודת הקצה ב-Service Directory, פועלים לפי ההוראות להגדרת תחום DNS של Service Directory.

הגדרה ידנית של DNS

אם מנעתם הגדרה אוטומטית של DNS, או אם היא לא מופעלת בהגדרה שלכם, אתם יכולים להשתמש ב-Cloud DNS כדי ליצור רשומות DNS באופן ידני.

מידע נוסף זמין בדפים הבאים:

  • בקרת גישה: תפקיד מנהל ה-DNS (roles/dns.admin) מספק את ההרשאות שנדרשות ליצירת אזורי DNS ורשומות DNS.

  • יצירת אזור פרטי

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

      יכול להיות שהפורמט יהיה: REGION.p.DOMAIN. לדוגמה, אם הדומיין הציבורי של ספק השירות הוא example.com, והשירות שפורסם נמצא ב-us-west1, מומלץ לספק השירות להשתמש בשמות דומיין us-west1.p.example.com כדי להפוך את השירות לזמין.

  • הוספת רשומה.

בעיות מוכרות

קצוות עורפיים לא תקינים מקבלים תנועה עם נקודות קצה לגישה גלובלית

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

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

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

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

פתרון בעיות

יצירת אזור DNS פרטי נכשלת

כשיוצרים נקודת קצה, נוצר תחום DNS של Service Directory. יצירת אזור יכולה להיכשל מהסיבות הבאות:

  • לא הפעלתם את Cloud DNS API בפרויקט.

  • אין לכם את ההרשאות הנדרשות כדי ליצור אזור DNS של Service Directory.

  • קיים תחום DNS עם אותו שם אזור ברשת ה-VPC הזו.

  • כבר קיים תחום DNS לאותו שם דומיין ברשת ה-VPC הזו.

כדי ליצור באופן ידני את תחום ה-DNS של Service Directory:

  1. מוודאים ש-Cloud DNS API מופעל בפרויקט.

  2. מוודאים שיש לכם את ההרשאות הנדרשות ליצירת תחום DNS של Service Directory:

    • dns.managedZones.create
    • dns.networks.bindPrivateDNSZone
    • servicedirectory.namespaces.associatePrivateZone
  3. אם יש אזור מתנגש, אבל הוא כבר לא נחוץ, מוחקים את אזור ה-DNS.

  4. יוצרים תחום DNS של Service Directory שמגובה על ידי מרחב השמות של Service Directory שמשויך לנקודת הקצה.

סטטוס החיבור של נקודת הקצה הוא בהמתנה

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

הסיבות הנפוצות להצגת הסטטוס PENDING הן:

יצירת נקודת קצה נכשלת כשמוגדרת גישה גלובלית

לא כל השירותים שפורסמו ב-Private Service Connect תומכים בנקודות קצה עם גישה גלובלית. אם יוצרים נקודת קצה עם גישה גלובלית והשירות שפורסם לא תומך בה, מוצגת הודעת השגיאה הבאה:

Private Service Connect global access is not supported for the given forwarding rule, since its producer service does not support consumer global access.

יוצרים את נקודת הקצה בלי האפשרות של גישה גלובלית.

יצירת נקודת הקצה מצליחה, אבל לא נוצר חיבור

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

סטטוס החיבור של נקודת הקצה הוא 'התקבל', אבל התנועה לא זורמת

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

שגיאות חיבור שהועברו

מידע על פתרון בעיות שקשורות להפצה של חיבורים זמין במאמר פתרון בעיות שקשורות להפצה של חיבורים ב-Private Service Connect.

נקודת הקצה (endpoint) סובלת מבעיות בביצועים או מפסקי זמן (timeout) בחיבור

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

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

private_service_connect/consumer/dropped_sent_packets_countהמדד עוקב אחרי מנות מצרכן Private Service Connect, כמו נקודת קצה, לשירות שפורסם שנפסלו כי נקודת הקצה חרגה ממספר החיבורים המקסימלי לשירות.

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

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

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

מדד private_service_connect/consumer/dropped_received_packets_count עוקב אחרי חבילות שנשלחות משירות שפורסם לצרכן Private Service Connect, כמו נקודת קצה, שמושלכות כי Private Service Connect לא יכול למצוא חיבור תואם לחבילות תגובה.

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

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