חיבור למאגרי Bitbucket Data Center שמתארחים ברשת פרטית

בדף הזה מוסבר איך להתחבר למאגרי Bitbucket Data Center שמתארחים ברשת פרטית באמצעות Developer Connect ו-Service Directory. אפשר לבצע את המשימות האלה באמצעות מסוף Google Cloud או Google Cloud CLI.

ההוראות האלה מיועדות למפתחי אפליקציות, לאדמינים של פלטפורמות ולמנהלי אבטחה שרוצים להשתמש במאגרי קוד מקור של Bitbucket Data Center עם Google. באופן ספציפי, אתם יכולים להשתמש במאגרי Bitbucket Data Center עם Gemini Code Assist.

מידע נוסף על Developer Connect זמין במאמר סקירה כללית של Developer Connect.

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

  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. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Developer Connect and Service Directory APIs.

    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 APIs

  5. 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

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Developer Connect and Service Directory APIs.

    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 APIs

  8. הפעלת Developer Connect מפעילה גם את Secret Manager API.

  9. מוודאים שיש לכם גישה לחשבון ב-Bitbucket Data Center.

    כדי לשמור על אבטחת העבודה של הצוות, מומלץ לבצע את המשימות במדריך הזה באמצעות חשבון בוט או חשבון משותף של הצוות, ולא באמצעות חשבון אישי.

  10. ודאו שאתם הבעלים של מאגר Bitbucket Data Center, או שיש לכם הרשאות אדמין במאגר משותף.
  11. מוודאים שיש לכם משאב שירות של Service Directory לחיבור לרשתות פרטיות, או יוצרים משאב שירות של Service Directory. אפשר ליצור את משאב השירות של Service Directory באותו פרויקט שבו אתם משתמשים ב-Developer Connect, או להשתמש בפרויקט אחר.

    יכול להיות שתצטרכו להגדיר את Service Directory באופן שונה לחיבורים לרשתות מחוץ ל- Google Cloud. איך משתמשים ב-Service Directory כדי להגיע למארחים מחוץ ל- Google Cloud

  12. אופציונלי: יוצרים מפתח הצפנה בניהול הלקוח (CMEK) להצפנת סודות האימות שנוצרים על ידי Developer Connect.
  13. אופציונלי: כדי להשתמש בהוראות של שורת הפקודה במדריך הזה, מבצעים את השלבים הבאים:
    1. מתקינים את Google Cloud CLI. אם כבר התקנתם את ה-CLI של gcloud בעבר, צריך לוודא שפועלת אצלכם הגרסה העדכנית ביותר של gcloud components update.
    2. יוצרים חשבון שירות של Developer Connect על ידי הרצת הפקודה הבאה, כש-PROJECT_ID הוא Google Cloud מזהה הפרויקט:
              gcloud beta services identity create \
                  --service=developerconnect.googleapis.com \
                  --project=PROJECT_ID
              

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

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

  • אם אתם לא הבעלים של הפרויקט: אדמין של Developer Connect (roles/developerconnect.admin) בחשבון המשתמש שלכם.
  • אם אתם מתכננים להשתמש ב-CMEK כדי להצפין את הסודות שנוצרים על ידי Developer Connect: Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) בחשבון השירות של Secret Manager.
  • אם אתם מתכננים להשתמש ב-CLI של gcloud כדי לבצע את השלבים במדריך הזה: התפקיד Secret Manager Admin (roles/secretmanager.admin) בחשבון השירות של Developer Connect.
  • אם אתם מתכננים להשתמש במסוף כדי לבצע את השלבים במדריך הזה: אדמין IAM של פרויקט (roles/resourcemanager.projectIamAdmin) בחשבון המשתמש שלכם. Google Cloud

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

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

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

כדי לאפשר ל-Developer Connect להשתמש ב-Service Directory, ולאפשר ל-Service Directory לגשת למשאב רשת ה-VPC שלכם, צריך לבצע את השלבים הבאים.

  1. כדי לתת הרשאות לחשבון השירות של Developer Connect להשתמש ב-Service Directory, מריצים את הפקודות הבאות:

    PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    
    SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-devconnect.iam.gserviceaccount.com"
    
    gcloud projects add-iam-policy-binding SERVICE_DIRECTORY_RESOURCE_PROJECT_ID \
        --member="serviceAccount:${SERVICE_ACCOUNT}" \
        --role="roles/servicedirectory.viewer"
    

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • SERVICE_DIRECTORY_RESOURCE_PROJECT_ID: מזהה הפרויקט של Google Cloud הפרויקט שמכיל את משאב השירות של Service Directory.
  2. מעניקים הרשאות ל-Service Directory כדי לגשת למשאב של רשת ה-VPC. משאב הרשת יכול להיות בפרויקט אחר.

    gcloud projects add-iam-policy-binding NETWORK_RESOURCE_PROJECT_ID \
        --member="serviceAccount:${SERVICE_ACCOUNT}" \
        --role="roles/servicedirectory.pscAuthorizedService"
    

    מחליפים את NETWORK_RESOURCE_PROJECT_ID במזהה הפרויקט שמכיל את משאב רשת ה-VPC.

שימוש בספריית השירותים כדי להגיע למארחים מחוץ ל- Google Cloud

‫Service Directory משתמש בטווח כתובות ה-IP‏ 35.199.192.0/19 כדי לחבר את המארח שלכם מחוץ ל- Google Cloud. צריך להוסיף את הטווח הזה לרשימת ההיתרים בחומת האש. בנוסף, צריך להגדיר את הרשת הפרטית כך שהיא תנתב את הטווח הזה דרך חיבור Cloud VPN או Cloud Interconnect.

אם החיבור שלכם משתמש ב-Cloud Router, אתם יכולים להגדיר את החיבור כך שיעביר את הטווח לרשת הפרטית שלכם.

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

שימוש ב-Cloud Load Balancing כדי להגיע למארחים מחוץ ל- Google Cloud

אם הגדרת הרשת לא מאפשרת לכם לנתב את טווח כתובות ה-IP של Service Directory‏ 35.199.192.0/19 אל Cloud VPN או אל Cloud Interconnect, אתם יכולים ליצור מאזן עומסים באמצעות Cloud Load Balancing שמנתב את התנועה אל המארח שלכם.

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

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

  • כדי להגיע למארח, נדרשת רק קבוצת נקודות קצה (NEG) של קישוריות היברידית.
  • מאזן העומסים של TCP לא דורש את המפתח הפרטי הלא מוצפן של אישור ה-SSL.
  • בהגדרת Cloud VPN צריך להשתמש ב-Cloud Router עם ניתוב דינמי גלובלי. אם Cloud VPN משתמש בניתוב סטטי, אתם יכולים להשתמש ב-proxy שמשתמש ב-Cloud Service Mesh במקום זאת. מידע נוסף זמין במאמר בנושא הגדרת שירותים של קצה הרשת לפריסות היברידיות.

מידע נוסף על יצירת מאזן עומסים ב-HTTPS זמין במאמר בנושא הגדרת מאזן עומסים פנימי לאפליקציות עם קישוריות היברידית. מידע נוסף על יצירת מאזן עומסים מסוג TCP זמין במאמר הגדרה של מאזן עומסי רשת אזורי פנימי עם קישוריות היברידית.

יצירת אסימוני גישה

כדי ליצור טוקנים של גישה אישית ב-Bitbucket Data Center, מבצעים את השלבים הבאים:

  1. נכנסים אל Bitbucket Data Center.

  2. פועלים לפי ההוראות בתיעוד של Bitbucket Data Center כדי ליצור שני אסימוני גישה מסוג HTTP ולהעניק את היקפי ההרשאות הבאים.

    ב-Developer Connect יש תמיכה בטוקנים של גישה למשתמשים, לפרויקטים ולמאגרי קוד.

    • יוצרים טוקן אחד עם ההיקף repository admin. ב-Developer Connect, הטוקן הזה נקרא טוקן גישת אדמין.
    • יוצרים טוקן אחד עם ההיקף repository read. ב-Developer Connect, הטוקן הזה נקרא read access token (טוקן גישת קריאה).

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

  3. מעתיקים את אסימוני הגישה כדי להשתמש בהם בהמשך התהליך.

יצירת חיבור

בקטע הזה מוסבר איך ליצור חיבור בין Developer Connect לבין Bitbucket Data Center. אם אתם משתמשים במסוף Google Cloud , תוכלו גם להתחיל להוסיף קישורים למאגרי מידע אחרי שתסיימו להגדיר את החיבור.

כדי ליצור חיבור חדש ל-Bitbucket Data Center, בוחרים באחת מהאפשרויות הבאות:

המסוף

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

  1. פותחים את Developer Connect במסוף Google Cloud .

    כניסה אל Developer Connect

    בדף מאגרי Git ב-Developer Connect.

    • אם מוצגת רשימה של ספקי ניהול קוד מקור: בוחרים ספק ניהול קוד מקור כדי להגדיר את החיבור הראשון. לוחצים על Connect (התחברות) בכרטיס Bitbucket Data Center.
    • אם מוצגת טבלה עם רשימה של חיבורים קיימים: מגדירים את ספק ניהול קוד המקור על ידי לחיצה על יצירת חיבור > Bitbucket Data Center.

      ייפתח הדף Create Connection.

  2. בשדה Region, בוחרים אזור למשאבי הקישור.

    1. בשדה Name (שם), מזינים שם לקישור החדש.
  3. בקטע Access Tokens (אסימוני גישה), מזינים את אסימוני הגישה של Bitbucket Data Center:

    • אסימון גישה לאדמין: מזינים את האסימון עם גישת היקף האדמין למאגר.

    • טוקן גישה לקריאה: מזינים את הטוקן עם גישת היקף הקריאה של המאגר.

  4. בקטע כתובת ה-URL של המארח, מזינים את כתובת ה-URL של המארח שאליו רוצים להתחבר.

  5. לוחצים על הצגת הגדרות נוספות כדי לראות הגדרות אופציונליות.

    1. תיבת הסימון Enable Developer Connect proxy (הפעלת שרת proxy של Developer Connect) מסומנת כברירת מחדל, כדי ש-Developer Connect יוכל לפעול כשרת proxy לקריאות Git אל Bitbucket Data Center.

    2. בקטע Networking, עבור סוג הרשת, בוחרים באפשרות Private network.

    3. בקטע CA Certificate (אישור CA), לוחצים על Browse (עיון) כדי להעלות את האישור בחתימה עצמית.

      הגודל של האישור לא יכול להיות יותר מ-10KB והוא צריך להיות בפורמט PEM ‏(‎.pem,‏ ‎.cer או ‎ .crt). אם לא מציינים כלום בקטע הזה, המערכת תשתמש בסט ברירת מחדל של אישורים.

    4. בקטע Service Directory service, בוחרים את המיקום של השירות:

      • בפרויקט your-project
      • בפרויקט אחר
      • הזנה ידנית

      אם בוחרים באפשרות בפרויקט אחר או באפשרות הזנה ידנית, מציינים את מזהה הפרויקט. Google Cloud בוחרים את הפרויקט מהתפריט הנפתח או מזינים את מזהה הפרויקט באופן ידני.

    5. אזור: בוחרים את האזור של שירות מדריך השירותים. האזור שצוין לשירות חייב להיות זהה לאזור שמשויך לחיבור.

    6. מרחב שמות: בוחרים את מרחב השמות של שירות ספריית השירותים.

    7. שירות: בוחרים את שם השירות של Service Directory במרחב השמות.

    8. אופציונלי: בקטע Encryption, בוחרים מפתח CMEK כדי להצפין סודות של Secret Manager שנוצרו על ידי Developer Connect.

  6. לוחצים על הלחצן המשך. הכלי Developer Connect יוצר את החיבור. התהליך הזה יכול להימשך כמה שניות.

אחרי שיוצרים את הקישור, מופיע הדף Link repositories (קישור מאגרי מידע).

כדי לקשר מאגרי מידע לחיבור:

  1. ברשימת המאגרים הזמינים, בוחרים את המאגרים שרוצים להשתמש בהם.

  2. לוחצים על OK.

  3. לוחצים על קישור.

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

אם אתם מגדירים את Gemini Code Assist, ממשיכים בתהליך לפי השלבים במאמר הגדרה ושימוש ב-Gemini Code Assist עיגון בקוד של הארגון.

gcloud

  1. כדי ליצור סוד של webhook ב-Secret Manager, מריצים את הפקודה הבאה, כאשר WEBHOOK_SECRET_NAME הוא שם הסוד של ה-webhook:

    cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create WEBHOOK_SECRET_NAME
    
  2. כדי לאחסן את אסימוני הגישה ב-Secret Manager, מריצים את הפקודות הבאות:

    gcloud secrets create ADMIN_SECRET_NAME
    
    echo -n ADMIN_SECRET_DATA | gcloud secrets versions add ADMIN_SECRET_NAME --data-file=-
    
    gcloud secrets create READ_SECRET_NAME
    
    echo -n READ_SECRET_DATA | gcloud secrets versions add READ_SECRET_NAME --data-file=-
    

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

    • ADMIN_SECRET_NAME: שם לסוד שבו מאוחסן אסימון הגישה של האדמין.
    • ADMIN_SECRET_DATA: אסימון הגישה של האדמין.
    • READ_SECRET_NAME: שם הסוד שבו מאוחסן אסימון הגישה לקריאה.
    • READ_SECRET_DATA: אסימון גישת הקריאה.
  3. מריצים את הפקודה gcloud developer-connect connections create כדי ליצור חיבור ל-Bitbucket Data Center:

    gcloud developer-connect connections create CONNECTION_NAME \
        --location=REGION \
        --bitbucket-data-center-config-host-uri=HOST_URI \
        --bitbucket-data-center-config-authorizer-credential-user-token-secret-version=projects/PROJECT_ID/secrets/ADMIN_SECRET_NAME/versions/VERSION \
        --bitbucket-data-center-config-read-authorizer-credential-user-token-secret-version=projects/PROJECT_ID/secrets/READ_SECRET_NAME/versions/VERSION \
        --bitbucket-data-center-config-webhook-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET_NAME/versions/VERSION \
        --git-proxy-config-enabled
    

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

    • CONNECTION_NAME: שם לחיבור.
    • REGION: האזור שבו יש להשתמש לחיבור.
    • HOST_URI: ה-URI של המארח של Bitbucket Data Center, כולל הקידומת https://.
    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
    • ADMIN_SECRET_NAME: השם של הסוד ב-Secret Manager שמכיל את אסימון הגישה של האדמין.
    • READ_SECRET_NAME: השם של הסוד ב-Secret Manager שמכיל את אסימון הגישה לקריאה.
    • WEBHOOK_SECRET_NAME: השם של הסוד ב-Secret Manager שמכיל את הסוד של ה-webhook.
    • VERSION: מספר הגרסה של כל סוד. אפשר להשתמש ב-latest כדי להשתמש במספר הגרסה העדכני ביותר.
    • --git-proxy-config-enabled הוא דגל אופציונלי שמאפשר ל-Developer Connect לשמש כשרת proxy לקריאות Git אל Bitbucket Data Center. צריך להפעיל את התכונה הזו כשמריצים עיגון בקוד של הארגון של Gemini Code Assist במאגרי המקורות של הקוד של Bitbucket Data Center שמתארחים ברשתות פרטיות.
    • --github-enterprise-config-ssl-ca-certificate הוא דגל אופציונלי להוספת אישור SSL, בפורמט $HOME/my-ssl-ca.txt.

    הכלי Developer Connect משלים את החיבור אל Bitbucket Data Center. בשלב הבא, מקשרים למאגרי קוד.

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

כדי ליצור קישורים למאגר בחיבור קיים ל-Bitbucket Data Center, בוחרים באחת מהאפשרויות הבאות:

המסוף

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

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פותחים את הדף Repositories

  2. לוחצים על קישור מאגר.

    נפתח החלונית Link Git repositories (קישור מאגרי Git).

  3. ברשימת החיבורים, בוחרים חיבור.

  4. לוחצים על Continue.

  5. ברשימת המאגרים, בוחרים את המאגרים שרוצים לקשר.

  6. לוחצים על יצירה.

    הכלי Developer Connect יוצר את הקישורים למאגר ומציג אותם במסוף Google Cloud .

gcloud

כדי ליצור קישור למאגר של Bitbucket Data Center, מריצים את הפקודה הבאה:

gcloud developer-connect connections git-repository-links create REPO_NAME \
    --clone-uri=REPO_URI \
    --connection=CONNECTION_NAME \
    --location=REGION

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

  • REPO_NAME: שם לקישור החדש בין Developer Connect לבין מאגר Bitbucket Data Center.
  • REPO_URI: כתובת ה-URL של המאגר ב-Bitbucket Data Center, כולל הקידומת https:// והסיומת .git.
  • CONNECTION_NAME: השם של החיבור ל-Bitbucket Data Center.
  • REGION: האזור של החיבור.

הקישורים למאגר נוצרים על ידי Developer Connect.

כדי להציג רשימה של מאגרים מקושרים, מריצים את הפקודה developer-connect connections git-repository-linkslist.

אם אתם מגדירים את Gemini Code Assist, ממשיכים בתהליך לפי השלבים במאמר הגדרה ושימוש ב-Gemini Code Assist עיגון בקוד של הארגון.

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