מנהל מקורות מאובטח תומך בכל הפקודות של לקוח Git SCM, ויש בו בקשות משיכה ומעקב אחרי בעיות. יש תמיכה ב-HTTPS ובאימות SSH.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לשימוש ב-Git כדי ליצור אינטראקציה עם מאגר Secure Source Manager, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor) במופע Secure Source Manager -
כדי לשכפל מאגר:
Secure Source Manager Repo Reader (
roles/securesourcemanager.repoReader) on the repository -
כדי לבצע push למאגר:
Secure Source Manager Repo Writer (
roles/securesourcemanager.repoWriter) on the repository
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
במאמרים בקרת גישה באמצעות IAM והענקת גישה של משתמשים למופע מוסבר איך נותנים תפקידים ב-Secure Source Manager.
התקנת Git ו-Google Cloud CLI
מתקינים את Git.
אם מוצגת בקשה Choose a credential helper (בחירת כלי עזר לפרטי כניסה) בתהליך ההתקנה של Git, בוחרים באפשרות None (Do not use a credential helper) (ללא כלי עזר לפרטי כניסה).
כדי להשתמש ב-Git עם HTTPS, צריך להשתמש בגרסה
395.0.0ומעלה של ה-CLI של gcloud. כדי לבדוק את הגרסה של ה-CLI של gcloud, מריצים את הפקודה הבאה:gcloud --versionכדי לעדכן את ה-CLI של gcloud, מריצים את הפקודה הבאה.
gcloud components updateאחרי העדכון, מריצים את הפקודה
gcloud initכדי לאתחל את ה-CLI של gcloud.מידע נוסף זמין במאמרי עזרה בנושא עדכון רכיבים בתיעוד של ה-CLI של gcloud.
הגדרת פרטי הכניסה
אם אתם מבצעים אימות ל-Secure Source Manager באמצעות ספק זהויות של צד שלישי ואיחוד שירותי אימות הזהות של כוח העבודה, אתם לא צריכים להשלים את השלב הזה. במקום זאת, אתם צריכים ליצור הגדרת כניסה למאגר זהויות של כוח העבודה.
מריצים את הפקודה הבאה כדי להוסיף את כלי העזר לאימות של Secure Source Manager להגדרת ה-Git הגלובלית:
Linux
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
יכול להיות שגרסאות קודמות של Git לא תומכות בתווים כלליים. כדי להוסיף את כלי העזר לאימות בלי תווים כלליים, מריצים את הפקודה הבאה:
git config --global credential.'https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev'.helper gcloud.sh
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_IDבשם של מופע Secure Source Manager. PROJECT_NUMBERבמספר הפרויקט. במאמר זיהוי פרויקטים מוסבר איך למצוא את מספר הפרויקט.-
LOCATIONעם האזור של המכונה. מידע נוסף על אזורים זמין במאמר מיקומים.
Windows
git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd
יכול להיות שגרסאות קודמות של Git לא תומכות בתווים כלליים. כדי להוסיף את כלי העזר לאימות בלי תווים כלליים, מריצים את הפקודה הבאה:
git config --global credential.https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev.helper gcloud.cmd
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_IDבשם של מופע Secure Source Manager. PROJECT_NUMBERבמספר הפרויקט. במאמר זיהוי פרויקטים מוסבר איך למצוא את מספר הפרויקט.-
LOCATIONעם האזור של המכונה. מידע נוסף על אזורים זמין במאמר מיקומים.
עוזר האימות משתמש ב-CLI של gcloud כדי לאחזר את פרטי הכניסה שלכםGoogle Cloud כשמשתמשים בפקודות Git עם Secure Source Manager.
כדי לבצע אימות מחדש אחרי ההגדרה הראשונית של פרטי הכניסה, מריצים ב-CLI של gcloud את הפקודה הבאה:
gcloud auth login
אימות ממכונה וירטואלית ב-Compute Engine באמצעות חשבון שירות
אתם יכולים לבצע אימות ממכונה וירטואלית (VM) ב-Compute Engine באמצעות חשבון שירות שמקושר אליה.
הגדרת המכונה הווירטואלית וחשבון השירות
אם אתם משתמשים בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, אתם צריכים ליצור את המכונה הווירטואלית עם היקפי ההרשאות הנדרשים של OAuth:
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform
מחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: השם של המכונה הווירטואלית. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
ZONE: האזור של המכונה הווירטואלית.
אם משתמשים בחשבון שירות בהתאמה אישית, צריך ליצור את חשבון השירות ואז ליצור את המכונה הווירטואלית.
יוצרים חשבון שירות:
gcloud iam service-accounts create SA_NAME --project=PROJECT_IDמחליפים את הערך
SA_NAMEבשם שרוצים לתת לחשבון השירות.נותנים הרשאה להשתמש בחשבון השירות. כדי ליצור מכונה וירטואלית עם חשבון שירות, צריך את התפקיד משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בחשבון השירות. הקצאת התפקיד הזה לחשבון המשתמש שיוצר את המכונה הווירטואלית:gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"מחליפים את
USER_EMAILבכתובת האימייל של המשתמש שיוצר את ה-VM.יוצרים את המכונה הווירטואלית:
gcloud compute instances create VM_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform \ --service-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
הקצאת תפקידי IAM לחשבון השירות
מעניקים לחשבון השירות גישה למאגר ולמופע של Secure Source Manager:
הענקת גישה למופע:
SA_EMAIL=$(gcloud compute instances describe VM_NAME --project=PROJECT_ID --zone=ZONE --format="get(serviceAccounts[0].email)") gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:$SA_EMAIL" \ --role=roles/securesourcemanager.instanceAccessorהענקת גישת קריאה למאגר.
כדי להעניק הרשאת קריאה למאגר ספציפי, מריצים את הפקודה הבאה:
gcloud ssm repos add-iam-policy-binding REPOSITORY_ID \ --instance=INSTANCE_ID \ --location=LOCATION \ --member="serviceAccount:$SA_EMAIL" \ --role=roles/securesourcemanager.repoReaderמחליפים את מה שכתוב בשדות הבאים:
-
REPOSITORY_ID: מזהה המאגר. -
INSTANCE_ID: מזהה המופע של Secure Source Manager. -
LOCATION: האזור של מופע Secure Source Manager.
כדי להעניק הרשאת כתיבה, משתמשים בתפקיד
roles/securesourcemanager.repoWriter.מומלץ להעניק גישה ברמת המאגר כדי לפעול לפי העיקרון של הרשאות מינימליות. אם אתם צריכים להעניק גישה לכל המאגרים בפרויקט, כדאי לעיין במאמר בקרת גישה באמצעות IAM.
-
יכולות לחלוף כמה דקות עד שההרשאות ב-IAM יופצו.
הגדרת Git במכונה הווירטואלית
מתחברים למכונה הווירטואלית באמצעות SSH:
gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONEבמכונה הווירטואלית, מתקינים את Git:
sudo apt-get install gitב-VM, מגדירים את כלי העזר לפרטי הכניסה של Git כמו שמתואר במאמר בנושא הגדרת פרטי הכניסה. לדוגמה, ב-Linux:
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
אחרי שמגדירים את כלי העזר לפרטי הכניסה, Git משתמש בפרטי הכניסה שמוגדרים כברירת מחדל באפליקציה מחשבון השירות של המכונה הווירטואלית כדי לבצע אימות ל-Secure Source Manager. עכשיו אפשר לשכפל מאגר. כדי לבצע אימות באמצעות Application Default Credentials, צריך להשתמש בכתובת ה-URL של המאגר ב-HTTPS.
יצירת הגדרת כניסה למאגר זהויות של כוח העבודה
אין צורך להשלים את הסעיף הזה אלא אם אתם משתמשים בשירות המשולב לזיהוי עובדים כדי לבצע אימות ל-Secure Source Manager באמצעות ספק זהויות של צד שלישי.
כדי לבצע אימות באמצעות פרטי הכניסה של מאגר הזהויות של כוח העבודה למופע של Secure Source Manager באמצעות פקודות ה-CLI של gcloud או פקודות Git, צריך ליצור הגדרת כניסה עם מאגר הזהויות של כוח העבודה.
כדי ליצור הגדרת כניסה למאגר זהויות של כוח העבודה, פועלים לפי ההוראות במאמר קבלת אסימונים לטווח קצר לאיחוד שירותי אימות הזהות של כוח עבודה כדי ליצור כניסה מבוססת-דפדפן באמצעות ה-CLI של gcloud.
אחרי האימות, אפשר להשתמש בפקודות Git כדי ליצור אינטראקציה עם מופע Secure Source Manager. צריך לבצע אימות מחדש כשהזמן שמוגדר למשך הסשן במאגר הזהויות של כוח העבודה פג.
שכפול מאגר
משכפלים מאגר על ידי הרצת הפקודה הבאה:
git clone REPOSITORY_URL
כאשר REPOSITORY_URL היא כתובת ה-URL של HTTPS או SSH שמוצגת בחלק העליון של דף המאגר שרוצים לשכפל.
שכפול באמצעות Developer Connect
אם קישרתם את מאגר Secure Source Manager ב-Developer Connect, תוכלו לשכפל מאגרים באמצעות פרוקסי Git של Developer Connect. שיבוט באמצעות Developer Connect משתמש ב-IAM כדי לאמת את הגישה למאגר ולהעניק הרשאה לגישה.
לפני שמתחילים
- פועלים לפי ההוראות כדי ליצור חיבור למאגר Secure Source Manager ב-Developer Connect.
- מוודאים שפרוקסי Git מופעל בחיבור Developer Connect. הוראות להפעלת שרת proxy של Git זמינות במאמר הגדרה ושימוש בשרת proxy של Developer Connect.
- צריך להעניק לישויות (principals) שצריכות לשכפל באמצעות ה-URI של ה-proxy את התפקיד
roles/developerconnect.gitProxyReaderבמשאבGitRepositoryLinkב-Developer Connect. במאמר בקרת גישה ל-Developer Connect באמצעות IAM מוסבר איך מקצים תפקידים.
הגדרת פרטי כניסה ל-Developer Connect
מריצים את הפקודה הבאה כדי להוסיף את כלי העזר לאימות של Developer Connect להגדרות Git הגלובליות:
Linux
git config --global credential.'https://*.developerconnect.dev'.helper gcloud.sh
Windows
git config --global credential.https://*.developerconnect.dev.helper gcloud.cmd
שכפול באמצעות ה-URI של ה-proxy
כדי לשכפל מאגר באמצעות ה-URI של ה-proxy של Developer Connect, מריצים את הפקודה הבאה:
git clone https://REGION-git.developerconnect.dev/v1/projects/PROJECT_ID/locations/REGION/connections/CONNECTION_ID/gitRepositoryLinks/LINK_ID
מחליפים את מה שכתוב בשדות הבאים:
-
REGION: האזור של משאבי Developer Connect. -
PROJECT_ID: מזהה הפרויקט של משאבי Developer Connect. -
CONNECTION_ID: המזהה של החיבור שלכם ל-Developer Connect. -
LINK_ID: המזהה של משאבGitRepositoryLinkDeveloper Connect.
הוראות לצפייה בפרטי המשאב GitRepositoryLink מופיעות במאמר gcloud developer-connect connections git-repository-links.
אפשר להשתמש בפקודות המשנה list או describe כדי לראות את פרטי הקישור.
העברת מאגר קיים אל Secure Source Manager
כדי לבצע פעולת push למאגר, צריך קודם ליצור מאגר Secure Source Manager שישמש כמאגר מרוחק.
כדי להעביר את מאגר Git הקיים למאגר ריק של Secure Source Manager, צריך להוסיף את מאגר Secure Source Manager כמאגר מרוחק ולהעביר אליו את הנתונים.
כדי להגדיר את מאגר Secure Source Manager כמאגר מרוחק, מריצים את הפקודה הבאה:
git remote add origin REPOSITORY_URL
REPOSITORY_URLהיא כתובת ה-URL של HTTPS או SSH שמוצגת בחלק העליון של דף המאגר.כדי לבצע push למאגר, מריצים את הפקודה הבאה:
git push -u origin main
מידע נוסף על ניהול קוד מקור ב-Git זמין במאמרי העזרה של Git.