יצירת מופע של Private Service Connect

בדף הזה מוסבר איך ליצור מופע של Private Service Connect בשביל Secure Source Manager.

מופעים של Private Service Connect לא חושפים נקודות קצה לאינטרנט הציבורי. כשיוצרים מופע של Private Service Connect, נוצרות נקודות קצה (endpoints) כדי לספק גישת SSH (Git) ו-HTTPS (Git, ממשק אינטרנט, API) למופע. לנקודות הקצה צריך להקצות כתובות IP ברשת הפרטית. כל התנועה מהמופע של Private Service Connect ואליו עוברת דרך נקודות הקצה של Private Service Connect.

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

‫Secure Source Manager הוא שירות של דייר יחיד. מומלץ שמופע יחיד של Secure Source Manager יכלול רק משתמשים מלקוח אחד שלGoogle Cloud , אלא אם כמה חברות שיש ביניהן קשר חוזי צריכות להשתמש במופע יחיד לצורך שיתוף פעולה.

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

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

  1. נכנסים לחשבון Google.

    אם עדיין אין חשבון, יוצרים חשבון חדש.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Enable the Secure Source Manager API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. התקינו את ה-CLI של Google Cloud.

  5. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  6. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  9. התקינו את ה-CLI של Google Cloud.

  10. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  11. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init

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

כדי לקבל את ההרשאות שדרושות ליצירת מופע של Private Service Connect Secure Source Manager, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

יצירת זהות בשירות ומאגר רשויות אישורים

בקטע הזה מוסבר איך להשתמש באישור CA משלכם. אם אתם מתכוונים להשתמש בדומיינים מותאמים אישית עם המופע הפרטי שלכם, אתם צריכים להשתמש באישור CA משלכם. כדי להשתמש באישור שמנוהל על ידי Googleבלי דומיינים בהתאמה אישית, לא צריך לעשות שום דבר חוץ מהפעלת gcloud source-manager instances create הפקודה בלי ליצור זהות שירות ומאגר CA. מידע נוסף זמין במאמר יצירת מופע של Secure Source Manager באמצעות Private Service Connect.

אם אתם משתמשים באישור CA משלכם, אתם צריכים לציין שם של מאגר רשויות אישורים (CA) כשאתם יוצרים מופע פרטי של Secure Source Manager. בקשה לחתימה על אישור ה-SSL של ה-HTTPS של המופע נשלחת למאגר רשויות האישורים.

  1. מריצים את הפקודה הבאה כדי ליצור זהות שירות עבור Secure Source Manager API בפרויקט:

    gcloud beta services identity create \
        --service=securesourcemanager.googleapis.com \
        --project=PROJECT_ID
    

    כאשר PROJECT_ID הוא מזהה הפרויקט.

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

    Service identity created: service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com

    כאשר service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com הוא סוכן השירות של Secure Source Manager ו-PROJECT_NUM הוא מספר הפרויקט.

  2. יוצרים מאגר של רשויות אישורים (CA) עם בקשות לאישורים מבוססות CSR.

  3. יוצרים רשות אישורים. אתם יכולים ליצור רשות אישורים (CA) ראשית או משנית, בהתאם לצרכים שלכם.

    למידע נוסף על ההבדלים בין רשויות אישורים (CA) בסיסיות לבין רשויות אישורים משניות, אפשר לעיין במאמר קביעת ההגדרות של רשות אישורים.

  4. צריך להעניק להרשאות זהות השירות של Secure Source Manager API לבקש אישורים חדשים במאגר CA:

    gcloud privateca pools add-iam-policy-binding CA_POOL_NAME \
        --location=CA_LOCATION \
        --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com' \
        --role='roles/privateca.certificateRequester' \
        --project=CA_PROJECT_ID
    

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

    • ‫CA_POOL_NAME בשם שנתתם למאגר CA.
    • ‫CA_LOCATION עם האזור או האזור של מאגר ה-CA.
    • ‫PROJECT_NUMBER עם מספר הפרויקט שבו מופעל Secure Source Manager. כדי לאתר את מספר הפרויקט, אפשר לעיין במאמר בנושא זיהוי פרויקטים.
    • ‫CA_PROJECT_ID עם מזהה הפרויקט שבו יצרתם את מאגר ה-CA.

יצירת מופע של Secure Source Manager עם Private Service Connect

אתם יכולים להקצות דומיינים מותאמים אישית למופע הפרטי שלכם עבור נקודות הקצה של HTML,‏ API,‏ Git HTTP ו-Git SSH. בדומיינים מותאמים אישית נדרש אישור CA משלכם. לכן, כשיוצרים מופע עם דומיינים בהתאמה אישית, צריך לספק מאגר של רשויות אישורים. אפשר להגדיר דומיינים בהתאמה אישית רק במהלך יצירת המכונה באמצעות ה-API. אי אפשר לשנות אותן אחרי שיוצרים את המופע.

gcloud

יוצרים מופע של Private Service Connect באמצעות הפקודה הבאה:

gcloud source-manager instances create INSTANCE_ID \
  --region=LOCATION \
  --project=PROJECT_ID \
  --is-private \
  --ca-pool=projects/CA_PROJECT/locations/CA_LOCATION/caPools/CA_POOL_NAME

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

  • ‫INSTANCE_ID בשם שרוצים לתת למופע.
  • ‫LOCATION עם האזור שבו רוצים ליצור את המופע. מידע על מיקומים נתמכים זמין במאמר מיקומים.
  • ‫PROJECT_ID בשם הפרויקט שבו רוצים ליצור את המופע.
  • ‫CA_PROJECT עם שם הפרויקט של מאגר רשויות האישורים. חובה אם משתמשים באישור CA משלכם.
  • ‫CA_LOCATION עם האזור שבו יצרתם את מאגר ה-CA. חובה אם משתמשים באישור CA משלכם.
  • ‫CA_POOL_NAME עם השם של מאגר ה-CA. חובה אם משתמשים באישור CA משלכם.

API

יוצרים מופע של Private Service Connect באמצעות הפקודה הבאה:

curl \
    -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=INSTANCE_ID \
    -H "Content-Type: application/json" \
    -d '{"private_config":{"is_private":true,"ca_pool":"projects/CA_PROJECT/locations/CA_LOCATION/caPools/CA_POOL_NAME","custom_host_config":{"api":"API_CUSTOM_DOMAIN", "html":"HTML_CUSTOM_DOMAIN", "git_ssh":"GIT_SSH_CUSTOM_DOMAIN", "git_http":"GIT_HTTP_CUSTOM_DOMAIN"}}}'

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

  • ‫INSTANCE_ID בשם שרוצים לתת למופע.
  • ‫LOCATION עם האזור שבו רוצים ליצור את המופע. מידע על מיקומים נתמכים זמין במאמר מיקומים.
  • ‫PROJECT_ID בשם הפרויקט שבו רוצים ליצור את המופע.
  • ‫CA_PROJECT עם שם הפרויקט של מאגר רשויות האישורים. חובה אם משתמשים באישור CA משלכם או בדומיינים מותאמים אישית.
  • ‫CA_LOCATION עם האזור שבו יצרתם את מאגר ה-CA. חובה אם משתמשים באישור CA משלכם או בדומיינים מותאמים אישית.
  • ‫CA_POOL_NAME עם השם של מאגר ה-CA. חובה אם משתמשים באישור CA משלכם או בדומיינים מותאמים אישית.
  • ‫API_CUSTOM_DOMAIN עם הדומיין המותאם אישית שלכם לגישה ל-API, לדוגמה api.source.example.com. חובה רק אם משתמשים בדומיינים בהתאמה אישית.
  • ‫HTML_CUSTOM_DOMAIN עם הדומיין המותאם אישית שלכם לגישה לממשק המשתמש באינטרנט, לדוגמה source.example.com. נדרש רק אם משתמשים בדומיינים בהתאמה אישית.
  • ‫GIT_SSH_CUSTOM_DOMAIN עם הדומיין המותאם אישית שלכם לגישת Git SSH, לדוגמה ssh.source.example.com. נדרש רק אם משתמשים בדומיינים בהתאמה אישית.
  • ‫GIT_HTTP_CUSTOM_DOMAIN עם הדומיין המותאם אישית שלכם לגישת Git HTTP, לדוגמה git.source.example.com. נדרש רק אם משתמשים בדומיינים בהתאמה אישית.

Terraform

כדי ליצור מכונה של Private Service Connect באמצעות Terraform, משתמשים במשאב google_secure_source_manager_instance עם השדה private_config.is_private שמוגדר לערך true.

מתחילה פעולה ממושכת של יצירת מופע. יצירת המופע נמשכת עד 60 דקות. הפלט אמור להיראות כך:

Create request issued for [my-instance].
done: false
metadata:
  '@type': type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata
  apiVersion: v1
  createTime: '2023-02-27T20:57:52.315609549Z'
  requestedCancellation: false
  target: projects/my-project/locations/us-central1/instances/my-instance
  verb: create
name: projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e

כאשר projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e הוא OPERATION_NAME.

כדי לבדוק את סטטוס הפעולה, צריך את OPERATION_NAME.

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

gcloud source-manager operations describe OPERATION_NAME \
    --region=LOCATION

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

  • ‫OPERATION_NAME עם שם הפעולה מהתגובה של פקודת היצירה.
  • ‫LOCATION עם האזור שבו רוצים ליצור את המופע. מידע על מיקומים נתמכים זמין במאמר מיקומים.

אחרי יצירת המופע, הפלט יכלול את נקודות הקצה של Private Service Connect‏ httpServiceAttachment ו-sshServiceAttachment, יחד עם שמות המארחים של html,‏ api,‏ gitHttp ו-gitSsh.

גישה למופע הפרטי

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

קצוות עורפיים מסוג Private Service Connect שמבוססים על מאזני עומסים הם גמישים יותר ומאפשרים לכם לשלב שירותים אחרים של Google Cloud Google כמו Cloud Build, אבל הם מורכבים יותר וכוללים חיוב נוסף.

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

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

הגדרת נקודות קצה של Private Service Connect על סמך כללי העברה

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

  2. כדי לקבל את כתובות ה-URI של קבצים מצורפים של שירותי HTTP ו-SSH במופע של Secure Source Manager, מריצים את הפקודה הבאה:

    gcloud source-manager instances describe INSTANCE_ID \
        --region=LOCATION
    

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

    • ‫INSTANCE_ID בשם המכונה. כדי להציג רשימה של מכונות באזור מסוים, מריצים את הפקודה gcloud source-manager instances list --region=LOCATION.
    • ‫LOCATION עם המיקום של המכונה. מידע על מיקומים נתמכים זמין במאמר מיקומים.

    הפלט כולל:

    createTime: '2023-09-22T18:21:35.729454612Z'
    hostConfig:
      api: my-project-012345678901-api.us-central1.p.sourcemanager.dev
      gitHttp: my-project-012345678901-git.us-central1.p.sourcemanager.dev
      gitSsh: my-project-012345678901-ssh.us-central1.p.sourcemanager.dev
      html: my-project-012345678901.us-central1.p.sourcemanager.dev
    name: projects/my-project/locations/us-central1/instances/my-instance
    privateConfig:
      caPool: projects/my-project/locations/us-central1/caPools/my-ca-pool
      httpServiceAttachment: projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc
      isPrivate: true
      sshServiceAttachment: projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc
    state: ACTIVE
    updateTime: '2023-09-22T18:39:53.390563549Z'
    
    • projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc הוא ה-URI של קובץ השירות HTTP של המכונה.
    • projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc הוא ה-URI של קובץ השירות של ה-SSH של המכונה.
  3. אחרי שיוצרים את נקודות הקצה (endpoints) של Private Service Connect, צריך להגדיר רשומות DNS פרטיות. הוראות להגדרת רשומות DNS פרטיות מופיעות במאמר הגדרה ידנית של DNS. אם הגדרתם דומיינים בהתאמה אישית למופע שלכם, צריך ליצור רשומות DNS שממפות את הדומיינים בהתאמה אישית לכתובות ה-IP הפנימיות של קבצים מצורפים לשירות. אחרת, משתמשים בשמות המארחים בשדה hostConfig של המופע:

    1. ממפים את הערך של hostConfig.html (או הדומיין המותאם אישית של ה-HTML), של hostConfig.api (או הדומיין המותאם אישית של ה-API) ושל hostConfig.gitHttp (או הדומיין המותאם אישית של Git HTTP) לכתובת ה-IP הפנימית של קובץ ה-HTTP המצורף לשירות.
    2. ממפים את הערך של hostConfig.ssh (או את הדומיין המותאם אישית של Git SSH) לכתובת ה-IP הפנימית של קובץ ה-SSH המצורף לשירות.

    לדוגמה, בפלט של הדוגמה הקודמת, הערך של hostConfig.html הוא my-project-012345678901.us-central1.p.sourcemanager.dev.

    Google Cloud

אימות Git באמצעות דומיינים מותאמים אישית

אם אתם משתמשים בדומיינים מותאמים אישית עבור המופע הפרטי שלכם, אתם צריכים לבצע את ההגדרה הבאה בצד הלקוח בכל מכונה כדי להשתמש ב-Git באמצעות HTTPS. ההגדרה הזו מקשרת את Git אל gcloud credential helper כדי לאמת את הדומיין המותאם אישית.

  1. מגדירים את Git כך שישתמש ב-gcloud helper עבור דומיין ה-HTTP המותאם אישית של Git:

    git config --global credential.'https://GIT_HTTP_CUSTOM_DOMAIN'.helper gcloud.sh
    

    מחליפים את GIT_HTTP_CUSTOM_DOMAIN בדומיין המותאם אישית שהגדרתם לגישת Git HTTP.

  2. מאשרים את הדומיין המותאם אישית ב-gcloud:

    gcloud config set core/credentialed_hosted_repo_domains GIT_HTTP_CUSTOM_DOMAIN
    

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

שימוש ב-CA עם Secure Source Manager API

ל-Secure Source Manager יש מישור בקרה ומישור נתונים. נקודות הקצה של מישור הנתונים מתארחות ישירות במופע של Secure Source Manager, ולכן צריך להתחבר לשם המארח של ה-API של המופע כדי לגשת אליהן.

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

  1. כדי להוריד את רשות האישורים (CA), מריצים את הפקודה הבאה:

    gcloud privateca pools get-ca-certs CA_POOL \
        --location LOCATION \
        --output-file=root-cert.pem \
        --project PROJECT
    
  2. כדי לבצע קריאות ל-API למופע שלכם, צריך להעביר את אישור ה-CA ל-API של Secure Source Manager במישור הנתונים.

    לדוגמה, הפקודה הבאה מעבירה את אישור ה-CA‏ root-cert.pem ל-Secure Source Manager API כדי להציג רשימה של מאגרי מידע במופע הפרטי my-instance במיקום us-central1.

    curl \
        --cacert root-cert.pem \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://my-instance-01234567890-api.us-central1.sourcemanager.dev/v1/projects/01234567890/locations/us-central1/repositories
    

המאמרים הבאים