קישוריות לרשת פרטית
בדף הזה מוסבר איך להגדיר את Integration Connectors כדי להתחבר באופן פרטי לאפליקציות העורף שלכם. כדי להבין את ההסבר, צריך להכיר את המושגים הבאים:Integration Connectors תומך בקישוריות למערכות העורפיות שלכם שמארחות ברשת פרטית. כדי להפעיל קישוריות פרטית, צריך להשתמש ב-Private Service Connect (PSC). PSC מאפשר להתחבר לשירותים ברשתות שונות באופן פרטי.
במקרה של Integration Connectors, מבחינת הרשת, אתם הבעלים של השירות המנוהל ו-Integration Connectors הוא צרכן השירות. בתור בעלים של שירות מנוהל, אתם צריכים להגדיר חיבור שירות PSC ש-Integration Connectors יכולים להשתמש בו כדי לצרוך את השירות. אחרי שקובץ השירות מוכן, אפשר להגדיר את החיבור כדי להשתמש בקובץ השירות באמצעות קובץ נקודת קצה.
קבצים מצורפים בנקודות קצה
צירופי נקודות קצה הם משאבים של Integration Connectors שמאפשרים ליצור חיבורים כדי לקבוע קישוריות לאפליקציות העורפיות באמצעות צירופי שירות PSC.
בתמונה הבאה מוצמד endpoint שמאפשר ליצור קישוריות לאפליקציית backend באמצעות שירות PSC:
אפשר ליצור את צירוף נקודת הקצה ככתובת IP או כשם מארח.
יצירת קובץ מצורף לנקודת קצה ככתובת IP
כדי ליצור צירוף של נקודת קצה ככתובת IP, אפשר להשתמש במסוף Cloud או בשורת הפקודה (gcloud). מוסבר על התפקידים השונים ב-IAM ועל ההרשאות התואמות שזמינות ל-Integration Connectors.המסוף
כדי ליצור חיבור לנקודת קצה ממסוף Cloud:
- פותחים את הדף Endpoint attachments (קבצים מצורפים של נקודות קצה) ב-Integration Connectors.
- לוחצים על + Create. ייפתח הדף Create Endpoint Attachment.
- מזינים ערכים בשדות הבאים:
- שם: שם של קובץ מצורף לנקודת קצה. השם חייב להיות ייחודי. לא יכולים להיות עוד קבצים מצורפים של נקודות קצה עם אותו שם, ואי אפשר לשנות את השם מאוחר יותר. השם צריך להתחיל באות קטנה, להמשיך בעד 63 אותיות קטנות, מספרים או מקפים, ולא להסתיים במקף. האורך המינימלי הוא 2.
- מזהה של שירות מצורף: השם של השירות המצורף ל-PSC שכבר יצרתם.
- (אופציונלי) תיאור: מזינים תיאור לחיבור של נקודת הקצה.
- (אופציונלי) Labels: מזינים תוויות של משאבים כצמדי מפתח/ערך. מידע נוסף על תוויות זמין במאמר מהן תוויות?
- (אופציונלי) הפעלת גישה גלובלית לנקודת הקצה: בוחרים באפשרות הזו אם רוצים
לשלוח תנועה לשרת העורפי מחיבור שקיים בכל אזור.
כברירת מחדל, כדי להשתמש בנקודת הקצה המצורפת, גם החיבור וגם העורף האחורי צריכים להיות באותו אזור. לכן, אם מפעילים גישה גלובלית לנקודת הקצה, חיבור שקיים בכל אזור יכול לשלוח תנועה אל ה-Backend.
- לוחצים על יצירה.
בעמודה כתובת IP מצוינת כתובת ה-IP של הקובץ המצורף של נקודת הקצה. אתם צריכים להשתמש בכתובת ה-IP הזו כשמגדירים מחבר לקישוריות פרטית.
gcloud
כדי ליצור חיבור של נקודת קצה משורת הפקודה:
- מקבלים את משאב קובץ ה-PSC המצורף:
gcloud compute service-attachments list
הפקודה מחזירה את רשימת קבצים מצורפים לשירות. לדוגמה:
NAME REGION TARGET_SERVICE CONNECTION_PREFERENCE demo-sa us-west1 k8s2-tcp-tgysilgj-apps-ingressgateway-fzdhwstg ACCEPT_AUTOMATIC
תצטרכו את פרטי ה-Service Attachment בשלבים הבאים.
- לפני שמריצים את CreateEndpointAttachment API, צריך לקבל טוקן אימות:
TOKEN="$(gcloud auth print-access-token)"
- יוצרים את נקודת הקצה המצורפת באמצעות CreateEndpointAttachment API. לדוגמה:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "projects/PROJECT_ID/locations/LOCATION/endpointAttachments/ENDPOINT_ATTACHMENT_NAME", "serviceAttachment": "projects/demo/serviceAttachments/?SERVICE_ATTACHMENT_NAME" }' \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpointAttachments?endpointAttachmentId=ENDPOINT_ATTACHMENT_NAMEכאשר:
- LOCATION הוא האזור של קובץ השירות המצורף. לדוגמה,
us-west1. - PROJECT_ID הוא הפרויקט בענן של Google שבו יצרתם את צירוף ה-PSC של השירות.
- ENDPOINT_ATTACHMENT_NAME הוא השם של קובץ ה-endpoint המצורף. השם חייב להיות ייחודי. לא יכולות להיות עוד נקודות קצה מצורפות עם אותו שם, ואי אפשר לשנות את השם הזה בהמשך. השם חייב להתחיל באות קטנה, ואחריה יכולות להיות עד 31 אותיות קטנות, מספרים או מקפים, אבל הוא לא יכול להסתיים במקף. האורך המינימלי הוא 2.
- SERVICE_ATTACHMENT_NAME הוא השם של קובץ השירות המצורף. משתמשים בשם של קובץ השירות של PSC שהוחזר מהפקודה
gcloud compute service-attachments listשהופעלה קודם.
אחרי שמפעילים את ה-API, כלי Integration Connectors מתחיל פעולה ממושכת, ויכול להיות שיעבור זמן עד שהפעולה תושלם. החיבור של נקודת הקצה נוצר אחרי שהפעולה מסתיימת בהצלחה.
- LOCATION הוא האזור של קובץ השירות המצורף. לדוגמה,
- מקבלים את מזהה הפרויקט של ספריית השירותים שמשויכת לפרויקט בענן של Google, ואז מוסיפים את מזהה הפרויקט הזה לרשימת ההיתרים של קובץ השירות.
- כדי לוודא שנוצר קובץ מצורף לנקודת הקצה, משתמשים ב-GetEndpointAttachment API.
לדוגמה:
curl -X GET -H "Authorization: Bearer $TOKEN" \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpointAttachments/ENDPOINT_ATTACHMENT_NAMEה-API מחזיר תגובה שדומה לדוגמה הבאה:
{ "name": "projects/demo-project/locations/us-central1/endpointAttachments/demo-ea", "createTime": "2023-04-17T04:34:59.569527046Z", "updateTime": "2023-04-17T04:37:25.189074195Z", "description": "demo endpoint attachment", "serviceAttachment": "projects/demo-project/regions/us-central1/serviceAttachments/demo-sa", "endpointIp": "10.0.0.0", "labels": {"team":"sre"}, }כתובת ה-IP של קובץ ה-endpoint זמינה בשדה
endpointIp. בדוגמה הזו של התשובה, כתובת ה-IP היא10.0.0.0. משתמשים בכתובת ה-IP הזו כשמגדירים מחבר לקישוריות פרטית.
אם יצירת הקובץ המצורף לנקודת הקצה תצליח, הקובץ המצורף החדש יופיע בדף Endpoint Attachments (קבצים מצורפים לנקודות קצה), כמו בתמונה הבאה:
בשלבים שתיארנו עד עכשיו מוסבר איך ליצור צירוף של נקודת קצה ככתובת IP. עם זאת, אפשר גם ליצור קובץ מצורף של נקודת קצה כשם מארח ולהשתמש בשם המארח כדי להגדיר מחבר לקישוריות פרטית. במאמר יצירת קובץ מצורף לנקודת קצה כשם מארח מוסבר איך ליצור קובץ מצורף לנקודת קצה עם שם מארח.
יצירת צירוף של נקודת קצה כשם מארח
כדי ליצור חיבור לנקודת קצה בתור שם מארח, מבצעים את המשימות הבאות:
- יצירת קובץ מצורף לנקודת קצה ככתובת IP. מידע נוסף זמין במאמר בנושא יצירת צירוף של נקודת קצה ככתובת IP.
- יוצרים תחום (zone) פרטי מנוהל ב-Cloud DNS בכל אחד מהפרויקטים שלכם ב-Google Cloud.
באזור ה-DNS הזה, צריך להוסיף שם מארח שרוצים להשתמש בו להגדרת המחבר, ולמפות את שם המארח לכתובת ה-IP של קובץ ה-endpoint שקיבלתם בשלב 1. מידע על יצירת אזור פרטי מנוהל ב-Cloud DNS זמין במאמרים יצירת אזור פרטי והוספת רשומה.
- יוצרים אזור מנוהל של Integration Connectors בפרויקט בענן של Google שבו משתמשים ב-Integration Connectors. התחום המנוהל (peering zone) של Integration Connectors מתקשר עם התחום המנוהל הפרטי של Cloud DNS (שנוצר בשלב 2) כדי לפתור שמות.
לפני שיוצרים את האזור המנוהל, צריך להעניק את התפקידים וההרשאות הבאים:
- נותנים את ההרשאה
connectors.managedZones.createלמשתמש שיוצר את האזור המנוהל של Integration Connectors.ההרשאה
connectors.managedZones.createזמינה בתפקידroles/connectors.adminב-IAM או בתפקידroles/connectors.managedZonesAdminב-IAM. במאמר תפקידים והרשאות ב-IAM עבור Integration Connectors מוסבר על התפקידים השונים ב-IAM ועל ההרשאות התואמות שזמינות ל-Integration Connectors. - מקצים את התפקיד
role/dns.peerלחשבון השירות שלservice-PROJECT_NUMBER@gcp-sa-connectorsiam.gserviceaccount.comIntegration Connectors.אם פרויקט Google Cloud של Cloud DNS שונה מפרויקט Google Cloud של Integration Connectors, צריך להעניק את התפקיד
roles/dns.peerלחשבון השירות של Integration Connectors בפרויקט Google Cloud של Cloud DNS. לדוגמה, נניח שרוצים ליצור את האזור המנוהל של Integration Connectors בפרויקט Google Cloud מספר 12345, ו-Cloud DNS נמצא בפרויקט Google Cloud מספר 67890. במקרה כזה, צריך להעניק את התפקידroles/dns.peerלחשבון השירותservice-12345@gcp-sa-connectors.iam.gserviceaccount.comבפרויקט Google Cloud מספר 67890.
כדי ליצור אזור מנוהל של Integration Connectors, אפשר להשתמש במסוף Cloud או בשורת הפקודה (gcloud).
המסוף
כדי ליצור אזור מנוהל של Integration Connectors ממסוף Cloud:
- עוברים לדף 'אזורים מנוהלים' של Integration Connectors.
- מזינים ערכים בשדות הבאים:
- שם: שם לאזור המנוהל.
- שם DNS של יעד: שם מלא של Cloud DNS שיוצרים עבורו את התחום המנוהל (פירינג). לדוגמה,
server8.stage.user.private. - פרויקט היעד: השם של הפרויקט ב-Google Cloud שכולל את האזור הפרטי של Cloud DNS.
- רשת יעד: השם של רשת ה-VPC שבה מתבצע התחזוקה של תחום ה-DNS הפרטי ב-Cloud DNS.
- (אופציונלי) תיאור: מזינים תיאור לחיבור של נקודת הקצה.
- (אופציונלי) Labels: מזינים תוויות של משאבים כצמדי מפתח/ערך. מידע נוסף על תוויות זמין במאמר מהן תוויות?
- לוחצים על יצירה.
gcloud
כדי ליצור אזור מנוהל של Integration Connectors משורת הפקודה:
- לפני שמריצים את CreateManagedZone API, צריך לקבל טוקן אימות:
TOKEN="$(gcloud auth print-access-token)"
- יוצרים את האזור המנוהל באמצעות CreateManagedZone API. לדוגמה:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "description": "DESCRIPTION", "dns": "DNS_NAME", "target_project": "TARGET_PROJECT", "target_vpc": "TARGET_VPC" }' \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones?managedZoneId=MANAGED_ZONE_NAMEכאשר:
- DESCRIPTION הוא תיאור אופציונלי של האזור המנוהל.
- DNS_NAME: השם המלא של Cloud DNS שעבורו אתם יוצרים את התחום המנוהל (התחום המקשר). לדוגמה,
server8.stage.user.private. - TARGET_PROJECT הוא השם של פרויקט Google Cloud שכולל את האזור הפרטי של Cloud DNS.
- TARGET_NETWORK הוא השם של רשת ה-VPC שבה מתנהל תחום ה-DNS הפרטי של Cloud DNS.
- PROJECT_ID הוא פרויקט הענן שלכם ב-Google Cloud שבו אתם משתמשים ב-Integration Connectors.
- MANAGED_ZONE_NAME הוא השם של האזור המנוהל. השם חייב להיות ייחודי. לא יכולים להיות אזורים מנוהלים אחרים עם אותו שם, ואי אפשר לשנות את השם מאוחר יותר. השם צריך להתחיל באות קטנה, ואחריה יכולות להיות עד 63 אותיות קטנות, מספרים או מקפים, אבל הוא לא יכול להסתיים במקף. האורך המינימלי הוא 2.
אחרי שמפעילים את ה-API, כלי Integration Connectors מתחיל פעולה ממושכת, ויכול להיות שיעבור זמן עד שהפעולה תושלם. האזור המנוהל ייווצר אחרי שהפעולה תושלם בהצלחה.
- בודקים אם האזור המנוהל נוצר באמצעות GetManagedZone API.
לדוגמה:
curl -X GET -H "Authorization: Bearer $TOKEN" \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones/MANAGED_ZONE_NAMEה-API מחזיר תגובה שדומה לדוגמה הבאה:
{ "name": "projects/demo-project/locations/global/managedZones/demo-mz", "createTime": "2023-04-17T04:34:59.569527046Z", "updateTime": "2023-04-17T04:37:25.189074195Z", "description": "demo managed zone", "dns": "api.private.service.com.", "targetVpc": "target-project-vpc", "targetProject": "target-project" }
- נותנים את ההרשאה
אם יצירת האזור המנוהל תצליח, האזור המנוהל החדש יופיע בדף אזורים מנוהלים, כמו בתמונה הבאה:
הוספת פרויקט Integration Connectors לרשימת ההיתרים בקובץ מצורף של שירות
אפשר ליצור את קובץ השירות של PSC כך שהוא יקבל בקשות רק מהפרויקטים שצוינו ב-Google Cloud. עם זאת, כדי לעשות את זה, צריך את מזהה הפרויקט של ספריית השירותים שמשויכת לפרויקט בענן של Google. כדי לקבל את מזהה הפרויקט של ספריית השירותים, אפשר להשתמש ב-List Connections API כמו בדוגמה הבאה.
תחביר
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"
מחליפים את מה שכתוב בשדות הבאים:
- CONNECTORS_PROJECT_ID: המזהה של הפרויקט בענן של Google שבו יצרתם את החיבור.
דוגמה
בדוגמה הזו מקבלים את מזהה הפרויקט של ספריית השירותים עבור פרויקט בענן של Google Cloud connectors-test.
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"
הרצת הפקודה הזו במסוף מציגה פלט דומה לזה:
.....
{
"connections": [
{
"name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa",
"createTime": "2022-10-07T09:02:31.905048520Z",
"updateTime": "2022-10-07T09:22:39.993778690Z",
"connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1",
"status": {
"state": "ACTIVE"
},
"configVariables": [
{
"key": "project_id",
"stringValue": "connectors-test"
},
{
"key": "dataset_id",
"stringValue": "testDataset"
}
],
"authConfig": {},
"serviceAccount": "564332356444-compute@developer.gserviceaccount.com",
"serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime",
"nodeConfig": {
"minNodeCount": 2,
"maxNodeCount": 50
}
},
....
בפלט לדוגמה, מזהה הפרויקט של ספריית השירותים בפרויקט Google Cloud connectors-test הוא abcdefghijk-tp.
אימות החיבור של נקודת הצירוף
כדי לאמת את החיבור של קובץ המצורף של נקודת הקצה:
- בדף Endpoint Attachments, לוחצים על השם של קובץ נקודת הקצה שיצרתם.
- בדף Endpoint Attachment Details שמופיע, בודקים את השדה Connection state. אם הסטטוס הוא
Accepted, סימן שהקובץ המצורף של נקודת הקצה הוגדר בצורה נכונה והחיבור של Private Service Connect נוצר.מידע על סטטוסים אחרים מופיע במאמר סטטוסים של חיבורים.
הגדרת חיבור לשימוש בקובץ המצורף של נקודת הקצה
ב-Integration Connectors, כשיוצרים חיבור חדש או מעדכנים חיבור קיים, בקטע Destinations (יעדים), בוחרים באפשרות Endpoint attachment (צירוף נקודת קצה) בתור Destination Type (סוג היעד) ובוחרים את צירוף נקודת הקצה שיצרתם מתוך הרשימה Endpoint Attachment (צירוף נקודת קצה).
אם יצרתם אזור מנוהל, בוחרים באפשרות כתובת המארח בתור סוג היעד ומשתמשים ברשומת A שיצרתם כשיצרתם את האזור המנוהל.
קישוריות לסוגים שונים של רשתות פרטיות
למרות שהקישוריות הפרטית ב-Integration Connectors תמיד תהיה דרך קובץ מצורף של שירות PSC, השלבים להגדרת קישוריות פרטית משתנים מעט בהתאם לסביבה. בקטעים הבאים מוסבר איך ליצור קישוריות פרטית בסביבות השונות:
- הקצה העורפי מתארח בשרת מקומי
- הקצה העורפי מתארח ב-Google VPC
- האירוח של ה-Backend מתבצע בסביבה ללא שרתים ב-Google Cloud
- הקצה העורפי זמין כשירות מנוהל של Google Cloud