משתמשים וחשבונות שירות יכולים להשתמש במפתחות ציבוריים של SSH כדי לבצע אימות למאגרי Secure Source Manager. בדף הזה מוסבר איך ליצור זוג מפתחות SSH ואז להוסיף אותו כשיטת אימות בממשק האינטרנט של Secure Source Manager.
Secure Source Manager תומך בסוגי מפתחות SSH RSA, ECDSA ו-Ed25519.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לאימות באמצעות מפתחות ציבוריים של SSH, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
כדי להוסיף מפתח SSH למשתמש:
Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor) במופע של Secure Source Manager -
כדי להוסיף מפתח SSH לחשבון שירות:
- Secure Source Manager Instance Manager (
roles/securesourcemanager.instanceManager) במופע של Secure Source Manager - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בחשבון השירות
- Secure Source Manager Instance Manager (
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לאימות באמצעות מפתחות ציבוריים של SSH. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לבצע אימות באמצעות מפתחות ציבוריים של SSH, נדרשות ההרשאות הבאות:
-
securesourcemanager.sshkeys.createAnyבמופע של Secure Source Manager -
כדי להקצות מפתח SSH לחשבון שירות:
iam.serviceAccounts.actAsבחשבון השירות
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
במאמרים בקרת גישה באמצעות IAM והענקת גישה של משתמשים למופע מוסבר איך נותנים תפקידים ב-Secure Source Manager.
יצירת צמד מפתחות
זוג מפתחות SSH מורכב ממפתח פרטי שנמצא במערכת המקומית וממפתח ציבורי שאתם רושמים ב- Google Cloud.
Linux או macOS
מתקינים את OpenSSH במערכת המקומית.
בשורת הפקודה, מזינים את הפקודה הבאה:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"כאשר:
- USER_EMAIL היא כתובת האימייל שלכם.
- KEY_TYPE הוא אחד מהערכים
rsa,ecdsaאוed25519.
לדוגמה:
ssh-keygen -t rsa -C "user@example.com"כשמופיעה בקשה, מזינים מיקום ושם קובץ עבור קובץ המפתח הציבורי. כדי לאשר את מיקום ברירת המחדל ואת שם הקובץ, מקישים על Enter.
כשמופיעה בקשה, משאירים את ביטוי הסיסמה ריק ומקישים על Enter.
Windows
אם אין לכם אותו, צריך להתקין את לקוח OpenSSH (כלול ב-Windows 10 ובגרסאות מתקדמות יותר) ואת Git for Windows במערכת המקומית. ההוראות הבאות מתייחסות לשימוש ב-OpenSSH וב-Git ל-Windows.
ב-PowerShell או בשורת הפקודה, מריצים את הפקודה הבאה:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"כאשר:
- USER_EMAIL היא כתובת האימייל שלכם.
- KEY_TYPE הוא אחד מהערכים
rsa,ecdsaאוed25519.
לדוגמה:
ssh-keygen -t rsa -C "user@example.com"כשמופיעה בקשה, מזינים מיקום ושם קובץ עבור קובץ המפתח הציבורי. כדי לאשר את מיקום ברירת המחדל ואת שם הקובץ (%USERPROFILE%.ssh), לוחצים על Enter.
כשמופיעה בקשה, משאירים את ביטוי הסיסמה ריק ומקישים על Enter.
הוספת מפתח SSH לסוכן SSH
כדי להשתמש בזוג מפתחות ה-SSH שיצרתם, מוסיפים את המפתח לסוכן ה-SSH. אם לא שמרתם את המפתח במיקום ברירת המחדל, הוספתו לסוכן ה-SSH תעזור ל-SSH לאתר את המפתח.
Linux או macOS
התחלת
ssh-agentברקע:eval "$(ssh-agent -s)"הפקודה מחזירה את מזהה התהליך (PID) של הסוכן, לדוגמה:
Agent pid 3245בהתאם לסביבה שלכם, יכול להיות שתצטרכו להשתמש בפקודה אחרת, למשל:
- כדי להשתמש בגישת root, מריצים את הפקודה
sudo -s -Hלפני שמפעילים אתssh-agent. - כדי להריץ את
ssh-agentישירות, משתמשים ב-exec ssh-agent bashאו ב-exec ssh-agent zsh.
- כדי להשתמש בגישת root, מריצים את הפקודה
מוסיפים את המפתח הפרטי של SSH אל
ssh-agent.ssh-add ~/.ssh/FILENAMEכאשר
FILENAMEהוא שם קובץ המפתח הפרטי, לדוגמהid_rsaאוid_ed25519.
Windows
התחלת
ssh-agent.אם אתם משתמשים ב-Git Bash, מפעילים את
ssh-agent:eval "$(ssh-agent -s)"אם אתם משתמשים ב-PowerShell או בכלי Command Prompt, צריך להפעיל את השירות
ssh-agent. ב-PowerShell, מריצים את הפקודה:Set-Service ssh-agent -StartupType Automatic; Start-Service ssh-agent
מוסיפים את המפתח הפרטי של SSH אל
ssh-agent.אם אתם משתמשים ב-Git Bash:
ssh-add ~/.ssh/FILENAMEאם משתמשים ב-PowerShell או בשורת הפקודה:
ssh-add $env:USERPROFILE\.ssh\FILENAME
כאשר
FILENAMEהוא שם קובץ המפתח הפרטי, לדוגמהid_rsaאוid_ed25519.
הוספת מפתחות SSH למשתמשים
- בממשק האינטרנט של Secure Source Manager, בדף של המופע או המאגר, לוחצים על התפריט אפשרויות נוספות.
לוחצים על מפתחות SSH של משתמשים.
ייפתח הדף User SSH keys, ויוצג בו רשימה של כל המפתחות הקיימים שיצרתם.
בדף User SSH keys (מפתחות SSH של משתמש), לוחצים על Add key (הוספת מפתח).
בדף Add SSH Key (הוספת מפתח SSH), מזינים את הערכים הבאים עבור המפתח:
- שם: מוסיפים שם תיאורי למפתח.
מפתח ציבורי SSH: מדביקים את מחרוזת המפתח הציבורי. כדי לקבל את מחרוזת המפתח הציבורי, פותחים את קובץ המפתח הציבורי (
FILENAME.pub) בכלי לעריכת טקסט, או מריצים אחת מהפקודות הבאות:Linux או macOS
cat ~/.ssh/FILENAME.pubWindows
cat $env:USERPROFILE\.ssh\FILENAME.pubמחליפים את
FILENAMEבשם של קובץ המפתח.
אתם יכולים להשתמש במפתחות SSH כדי לבצע אימות לכל מאגר של Secure Source Manager, בתנאי שיש לכם את ההרשאות הנדרשות במאגר הזה.
הוספה של מפתחות SSH לחשבונות שירות
כדי לאפשר גישה לתכנות למאגר, אפשר להוסיף מפתח SSH לחשבון שירות.
- אם עדיין אין לכם חשבון שירות שבו אתם רוצים להשתמש, צרו חשבון שירות.
- בממשק האינטרנט של Secure Source Manager, לוחצים על התפריט אפשרויות נוספות.
- לוחצים על מפתחות SSH של חשבון שירות. נפתח הדף Service account SSH keys ומוצגת רשימה של כל המפתחות הקיימים שהוספתם.
- בדף מפתחות SSH של חשבון שירות, לוחצים על הוספת מפתח.
בדף Add service account SSH key, מזינים את הערכים הבאים של המפתח:
- שם: שם תיאורי למפתח
חשבון שירות: כתובת האימייל בחשבון השירות שרוצים להשתמש בו במפתח ה-SSH, בפורמט
SA_NAME@PROJECT_ID.iam.gserviceaccount.comכאשר:
-
SA_NAMEהוא השם של חשבון השירות. -
PROJECT_IDהוא מזהה הפרויקט שבו נוצר חשבון השירות.
-
מפתח ציבורי SSH: מפתח ה-SSH הציבורי. מידע על יצירת זוג מפתחות SSH זמין במאמר בנושא יצירת זוג מפתחות.
אם חשבון השירות לא נמצא באותו פרויקט כמו המופע של Secure Source Manager, צריך להקצות לסוכן השירות של Secure Source Manager את אחד מהתפקידים או ההרשאות הבאים בחשבון השירות שרוצים להשתמש בו:
- הרשאה
iam.serviceAccounts.signJwt - התפקיד 'יצירת אסימונים בחשבון שירות' (
roles/iam.serviceAccountTokenCreator)
מריצים את הפקודה הבאה כדי להוסיף מדיניות IAM לחשבון השירות של Secure Source Manager, וכך להעניק לו את התפקיד Service Account Token Creator.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \ --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"כאשר SERVICE_ACCOUNT הוא חשבון השירות שבו רוצים להשתמש ו-INSTANCE_PROJECT_NUMBER הוא מספר הפרויקט של מופע Secure Source Manager.
הערך SERVICE_ACCOUNT צריך להיות בפורמט של מזהה מספרי של חשבון שירות או בפורמט של כתובת אימייל, למשל: 123456789876543212345 או my-iam-account@somedomain.com.
- הרשאה