במסמך הזה מוסבר איך לקשר מאגר מרחוק למאגר Dataform. אחרי שמקשרים את המאגרים, אפשר לדחוף את השינויים שמבצעים בסביבת פיתוח של Dataform למאגר Git המרוחק, ולמשוך אותם ממנו.
אפשר לחבר מאגר מרוחק באמצעות HTTPS או SSH.
בטבלה הבאה מפורטים ספקי Git נתמכים ושיטות חיבור שזמינות למאגרים שלהם:
| ספק Git | שיטת החיבור |
|---|---|
| Azure DevOps Services | SSH |
| Bitbucket | Developer Connect (מומלץ), SSH |
| GitHub | Developer Connect (מומלץ), SSH או HTTPS |
| GitLab | Developer Connect (מומלץ), SSH או HTTPS |
לפני שמתחילים
- אם הארגון או הפרויקט שלכם מגבילים מאגרי Git מרוחקים באמצעות
dataform.restrictGitRemotesמדיניות הארגון, צריך לוודא שמאגר Git מרוחק נוסף לרשימת ההיתרים במדיניות לפני שיוצרים את מאגר Dataform שרוצים לקשר למאגר מרוחק. מידע נוסף זמין במאמר בנושא הגבלת מאגרי מידע מרוחקים. בוחרים או יוצרים מאגר Dataform. תצטרכו את המאגר בהמשך כדי לשתף סוד עם סוכן השירות שמוגדר כברירת מחדל ב-Dataform.
חשוב לוודא שיש לכם את ההרשאות הנדרשות אצל ספק Git ושהמאגר שלכם ב-Dataform נמצא באזור נתמך.
אם אתם מחברים את Developer Connect למאגר Bitbucket, ודאו שלטוקן הגישה של נותן ההרשאה יש גישת כתיבה למאגרים שלכם, כדי ש-Dataform יוכל לדחוף שינויים. מידע נוסף זמין במאמר בנושא יצירת אסימוני גישה.
דרישות ומגבלות בנוגע לקישוריות לרשת
לפני שמקשרים את מאגר Git המרוחק ל-Dataform, צריך לוודא שהגדרות הרשת עומדות בדרישות של שיטת הקישור שבחרתם.
חיבורים לרשת פרטית
Dataform לא תומך בחיבורים ישירים לכתובות IP פרטיות (לדוגמה, 10.x.x.x, 172.16.x.x-172.31.x.x או 192.168.x.x) של מארחי Git מקומיים או מאגרי Git ברשתות פרטיות באמצעות HTTPS או SSH. הגישה כוללת שימוש בענן וירטואלי פרטי (VPC), ב-VPN או ב-Cloud Interconnect.
כדי להתחבר למאגר ברשת פרטית, או אם מארח Git נמצא מאחורי חומת אש, צריך להתחבר באמצעות Developer Connect.
חיבורים לרשתות ציבוריות
כדי לחבר מאגר Git מרוחק באמצעות HTTPS או SSH, למארח Git צריך להיות כתובת IP ציבורית.
אם אתם מתחברים למאגר מרוחק מוגן עם כתובת IP ציבורית באמצעות HTTPS או SSH, אתם צריכים להוסיף את טווחי כתובות ה-IP ליציאה של Dataform לכללי חומת האש.
דרישות של VPC Service Controls
אם הפרויקט שלכם משתמש ב-VPC Service Controls, אתם צריכים להגדיר את dataform.restrictGitRemotes מדיניות הארגון כדי להתחבר לכל מאגר Git של צד שלישי. מידע נוסף זמין במאמר בנושא הגבלת מאגרי מידע מרוחקים.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לקישור מאגר Dataform למאגר Git מרוחק, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במאגרים:
- אדמין ב-Dataform (
roles/dataform.admin) - אדמין ב-Developer Connect (
roles/developerconnect.admin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
כדי לחבר מאגר מרוחק באמצעות Developer Connect, צריך להקצות את התפקידים Developer Connect Token Accessor (roles/developerconnect.tokenAccessor) ו-Developer Connect Git Proxy User (roles/developerconnect.gitProxyUser) לסוכן השירות של Dataform שמוגדר כברירת מחדל. מזהה סוכן השירות של Dataform שמוגדר כברירת מחדל הוא בפורמט הבא:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
חיבור מאגר מרוחק באמצעות Developer Connect
Developer Connect מפשט את השילוב של ספקי Git חיצוניים עם מאגרי Dataform. הוא מספק ממשק מודרך שמבטל את הצורך בניהול ידני של סודות.
באמצעות Developer Connect, אתם יכולים להתחבר למאגרי קוד מרוחקים ברשתות פרטיות – כמו סביבות מקומיות או עננים וירטואליים פרטיים (VPC) – בלי לחשוף אותם לאינטרנט הציבורי.
הכנה לחיבורים לרשת פרטית
אם אתם מתחברים למאגר מרוחק ברשת פרטית, ודאו שיש לכם את המידע ומקורות המידע הבאים לפני שתתחילו בהגדרה:
- מרחב השמות ושם השירות של שירות Service Directory שמפנה למארח Git הפנימי שלכם.
- אישור של רשות אישורים בפורמט PEM (בגודל מקסימלי של 10KB) אם המארח משתמש ברשות אישורים פרטית או בחתימה עצמית.
- אימות שאישור ה-SSL של מארח Git כולל שם חלופי לנושא (SAN) שתואם ל-URI של המארח.
מידע נוסף על הגדרת חיבורים לרשתות שמארחות באופן פרטי זמין במאמרים הבאים:
- הגדרה ושימוש ב-Developer Connect proxy
- התחברות ל-GitHub Enterprise ברשת פרטית
- התחברות למאגרי GitLab Enterprise ברשת פרטית
- התחברות למאגרי Bitbucket Data Center שמתארחים ברשת פרטית
יצירת חיבור חדש ל-Developer Connect
כדי לקשר מאגר מרוחק לחיבור חדש של Developer Connect, בוחרים באחת מהאפשרויות הבאות:
Bitbucket
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים את המאגר.
עוברים אל הגדרות ולוחצים על קישור ל-Git.
בחלונית Link to remote repository, בקטע Remote Git repository protocol, בוחרים באפשרות Developer Connect.
בתפריט לבחירת מאגר, לוחצים על קישור מאגר חדש.
בחלונית קישור מאגרי Git באמצעות Developer Connect, בוחרים באפשרות יצירת חיבור חדש.
בוחרים באפשרות Bitbucket בתור הספק.
מציינים את אזור החיבור ואת שם החיבור.
מזינים את שם סביבת העבודה, את טוקן הגישה של נותן ההרשאה ואת טוקן הגישה לקריאה.
לוחצים על המשך, בוחרים את המאגרים המרוחקים לקישור ולוחצים על קישור.
ב-Dataform, בוחרים את המאגר המרוחק ואת ענף ברירת המחדל.
כדי להשלים את ההגדרה, לוחצים על קישור.
GitHub
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים את המאגר.
עוברים אל הגדרות ולוחצים על קישור ל-Git.
בחלונית Link to remote repository, בקטע Remote Git repository protocol, בוחרים באפשרות Developer Connect.
בתפריט לבחירת מאגר, לוחצים על קישור מאגר חדש.
בחלונית קישור מאגרי Git באמצעות Developer Connect, בוחרים באפשרות יצירת חיבור חדש.
בוחרים באפשרות GitHub כספק.
מציינים את אזור החיבור ואת שם החיבור.
כדי להפעיל את תהליך האימות של OAuth, לוחצים על המשך, ואז מבצעים את הפעולות הבאות:
- לוחצים על הבנתי, אפשר להמשיך.
- בוחרים באפשרות Install the GitHub App on another GitHub account ופועלים לפי ההנחיות כדי לאשר גישה לחשבון GitHub ולמאגרים ספציפיים.
- בוחרים את החשבון שבו רוצים להתקין את אפליקציית Dataform GitHub.
- בקטע Repository access, בוחרים אם רוצים לתת גישה לכל המאגרים או רק למאגרים נבחרים.
- לוחצים על Save.
בוחרים את המאגרים המרוחקים לקישור ולוחצים על קישור.
ב-Dataform, בוחרים את המאגר המרוחק ואת ענף ברירת המחדל.
כדי להשלים את ההגדרה, לוחצים על קישור.
GitLab
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים את המאגר.
עוברים אל הגדרות ולוחצים על קישור ל-Git.
בחלונית Link to remote repository, בקטע Remote Git repository protocol, בוחרים באפשרות Developer Connect.
בתפריט לבחירת מאגר, לוחצים על קישור מאגר חדש.
בחלונית קישור מאגרי Git באמצעות Developer Connect, בוחרים באפשרות יצירת חיבור חדש.
בוחרים באפשרות GitLab בתור הספק.
מציינים את אזור החיבור ואת שם החיבור.
מזינים את טוקן הגישה ל-API ואת טוקן הגישה ל-API לקריאה. מידע נוסף על יצירת אסימוני גישה זמין במאמר יצירת אסימוני גישה.
לוחצים על המשך, בוחרים את המאגרים המרוחקים לקישור ולוחצים על קישור.
ב-Dataform, בוחרים את המאגר המרוחק ואת ענף ברירת המחדל.
כדי להשלים את ההגדרה, לוחצים על קישור.
שימוש בחיבור קיים של Developer Connect
כדי לקשר מאגר מרחוק לחיבור קיים של Developer Connect:
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים את המאגר.
עוברים אל הגדרות ולוחצים על קישור ל-Git.
בחלונית Link to remote repository, בקטע Remote Git repository protocol, בוחרים באפשרות Developer Connect.
בתפריט לבחירת מאגר, בוחרים מאגר ששייך לחיבור קיים של Developer Connect.
ב-Dataform, בוחרים את המאגר המרוחק ואת ענף ברירת המחדל.
כדי להשלים את ההגדרה, לוחצים על קישור.
חיבור מאגר מרוחק באמצעות SSH
כדי לחבר מאגר מרוחק באמצעות SSH, צריך ליצור מפתח SSH וסוד ב-Secret Manager. מפתח ה-SSH מורכב ממפתח SSH ציבורי וממפתח SSH פרטי. צריך לשתף את מפתח ה-SSH הציבורי עם ספק Git וליצור סוד ב-Secret Manager עם מפתח ה-SSH הפרטי. לאחר מכן, משתפים את הסוד עם סוכן השירות שמוגדר כברירת מחדל ב-Dataform.
Dataform משתמש בסוד עם מפתח SSH פרטי כדי להיכנס לספק Git שלכם ולבצע שינויים בשם המפתחים. Dataform מבצעת את השמירות האלה באמצעות כתובת האימייל של המפתח Google Cloud , כך שתוכלו לדעת מי ביצע כל שמירה.
כדי לקשר מאגר מרוחק למאגר Dataform באמצעות SSH, פועלים לפי השלבים הבאים:
בספק Git, מבצעים אחת מהפעולות הבאות:
Azure DevOps Services
- ב-Azure DevOps Services, יוצרים מפתח SSH פרטי.
- מעלים את המפתח הציבורי של SSH למאגר שלכם ב-Azure DevOps Services.
Bitbucket
- ב-Bitbucket, יוצרים מפתח SSH פרטי.
- מעלים את המפתח הציבורי SSH למאגר Bitbucket.
GitHub
- ב-GitHub, יוצרים מפתח SSH פרטי.
- מעלים את מפתח ה-SSH הציבורי של GitHub למאגר שלכם ב-GitHub.
GitLab
- ב-GitLab, יוצרים מפתח SSH פרטי.
- מעלים את מפתח ה-SSH הציבורי של GitLab למאגר GitLab.
ב-Secret Manager, יוצרים סוד ומגדירים את מפתח ה-SSH הפרטי כערך הסוד.
נותנים גישה לסוד לסוכן השירות שמוגדר כברירת מחדל ב-Dataform.
סוכן השירות שמוגדר כברירת מחדל ב-Dataform הוא בפורמט הבא:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comמקצים לחשבון השירות את התפקיד
roles/secretmanager.secretAccessor.
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים את מאגר Dataform שרוצים לקשר למאגר המרוחק.
בדף המאגר, לוחצים על הגדרות > קישור ל-Git.
בחלונית קישור למאגר מרוחק, בשדה כתובת URL של מאגר Git מרוחק, מזינים את כתובת ה-URL של מאגר Git מרוחק, שמסתיימת ב-
.git.כתובת ה-URL של מאגר Git מרוחק חייבת להיות באחד מהפורמטים הבאים:
- כתובת URL אבסולוטית:
ssh://git@{host_name}[:{port}]/{repository_path}, החלקportהוא אופציונלי. - כתובת URL בסגנון SCP:
git@{host_name}:{repository_path}.
- כתובת URL אבסולוטית:
בשדה Default remote branch name (שם ברירת המחדל של הענף המרוחק), מזינים את השם של ענף הפיתוח הראשי של מאגר ה-Git המרוחק.
בתפריט הנפתח Secret, בוחרים את הסוד של מאגר ה-Git המרוחק.
בשדה ערך מפתח מארח ציבורי של SSH, מזינים את מפתח המארח הציבורי של ספק Git.
Azure DevOps Services
כדי לאחזר את המפתח הציבורי של המארח של Azure DevOps Services, מריצים את הפקודה הבאה בטרמינל:
ssh-keyscan -t rsa ssh.dev.azure.comמעתיקים אחד מהמפתחות שמוצגים, ומשמיטים את התווים
ssh.dev.azure.comמתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:ALGORITHM BASE64_KEY_VALUEלדוגמה:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8Hמוודאים שהמפתח הזה עדיין מעודכן בשירותי Azure DevOps.
Bitbucket
כדי לאחזר את מפתח המארח הציבורי של Bitbucket, מריצים את הפקודה הבאה בטרמינל:
curl https://bitbucket.org/site/sshהפקודה מחזירה רשימה של מפתחות מארח ציבוריים. בוחרים אחד מהמפתחות מהרשימה ומעתיקים אותו, בלי
bitbucket.orgמתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:ALGORITHM BASE64_KEY_VALUEלדוגמה:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUOמוודאים שהמפתח הזה עדיין מעודכן ב-Bitbucket.
GitHub
- כדי לאחזר את מפתח המארח הציבורי של GitHub, אפשר לעיין בטביעות האצבע של מפתחות ה-SSH של GitHub.
בדף הזה מופיעה רשימה של מפתחות מארח ציבוריים. בוחרים אחת מהן ומעתיקים אותה, בלי
github.comבתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:ALGORITHM BASE64_KEY_VALUEלדוגמה:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJlמוודאים שהמפתח הזה עדיין עדכני ב-GitHub.
GitLab
- כדי לאחזר את מפתח המארח הציבורי של GitLab, אפשר לעיין בערכים של SSH
known_hosts. בדף הזה מופיעה רשימה של מפתחות מארח ציבוריים. בוחרים אחת מהן ומעתיקים אותה, בלי
gitlab.comבתחילת השורה. הערך שמעתיקים צריך להיות בפורמט הבא:ALGORITHM BASE64_KEY_VALUEלדוגמה:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdfמוודאים שהמפתח הזה עדיין מעודכן ב-GitLab.
לוחצים על קישור.
חיבור למאגר מרוחק באמצעות HTTPS
כדי לקשר מאגר מרוחק דרך HTTPS, צריך ליצור סוד ב-Secret Manager עם אסימון גישה אישי, ולשתף את הסוד עם סוכן השירות של Dataform שמוגדר כברירת מחדל.
לאחר מכן, Dataform משתמש באסימון הגישה כדי להיכנס לספק Git שלכם ולבצע שינויים בשם המפתחים. Dataform מבצעת את השמירות האלה באמצעות כתובת האימייל של המפתח Google Cloud , כך שתוכלו לדעת מי ביצע כל שמירה.
כדי לקשר מאגר מרחוק למאגר Dataform באמצעות HTTPS, פועלים לפי השלבים הבאים:
בספק Git, מבצעים את הפעולות הבאות:
GitHub
ב-GitHub, יוצרים אסימון גישה אישי עם הרשאות מפורטות או אסימון גישה אישי קלאסי.
- כדי ליצור אסימון גישה אישי של GitHub עם הרשאות מפורטות:
בוחרים באפשרות 'גישה למאגרים' רק למאגרים נבחרים, ואז בוחרים את המאגר שאליו רוצים להתחבר.
הענקת הרשאת קריאה וכתיבה לתוכן המאגר.
מגדירים את זמן התפוגה של האסימון בהתאם לצרכים שלכם.
- כדי להשתמש באסימון גישה אישי קלאסי של GitHub:
נותנים ל-Dataform את ההרשאה
repo.מגדירים את זמן התפוגה של האסימון בהתאם לצרכים שלכם.
אם בארגון שלכם משתמשים בכניסה יחידה (SSO) ב-SAML, צריך לתת הרשאה לטוקן.
GitLab
ב-GitLab, יוצרים אסימון גישה אישי ל-GitLab.
נותנים לטוקן את השם
dataform.השם של טוקן הגישה האישי ב-GitLab צריך להיות
dataform.נותנים ל-Dataform את ההרשאות
api,read_repositoryו-write_repository.מגדירים את זמן התפוגה של האסימון בהתאם לצרכים שלכם.
ב-Secret Manager, יוצרים סוד שמכיל את אסימון הגישה האישי של המאגר המרוחק.
נותנים גישה לסוד לסוכן השירות שמוגדר כברירת מחדל ב-Dataform.
סוכן השירות שמוגדר כברירת מחדל ב-Dataform הוא בפורמט הבא:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com- מקצים לסוכן השירות את התפקיד
roles/secretmanager.secretAccessor.
- מקצים לסוכן השירות את התפקיד
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים את מאגר Dataform שרוצים לקשר למאגר המרוחק.
בדף המאגר, לוחצים על הגדרות > קישור ל-Git.
בחלונית Link to remote repository (קישור למאגר מרוחק), בשדה Remote Git repository URL (כתובת URL של מאגר Git מרוחק), מזינים את כתובת ה-URL של מאגר Git מרוחק, שמסתיימת ב-
.git.כתובת ה-URL של מאגר Git מרוחק לא יכולה להכיל שמות משתמש או סיסמאות.
בשדה Default remote branch name (שם ברירת המחדל של הענף המרוחק), מזינים את השם של ענף הפיתוח הראשי של מאגר ה-Git המרוחק.
בתפריט הנפתח Secret, בוחרים את הסוד של מאגר ה-Git המרוחק.
לוחצים על קישור.
עריכת החיבור למאגר המרוחק
כדי לערוך חיבור בין מאגר Dataform לבין מאגר Git מרוחק, פועלים לפי השלבים הבאים:
נכנסים לדף Dataform במסוף Google Cloud .
לוחצים על המאגר שרוצים לערוך.
בדף המאגר, לוחצים על הגדרות > עריכת חיבור Git.
בחלונית קישור למאגר מרוחק, עורכים את הגדרות החיבור.
לוחצים על עדכון.
המאמרים הבאים
מידע נוסף על מאגרי Dataform זמין במאמר בנושא יצירת מאגר.
כדי ליצור סביבת עבודה לפיתוח, אפשר לעיין במאמר בנושא יצירת סביבת עבודה.
כאן מוסבר איך לפתור בעיות בחיבורים למאגרים מרוחקים.