ה-CLI של gcloud מאפשר למפתחים להשתמש במפתחות פרטיים כדי לבצע אימות באמצעות חשבונות שירות, שמוכרים גם בכינוי, חשבונות רובוט. בדף הזה אנחנו מסבירים איך ליצור מפתחות p12 של חשבונות שירות ל- Cloud de Confiance by S3NSולהשתמש בהם.
התקנת pyca/cryptography
הספרייה pyca/cryptography (גרסה 2.5 או מתקדמת יותר) מאפשרת ל-CLI של gcloud לפענח את הקוד של קובצי מפתחות בפורמט p12 שמזהים חשבון שירות. הספרייה pyca/cryptography כוללת תרחישים קריפטוגרפיים ולכן לא מפיצים אותה יחד עם ה-CLI של gcloud.
במערכות שבהן מותקן pip, ממשק שורת הפקודה לאינדקס החבילה של Python מותקן. מריצים את הפקודה הבאה כדי להתקין את pyca/cryptography.
לקבלת מידע נוסף עיינו בהוראות ההתקנה.
python -m pip install cryptography
CLOUDSDK_PYTHON_SITEPACKAGES=1
לאחר התקנת pyca/cryptography צריך להגדיר את משתנה הסביבה CLOUDSDK_PYTHON_SITEPACKAGES ל-1. הגדרת משתנה הסביבה מנחה את ה-CLI של gcloud לחפש ולכלול ספריות שמחוץ לספריית ה-google-cloud-sdk/lib שלו. בדרך כלל אפשר להגדיר את CLOUDSDK_PYTHON_SITEPACKAGES=1 בלי חשש, אבל אם משהו משתבש יהיה צורך לבטל את ההגדרה הזו.
יצירת חשבון שירות
כדי ליצור חשבון שירות חדש ולהוריד קובץ מפתח של p12 יש לפעול בהתאם להנחיות שמופיעות ביצירת מפתחות של חשבונות שירות.
יש להתייחס אל קובץ המפתח כאל מידע סודי ולהגן עליו מפני גישה של אנשים שאינכם סומכים עליהם. במערכות כמו unix אפשר להגן על קובץ מפני גישה של משתמשים אחרים שמחוברים מרחוק (שאינם משתמשי Root) באמצעות הפקודה הבאה:
chmod 0600 YOUR_KEY_FILE.p12
שימוש בחשבון השירות עם ה-CLI של gcloud
את פרטי הכניסה של חשבון שירות אפשר להפעיל באמצעות gcloud auth activate-service-account.
כדי להשתמש בחשבון השירות עם ה-CLI של gcloud, מריצים את gcloud auth activate-service-account ומעבירים אליו את הנתיב לקובץ המפתח עם דגל --key-file הנדרש, ונותנים לו חשבון כארגומנט תלוי מיקום.
החשבון שבו אתם משתמשים צריך להיות האימייל של חשבון השירות שמצוין במסוף Cloud de Confiance , אבל הוא לא יאומת, הוא רק עוזר לכם לזכור באיזה חשבון אתם משתמשים.
gcloud auth activate-service-account --key-file ~/mykeys/my_key_file.p12 my_service_account@developer.s3ns-system.iam.gserviceaccount.com Activated service account credentials for my_service_account@developer.s3ns-system.iam.gserviceaccount.com.
אזהרה: הקוד gcloud auth activate-service-account יצור עותק של המפתח הפרטי ויאחסן אותו ב-$HOME/.config/gcloud/legacy_credentials/my_service_account@developer.s3ns-system.iam.gserviceaccount.com/private_key.p12 וב-$HOME/.config/gcloud/credentials.db.
הוא ייווצר עם הרשאות 0600 (קריאה/כתיבה למשתמש שלכם בלבד), ולכל מה שמאוחסן ב-$HOME/.config/gcloud צריך להתייחס כבר כאל מידע סודי. כדי למחוק ביעילות ובאופן אחראי נתוני אימות שמאוחסנים על ידי ה-CLI של gcloud צריך רק למחוק את $HOME/.config/gcloud. האחריות על ניהול מאובטח של קובץ המפתח שמורידים ממסוף Cloud de Confiance מוטלת על המשתמשים. אם התעורר ספק בנוגע לאבטחה, יש לבטל את המפתח במסוף Cloud de Confiance .
כאשר חשבון השירות כבר מופעל, אפשר לראות אותו ברשימת פרטי הכניסה.
gcloud auth list Credentialed Accounts ACTIVE ACCOUNT * my_service_account@developer.s3ns-system.iam.gserviceaccount.com To set the active account, run: $ gcloud config set account my_service_account@developer.s3ns-system.iam.gserviceaccount.com