יצירת מופע של 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, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  4. Install the Google Cloud CLI.

  5. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  6. To initialize the gcloud CLI, run the following command:

    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, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  9. Install the Google Cloud CLI.

  10. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  11. To initialize the gcloud CLI, run the following command:

    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 של המופע נשלחת למאגר רשויות להנפקת אישורים (CA).

  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. יוצרים רשות אישורים. אתם יכולים ליצור רשות אישורים ברמה הבסיסית או רשות אישורים משנית, בהתאם לצרכים שלכם.

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

  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 משלכם. לכן, כשיוצרים מכונה עם דומיינים בהתאמה אישית, צריך לספק מאגר 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 משלכם.
  • ‫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 משלכם או בדומיינים בהתאמה אישית.
  • ‫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 , כמו 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. אחרי שיוצרים את נקודות הקצה של Private Service Connect, צריך להגדיר רשומות DNS פרטיות. הוראות להגדרת רשומות DNS פרטיות מופיעות במאמר הגדרה ידנית של DNS. אם הגדרתם דומיינים בהתאמה אישית למכונה, צרו רשומות DNS שממפות את הדומיינים בהתאמה אישית לכתובות ה-IP הפנימיות של קובצי ה-attachment של השירות. אחרת, משתמשים בשמות המארחים בשדה hostConfig של המכונה:

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

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

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

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

  1. מגדירים את Git כך שישתמש בכלי העזר gcloud לדומיין ה-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