המאמר הזה עוסק רק באימות של ה-CLI של Google Cloud לצורך גישה למשאביGoogle Cloud . אם אתם צריכים לאמת עומסי עבודה באמצעות ספריות לקוח של Cloud או ספריות לקוח של Google API, תוכלו לקרוא את המאמר איך פועל Application Default Credentials.
לפני שמתחילים
אם אתם חדשים ב- Google Cloud ורוצים להתחיל להשתמש בפקודות של ה-CLI של gcloud בסביבת הפיתוח המקומית, אתם יכולים לאתחל את ה-CLI של gcloud באמצעות הפקודה הבאה:
gcloud init
במהלך האתחול, תועברו לתהליך אימות, תגדירו הגדרות אישיות של ה-CLI של gcloud ותאשרו ל-CLI של gcloud לפעול בשמכם. אין צורך לבצע שלב אימות נפרד.
בחלקים הבאים של המסמך מוסברים תרחישים מורכבים יותר, כמו שימוש ב-CLI של gcloud עם סוגים שונים של ישויות, שיטות אימות מתאימות לסביבות שונות, החלפת ישויות וניהול של פרטי כניסה מאוחסנים.
שיטות אימות
כל הפקודות ב-CLI של gcloud צריכות לעבור אימות ל-APIs של Google Cloud Google. אפשר לבצע אימות בדרכים הבאות:
הרשאה ושמירת פרטי כניסה: מתאים לשימוש על ידי בני אדם בסביבת פיתוח מקומית. אפשר לתת ל-CLI של gcloud הרשאה לפעול בשם גורם מרכזי באמצעות הפקודה
gcloud auth login. אחרי האימות הראשוני, הפקודה הזו שומרת את פרטי הכניסה בספריית ההגדרות של ה-CLI של gcloud. ה-CLI של gcloud משתמש בפרטי הכניסה השמורים האלה כדי לבצע אימות אוטומטי עבור פקודות עתידיות עד שתוקף הסשן יפוג או עד שתבטלו את ההרשאה.אימות באמצעות קובץ פרטי כניסה: מתאים לעומסי עבודה שפועלים מחוץ ל- Google Cloud. אפשר להשתמש במשתני סביבה או במאפייני ההגדרה של ה-CLI של gcloud כדי לציין קובץ פרטי כניסה לאימות אוטומטי. הקובץ יכול להיות אחד מהסוגים הבאים:
קובץ תצורה של פרטי כניסה לאיחוד זהויות של עומסי עבודה.
מפתח של חשבון שירות.
מספקים טוקן גישה: מתאים לתהליכי עבודה אוטומטיים מבודדים מאוד או לסשנים ללא מצב במכונות משותפות. אפשר לעקוף את אחסון פרטי הכניסה על ידי העברת אסימון גישה ישירות אל ה-CLI של gcloud. כדי לעשות את זה, צריך להגדיר משתנה סביבה ספציפי למחרוזת של טוקן הגישה הגולמי, או להפנות את ה-CLI של gcloud לקובץ שמכיל את טוקן הגישה.
אחרי האימות, אפשר לאפשר ל-CLI של gcloud להתחזות לחשבון שירות על ידי הזנת כתובת האימייל של חשבון השירות.
אפשר להשתמש בכמה שיטות אימות בסביבה אחת. עם זאת,
רק גורם אחד משמש לכל פקודה נתונה של gcloud. כדי לקבוע איזה גורם ראשי ישמש, ה-CLI של gcloud פועל לפי סדר עדיפויות.
מתי לא צריך לבצע אימות
אין צורך לבצע אימות ל-CLI של gcloud במצבים הבאים:
- מיד אחרי שמאתחלים את ה-CLI של gcloud. תהליך האתחול כולל אימות והרשאה ל-CLI של gcloud לפעול בשמכם. יכול להיות שעדיין תצטרכו לבצע אימות מחדש אם אתם צריכים לגשת למשאבים שונים באמצעות חשבון משתמש אחר, או אם אתם צריכים לאמת מחדש את חשבון המשתמש שלכם.
- כשמשתמשים ב-CLI של gcloud ממקור שחושף שרת מטא-נתונים של Compute Engine. זה כולל משאבים כמו מכונות וירטואליות של Compute Engine, שירותי Cloud Run ו-builds של Cloud Build. ה-CLI של gcloud מבצע אימות באמצעות חשבון השירות שמצורף למכונה הווירטואלית, ויכול לגשת לאותם משאבים כמו חשבון השירות הזה, במסגרת המגבלות של היקפי הגישה שהוגדרו.
- כשמשתמשים ב-Cloud Shell. ה-CLI של gcloud מבצע אימות אוטומטי באמצעות חשבון המשתמש שאיתו נכנסתם למסוף Google Cloud . כשמריצים פקודה של ה-CLI של gcloud בפעם הראשונה בסשן חדש של Cloud Shell, מוצגת בקשה לאשר את Cloud Shell באמצעות הישות המורשית הזו.
בחירת החשבון הראשי המתאים למשימה
יש סוגים שונים של חשבונות משתמשים לשימוש אנושי ולעומסי עבודה אוטומטיים. סוג חשבון המשתמש שבו צריך להשתמש משפיע על אופן האימות.
-
חשבונות משתמשים: אלה חשבונות Google שמיועדים לאנשים כדי לבצע עבודה אינטראקטיבית, כמו משימות אדמיניסטרטיביות מקריות, הגדרה לא תוכניתית של שירותי Google Cloud , בדיקה, ניסויים ויכולת צפייה.
אתם מבצעים אימות כחשבון משתמש באמצעות פרטי כניסה של משתמש, כמו סיסמה וקוד חד-פעמי.
-
חשבונות שירות: אלה חשבונות שספציפיים ל- Google Cloud שעומסי עבודה יכולים להשתמש בהם כדי לגשת לשירותים או למשאבים. בדרך כלל לא מבצעים אימות ישירות כחשבון שירות. במקום זאת, אתם מצרפים חשבון שירות למשאב כמו מכונה וירטואלית ב-Compute Engine, או משתמשים בהתחזות לחשבון שירות.
-
חשבונות ראשיים מאוחדים: אלה זהויות שמפנות לחשבונות משתמשים או לחשבונות שירות בספק זהויות חיצוני. יש שני סוגים של ישויות מאוחדות שנתמכות על ידי Google Cloud, עם שמות דומים:
-
איחוד שירותי אימות הזהות של כוח עבודה: מאפשר למשתמשים אנושיים להיכנס ל- Google Cloud באמצעות זהויות שמנוהלות על ידי ספק זהויות חיצוני. אם בארגון שלכם כבר מוגדרת כניסה יחידה (SSO), יכול להיות שתשתמשו בסוג הזה של זהות כדי לבצע אימות ל- Google Cloud.
כדי להשתמש באיחוד שירותי אימות הזהות של כוח העבודה, ספק הזהויות שלכם צריך לתמוך ב-OpenID Connect (OIDC) או ב- SAML 2.0.
-
איחוד שירותי אימות הזהות של עומסי עבודה: מאפשר לעומסי עבודה שפועלים מחוץ ל- Google Cloud לפעול במשאבי Google Cloud .
אתם יכולים להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה עם עומסי עבודה שעוברים אימות באמצעות אישורי לקוח X.509, שפועלים ב- Amazon Web Services (AWS) או ב-Azure, ב- Active Directory מקומי, בשירותי פריסה כמו GitHub ו-GitLab, ועם כל ספק זהויות שתומך ב- OpenID Connect (OIDC) או ב-Security Assertion Markup Language (SAML) גרסה 2.0.
-
שימוש ב-CLI של gcloud כאדם
בדרך כלל, כדי לבצע משימות אינטראקטיביות, צריך לבצע אימות באחת מהדרכים הבאות:
חשבון משתמש
זהות משתמש מאוחדת, באמצעות איחוד שירותי אימות הזהות של כוח העבודה
חשבונות משתמשים
האימות באמצעות חשבון משתמש ב-CLI של gcloud תלוי בשאלה אם דפדפן אינטרנט מותקן במכשיר.
במכשיר שלי יש דפדפן אינטרנט
כדי להיכנס באמצעות חשבון משתמש במכשיר עם דפדפן אינטרנט, צריך לבצע את השלבים הבאים:
מריצים את הפקודה הבאה כדי להתחיל את התהליך:
gcloud auth loginפועלים בהתאם להליך ההרשאה שבדפדפן כדי לאמת את ה-CLI של gcloud ולתת לו הרשאה לגשת למשאבים בשמכם עבור פקודות עתידיות.
הפקודה gcloud auth login שומרת את פרטי הכניסה לגישה בספריית הבית. המשתמש המאומת הופך למשתמש הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אלא אם משנים את ברירת המחדל, ה-CLI של gcloud משתמש בפרטי הכניסה המאוחסנים האלה כדי לגשת אל Google Cloud.
במכשיר שלי אין דפדפן אינטרנט
אם במכשיר שבו רוצים להשתמש ב-CLI של gcloud אין דפדפן אינטרנט, אפשר לבצע אימות באמצעות חשבון המשתמש במכשיר מהימן אחר. התהליך הזה משתנה בהתאם לתוכנה שמותקנת במכשיר המהימן האחר.
אימות באמצעות מכשיר מהימן אחר
בוחרים אילו תוכנות יהיו זמינות במכשיר המהימן השני.
ה-CLI של gcloud ודפדפן אינטרנט
כדי להשלים את תהליך האימות במכשיר אחר עם דפדפן אינטרנט ו-CLI של gcloud מותקן, משתמשים בדגל --no-browser:
מריצים את הפקודה הבאה במכשיר המקורי שבו רוצים להשתמש ב-CLI של gcloud:
Linux ו-macOS
gcloud auth login \ --no-browserWindows (PowerShell)
gcloud auth login ` --no-browserמעתיקים את הפקודה
gcloudשמתחילה ב-gcloud auth login --remote-bootstrap="כדי להשתמש בה במכשיר השני.עוברים למכשיר מהימן אחר שמותקנים בו דפדפן ו-CLI של gcloud מגרסה 372.0.0 ואילך.
בטרמינל, מריצים את הפקודה שהעתקתם קודם שמתחילה ב-
gcloud auth login --remote-bootstrap=", ומשלימים את התהליך שמבוסס על הדפדפן.בטרמינל, מעתיקים את כתובת ה-URL שמתחילה ב-
https://localhostכדי להשתמש בה במכשיר המקורי.חוזרים למכשיר המקורי.
בטרמינל, בהנחיה, מדביקים את כתובת ה-URL
https://localhostשהעתקתם קודם. כדי לסיים את התהליך, מקישים על Enter או על Return במקלדת.
הפקודה gcloud auth login שומרת את פרטי הכניסה לגישה בספריית הבית. המשתמש המאומת הופך למשתמש הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אלא אם משנים את ברירת המחדל, ה-CLI של gcloud משתמש בפרטי הכניסה המאוחסנים האלה כדי לגשת אל Google Cloud.
דפדפן אינטרנט בלבד
משתמשים בדגל --no-launch-browser כדי להשלים את תהליך האימות באמצעות דפדפן אינטרנט במכשיר אחר:
מריצים את הפקודה הבאה במכשיר המקורי שבו רוצים להשתמש ב-CLI של gcloud:
Linux ו-macOS
gcloud auth login \ --no-launch-browserWindows (PowerShell)
gcloud auth login ` --no-launch-browserמעתיקים את כתובת ה-URL שמתחילה עם
https://accounts.google.com/o/oauth2/authכדי להשתמש בה במכשיר השני.עוברים למכשיר מהימן אחר שמותקן בו דפדפן אינטרנט.
פותחים דפדפן אינטרנט, עוברים לכתובת ה-URL שהעתקתם קודם ומבצעים את התהליך בדפדפן.
מעתיקים את קוד האימות לשימוש במכשיר המקורי.
חוזרים למכשיר המקורי.
בטרמינל, בהנחיה, מדביקים את קוד האימות שהעתקתם קודם. כדי לסיים את התהליך, מקישים על Enter או על Return במקלדת.
הפקודה gcloud auth login שומרת את פרטי הכניסה לגישה בספריית הבית. המשתמש המאומת הופך למשתמש הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אלא אם משנים את ברירת המחדל, ה-CLI של gcloud משתמש בפרטי הכניסה המאוחסנים האלה כדי לגשת אל Google Cloud.
זהויות משתמשים מאוחדות
אתם יכולים להשתמש ב-CLI של gcloud עם זהות משתמש מאוחדת שמנוהלת בספק זהויות חיצוני (IdP). כדי לעשות זאת, אתם יכולים להשתמש באיחוד שירותי אימות הזהות של כוח עבודה.
ההוראות הבאות מניחות שכבר הגדרתם מאגר וספק של איחוד שירותי אימות הזהויות של כוח עבודה כדי לעבוד עם ספק הזהויות שלכם.
כדי להשתמש ב-CLI של gcloud עם זהות משתמש מאוחדת, יוצרים קובץ הגדרות לכניסה ואז נכנסים באמצעות תהליך מבוסס-דפדפן:
מריצים את הפקודה הבאה כדי ליצור קובץ תצורה לכניסה:
. אחר כך אפשר להריץ את הפקודהLinux ו-macOS
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --output-file=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud iam workforce-pools create-login-config ` locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID ` --output-file=LOGIN_CONFIG_PATH
gcloud auth loginכדי לתת הרשאה ל-CLI של gcloud בלי לציין את הנתיב של קובץ הגדרות הכניסה בכל פעם.מחליפים את מה שכתוב בשדות הבאים:
-
WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה. -
WORKFORCE_PROVIDER_ID: המזהה של ספק איחוד שירותי אימות הזהות של כוח העבודה. -
LOGIN_CONFIG_PATH: הנתיב שבו ייכתב קובץ התצורה להתחברות. לדוגמה,login-config.json.
קובץ הגדרות הכניסה מכיל את נקודות הקצה (endpoints) שבהן ה-CLI של gcloud משתמש כדי להפעיל את תהליך האימות בדפדפן ולהגדיר את הקהל לספק הזהויות שהוגדר במאגר הזהויות של כוח העבודה. הקובץ לא מכיל מידע סודי.
התוכן של קובץ התצורה לכניסה נראה כך:
{ "universe_domain": "googleapis.com", "universe_cloud_web_domain": "cloud.google", "type": "external_account_authorized_user_login_config", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "auth_url": "https://auth.cloud.google/authorize", "token_url": "https://sts.googleapis.com/v1/oauthtoken", "token_info_url": "https://sts.googleapis.com/v1/introspect" }
-
מפנים לקובץ התצורה לכניסה באמצעות משתנה סביבה, מאפיין בהגדרות האישיות הפעילות של ה-CLI של gcloud, או משתמשים בו ישירות באמצעות הפקודה
gcloud auth login:משתנה הסביבה
כדי להשתמש בקובץ התצורה שמשמש לכניסה באמצעות משתנה סביבה, מבצעים את ההוראות הבאות:
-
מגדירים את משתנה הסביבה
CLOUDSDK_AUTH_LOGIN_CONFIG_FILEלנתיב של קובץ התצורה להתחברות. -
מריצים את הפקודה הבאה:
gcloud auth login
- ה-CLI של gcloud מפנה למשתנה הסביבה כדי למצוא את קובץ התצורה של הכניסה, ואז מתחיל את תהליך האימות. פועלים בהתאם להליך שבדפדפן כדי לאמת את ה-CLI של gcloud ולאשר לו גישה למשאבים בשמכם עבור פקודות עתידיות.
כדי להפסיק להשתמש בקובץ התצורה שמשמש לכניסה לפקודות
gcloud auth login, מוחקים את משתנה הסביבהCLOUDSDK_AUTH_LOGIN_CONFIG_FILE.ההגדרות האישיות של ה-CLI של gcloud
כדי להשתמש בקובץ התצורה שמשמש לכניסה עם מאפיין תצורה של ה-CLI של gcloud:
-
מגדירים את המאפיין
auth/login_config_fileשל ההגדרות האישיות הפעילות של ה-CLI של gcloud לנתיב של קובץ התצורה לכניסה באמצעות הפקודה הבאה:gcloud config set auth/login_config_file LOGIN_CONFIG_PATH
-
מריצים את הפקודה הבאה:
gcloud auth login
- ה-CLI של gcloud מפנה למאפיין ההגדרות כדי למצוא את קובץ ההגדרות של הכניסה, ואז מתחיל את תהליך האימות. פועלים בהתאם להליך שבדפדפן כדי לאמת את ה-CLI של gcloud ולאשר לו גישה למשאבים בשמכם עבור פקודות עתידיות.
כדי להפסיק להשתמש בקובץ התצורה שמשמש לכניסה לפקודות
gcloud auth login, מבטלים את הגדרת המאפיין באמצעות הפקודה הבאה:gcloud config unset auth/login_config_file
gcloud auth login
כדי להשתמש ישירות בקובץ התצורה לכניסה באמצעות הפקודה
gcloud auth login, פועלים לפי ההוראות הבאות:-
אם השתמשתם בדגל
--activateכשייצרתם את קובץ התצורה לכניסה, מריצים את הפקודה הבאה:gcloud auth login
-
אם לא השתמשתם בדגל
--activateכשייצרתם את קובץ התצורה לכניסה, מריצים את הפקודה הבאה:Linux ו-macOS
gcloud auth login \ --login-config=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud auth login ` --login-config=LOGIN_CONFIG_PATH
מחליפים את LOGIN_CONFIG_PATH בנתיב של קובץ התצורה להתחברות.
הפקודה gcloud auth login שומרת את פרטי הכניסה לגישה בספריית הבית. המשתמש המאומת הופך למשתמש הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אלא אם משנים את ברירת המחדל, ה-CLI של gcloud משתמש בפרטי הכניסה המאוחסנים האלה כדי לגשת אל Google Cloud.
-
מגדירים את משתנה הסביבה
שימוש ב-CLI של gcloud עם עומסי עבודה
עבור עומסי עבודה אוטומטיים, בדרך כלל מבצעים אימות באמצעות אחת מהאפשרויות הבאות:
זהות מאוחדת של Workload Identity, באמצעות איחוד שירותי אימות הזהות של עומסי עבודה
חשבון שירות, באמצעות התחזות
זהויות מאוחדות של עומסי עבודה
אפשר להשתמש ב-CLI של gcloud עם זהות מאוחדת של עומס עבודה. אפשר לעשות את זה באמצעות איחוד שירותי אימות הזהות של עומסי עבודה.
עומס עבודה יכול לגשת למשאבים ישירות בתור חשבון ראשי שמוגדר על ידי מאגר זהויות של עומסי עבודה, או להתחזות לחשבון שירות שמצורף למאגר זהויות של עומסי עבודה. Google Cloud
מומלץ להשתמש בשיטת הגישה הישירה כדי להימנע מחשבונות שירות עם הרשאות עודפות, ולתעד ביומן את הגישה למשאבים באמצעות המזהה של חשבון המשתמש המאוחד. כדאי להשתמש בהתחזות לחשבון שירות רק אם ממשקי ה-API שלGoogle Cloud לא תומכים באיחוד שירותי אימות הזהות של עומסי עבודה.
ההוראות הבאות מניחות שכבר הגדרתם מאגר וספק של איחוד שירותי אימות הזהות של עומסי עבודה כדי לעבוד עם ספק הזהויות שלכם.
מבצעים את ההנחיות שרלוונטיות לספק הזהות הנתמך ויוצרים קובץ תצורה של פרטי כניסה עבור איחוד שירותי אימות הזהות של עומסי עבודה.
מגדירים את הנתיב לקובץ התצורה של פרטי הכניסה במשתנה סביבה, כמאפיין בהגדרות האישיות הפעילות של ה-CLI של gcloud או באמצעות הפקודה
gcloud auth login:משתנה הסביבה
מגדירים את משתנה הסביבה
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDEלנתיב של קובץ התצורה של פרטי הכניסה. בכל פעם שמריצים פקודה, ה-CLI של gcloud מפנה לקובץ ומקבל פרטי כניסה מה-IdP. פרטי הכניסה האלה מוחלפים באסימון גישה ל Google Cloud.כדי להפסיק להשתמש בקובץ התצורה של פרטי הכניסה, מוחקים את משתנה הסביבה
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.ההגדרות האישיות של ה-CLI של gcloud
מגדירים את המאפיין
auth/credential_file_overrideשל ההגדרות האישיות הפעילות של ה-CLI של gcloud לנתיב של קובץ ההגדרות של פרטי הכניסה באמצעות הפקודה הבאה:gcloud config set auth/credential_file_override CONFIGURATION_PATHמחליפים את
CONFIGURATION_PATHבנתיב לקובץ התצורה של פרטי הכניסה.כדי להפסיק להשתמש בקובץ התצורה של פרטי הכניסה כברירת מחדל בפקודות
gcloud, מבטלים את הגדרת המאפיין באמצעות הפקודה הבאה:gcloud config unset auth/credential_file_overridegcloud auth login
מריצים את הפקודה הבאה באמצעות הדגל
--cred-file:Linux ו-macOS
gcloud auth login \ --cred-file=CONFIGURATION_PATHWindows (PowerShell)
gcloud auth login ` --cred-file=CONFIGURATION_PATHמחליפים את
CONFIGURATION_PATHבנתיב לקובץ התצורה של פרטי הכניסה.הפקודה gcloud auth login שומרת את פרטי הכניסה לגישה בספריית הבית. המשתמש המאומת הופך למשתמש הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אלא אם משנים את ברירת המחדל, ה-CLI של gcloud משתמש בפרטי הכניסה המאוחסנים האלה כדי לגשת אל Google Cloud.
חשבונות שירות
אפשר להשתמש ב-CLI של gcloud עם חשבון שירות בדרכים הבאות:
במשאב שחושף שרת מטא-נתונים של Compute Engine, כמו מכונה וירטואלית של Compute Engine או שירות Cloud Run. ה-CLI של gcloud משתמש כברירת מחדל בחשבון השירות שמצורף למשאב לצורך אימות.
באמצעות חשבון משתמש אחר שמתחזה לחשבון שירות.
באמצעות מפתח של חשבון שירות.
התחזות לחשבון שירות
כדי לקבל גישה למשאבים שבדרך כלל לא זמינה לחשבון המשתמש, מומלץ לנהל את הסלמת ההרשאות באמצעות Privileged Access Manager במקום להשתמש בהתחזות לחשבון שירות.
אם Privileged Access Manager לא מתאים לתרחיש השימוש שלכם, צריך לבצע את השלבים הבאים כדי להשתמש ב-CLI של gcloud עם חשבון שירות:
כדי להתחזות לחשבון שירות, מוודאים ש-Service Account Credentials API מופעל בפרויקט.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםבוחרים חשבון משתמש שבאמצעותו רוצים להתחזות לחשבון שירות.
-
כדי לוודא שלחשבון הראשי יש את ההרשאה הנדרשת כדי להתחזות לחשבון שירות, צריך לבקש מהאדמין לתת לחשבון הראשי את תפקיד ה-IAM יצירת אסימונים בחשבון שירות (
roles/iam.serviceAccountTokenCreator) בחשבון השירות. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.התפקיד המוגדר מראש הזה כולל את ההרשאה
iam.serviceAccounts.getAccessToken, שנדרשת כדי להתחזות לחשבון שירות.יכול להיות שהאדמין יוכל גם להעניק לחשבון המשתמש את ההרשאה הזו באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מבצעים אימות ל-CLI של gcloud באמצעות החשבון הראשי שבחרתם קודם, בין אם זה חשבון משתמש, זהות משתמש מאוחדת, זהות מאוחדת של עומס עבודה או חשבון שירות אחר.
בוחרים חשבון שירות להתחזות אליו. מאתרים חשבון שירות קיים או יוצרים חשבון שירות חדש.
מעתיקים את כתובת האימייל של חשבון השירות.
בוחרים אם להתחזות לחשבון השירות בכל הפקודות, או רק בפקודה אחת:
כל הפקודות
כדי להשתמש בהתחזות לחשבון שירות באמצעות ה-CLI של gcloud בפקודות עתידיות, אפשר להגדיר משתנה סביבה או להגדיר מאפיין בהגדרות הפעילות של ה-CLI של gcloud:
משתנה סביבה: מגדירים את משתנה הסביבה
CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNTלכתובת האימייל בחשבון השירות.כדי להפסיק להשתמש בחשבון השירות, צריך לבטל את ההגדרה של משתנה הסביבה
CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT.הגדרות אישיות של ה-CLI של gcloud: מגדירים את המאפיין
auth/impersonate_service_accountשל ההגדרות האישיות הפעילות של ה-CLI של gcloud באמצעות הפקודה הבאה:gcloud config set auth/impersonate_service_account SERVICE_ACCOUNT_EMAILמחליפים את
SERVICE_ACCOUNT_EMAILבכתובת האימייל של חשבון השירות.כדי להפסיק להשתמש בהתחזות לחשבון שירות כברירת מחדל עבור פקודות
gcloud, מבטלים את ההגדרה של המאפיין באמצעות הפקודה הבאה:gcloud config unset auth/impersonate_service_account
פקודה יחידה
כדי להשתמש בהתחזות לחשבון שירות עם ה-CLI של gcloud עבור פקודה אחת, אפשר להוסיף את הדגל
--impersonate-service-accountלפקודת שירות של ה-CLI של gcloud.לדוגמה, כדי להציג רשימה של מכונות וירטואליות של Compute Engine באמצעות התחזות לחשבון שירות, מריצים את הפקודה הבאה:
Linux ו-macOS
gcloud compute instances list \ --impersonate-service-account=SERVICE_ACCOUNT_EMAILWindows (PowerShell)
gcloud compute instances list ` --impersonate-service-account=SERVICE_ACCOUNT_EMAILמחליפים את
SERVICE_ACCOUNT_EMAILבכתובת האימייל של חשבון השירות.
מפתח לחשבון השירות
מומלץ להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה עבור רוב עומסי העבודה שפועלים מחוץ ל- Google Cloud. משתמשים במפתחות של חשבונות שירות רק אם עומס העבודה פועל בסביבה חיצונית מבודדת שלא תומכת באיחוד שירותי אימות הזהות של עומסי עבודה.
לאיחוד שירותי אימות הזהות של עומסי עבודה יש את היתרונות הבאים:
הגישה למשאבים ניתנת דרך ניהול הזהויות והרשאות הגישה (IAM), ועומסי העבודה נחשבים לחשבונות משתמשים נפרדים. המשמעות היא שלא צריך להעניק לחשבון שירות הרשאות רחבות מדי למספר תרחישי שימוש.
אתם יכולים לבדוק איזו עומס עבודה מבצע איזו משימה. הפעולות לא מוסתרות מאחורי כתובת האימייל בחשבון שירות.
איחוד שירותי אימות הזהות של עומסי עבודה משתמש באסימוני גישה לטווח קצר כדי להפחית את הסיכון של אקספילטרציה. מפתחות של חשבונות שירות לא פוקעים אלא אם מבטלים אותם באופן ידני.
כדי להשתמש בחשבון שירות עם ה-CLI של gcloud בפקודות עתידיות, צריך לבצע את הפעולות הבאות:
יוצרים מפתח לחשבון שירות ושומרים אותו כקובץ במיקום מאובטח בסביבה שלכם.
מגדירים את הנתיב לקובץ המפתח של חשבון השירות במשתנה סביבה, כמאפיין בהגדרות האישיות הפעילות של ה-CLI של gcloud או באמצעות הפקודה
gcloud auth login:משתנה סביבה: מגדירים את משתנה הסביבה
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDEלנתיב של קובץ המפתח של חשבון השירות.כדי להפסיק להשתמש במפתח של חשבון השירות, צריך לבטל את ההגדרה של משתנה הסביבה
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.הגדרת ה-CLI של gcloud: מגדירים את המאפיין
auth/credential_file_overrideשל ההגדרה הפעילה ב-CLI של gcloud לנתיב של מפתח חשבון השירות באמצעות הפקודה הבאה:gcloud config set auth/credential_file_override KEY_PATHמחליפים את
KEY_PATHבנתיב של קובץ המפתח של חשבון השירות.כדי להפסיק להשתמש במפתח של חשבון השירות כברירת מחדל עבור פקודות
gcloud, מבטלים את ההגדרה של המאפיין באמצעות הפקודה הבאה:gcloud config unset auth/credential_file_override
gcloud auth login: מריצים את הפקודה הבאה באמצעות הדגל--cred-file:Linux ו-macOS
gcloud auth login \ --cred-file=KEY_PATHWindows (PowerShell)
gcloud auth login ` --cred-file=KEY_PATHמחליפים את
KEY_PATHבנתיב של קובץ המפתח של חשבון השירות.הפקודה gcloud auth login שומרת את פרטי הכניסה לגישה בספריית הבית. המשתמש המאומת הופך למשתמש הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אלא אם משנים את ברירת המחדל, ה-CLI של gcloud משתמש בפרטי הכניסה המאוחסנים האלה כדי לגשת אל Google Cloud.
שימוש ב-CLI של gcloud עם אסימון גישה
אם כבר ביצעתם אימות ל-CLI של gcloud במכשיר אחר, אתם יכולים לקבל אסימון גישה עבור הגורם הפעיל במכשיר הזה באמצעות הפקודה הבאה:
gcloud auth print-access-token
לאחר מכן תוכלו להשתמש באסימון הגישה הזה במכשיר אחר כדי לגשת למשאבים של Google Cloud. שימוש באסימון גישה מבטל את הצורך בהגדרת ישות פעילה, ומבטל את ההגדרה של כל ישות פעילה שהוגדרה במערך ההגדרות הפעיל של ה-CLI של gcloud.
אסימוני גישה לחשבונות משתמשים תקפים למשך שעה אחת כברירת מחדל.
אפשר להשתמש בטוקן גישה עם ה-CLI של gcloud לפקודות עתידיות, או רק לפקודה אחת.
כל הפקודות
כדי להשתמש באסימון גישה עם ה-CLI של gcloud בפקודות עתידיות, אפשר להגדיר משתנה סביבתי או להגדיר מאפיין בהגדרות האישיות הפעילות של ה-CLI של gcloud:
משתנה סביבה: מגדירים את משתנה הסביבה
CLOUDSDK_AUTH_ACCESS_TOKENלמחרוזת של אסימון הגישה.כדי להפסיק את השימוש בטוקן הגישה, מוחקים את משתנה הסביבה
CLOUDSDK_AUTH_ACCESS_TOKEN.הגדרות אישיות של ה-CLI של gcloud: מאחסנים את אסימון הגישה בקובץ, ואז מגדירים את המאפיין
auth/access_token_fileשל ההגדרות האישיות הפעילות של ה-CLI של gcloud לנתיב של הקובץ באמצעות הפקודה הבאה:gcloud config set auth/access_token_file ACCESS_TOKEN_PATHמחליפים את הערך של
ACCESS_TOKEN_PATHבנתיב של קובץ טוקן הגישה.כדי להפסיק להשתמש באסימון גישה כברירת מחדל עבור פקודות
gcloud, מבטלים את הגדרת המאפיין באמצעות הפקודה הבאה:gcloud config unset auth/access_token_file
פקודה יחידה
כדי להשתמש באסימון גישה עם ה-CLI של gcloud עבור פקודה אחת, אפשר להוסיף את הדגל --access-token-file לפקודת שירות של ה-CLI של gcloud:
מאחסנים את אסימון הגישה בקובץ.
משתמשים בדגל
--access-token-fileעם כל פקודת שירותgcloud.לדוגמה, כדי להציג רשימה של מכונות וירטואליות של Compute Engine באמצעות אסימון גישה, מריצים את הפקודה הבאה:
Linux ו-macOS
gcloud compute instances list \ --access-token-file ACCESS_TOKEN_PATHWindows (PowerShell)
gcloud compute instances list ` --access-token-file ACCESS_TOKEN_PATHמחליפים את
ACCESS_TOKEN_PATHבנתיב לקובץ אסימון הגישה.
עדיפות של פרטי כניסה
יכול להיות שבסביבה אחת נעשה שימוש בכמה שיטות אימות, ולכן ה-CLI של gcloud מעריך את השיטות בסדר מסוים כדי לקבוע באיזה גורם ראשי להשתמש. ה-CLI של gcloud מתחיל עם פרטי הכניסה שסופקו, ואז בודק אם נשלחה בקשה להתחזות לחשבון שירות.
סדר הבדיקה של פרטי הכניסה שסופקו הוא כדלקמן:
משתנה הסביבה
CLOUDSDK_AUTH_ACCESS_TOKEN, שמוגדר למחרוזת של אסימון הגישה.קבצים של טוקני גישה. השיטות שמשמשות להגדרת נתיבי הקבצים של טוקני גישה מוערכות לפי הסדר הבא:
הדגל
--access-token-fileבשורת הפקודה, שמשמש עם כל פקודה ב-CLI של gcloud.משתנה הסביבה
CLOUDSDK_AUTH_ACCESS_TOKEN_FILE.המאפיין
auth/access_token_fileבמערך ההגדרות האישיות הפעיל של ה-CLI של gcloud.
קבצים של פרטי כניסה. השיטות שמשמשות להגדרת נתיבי קובץ פרטי הכניסה מוערכות בסדר הבא:
משתנה הסביבה
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.המאפיין
auth/credential_file_overrideבהגדרות הפעילות של ה-CLI של gcloud.
הגורם הפעיל שמוגדר באמצעות הפקודה
gcloud auth loginאו באמצעות המאפייןcore/account.
העדיפות של התחזות לחשבון שירות
אם נשלחה בקשה להתחזות לחשבון שירות, ה-CLI של gcloud בודק לאיזה חשבון שירות להתחזות אחרי שסופקו פרטי כניסה לחשבון המשתמש שמבצע את ההתחזות. השיטות שמשמשות להגדרת חשבונות שירות להתחזות מוערכות בסדר הבא:
התכונה הניסיונית בשורת הפקודה
--impersonate-service-account.משתנה הסביבה
CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT.חשבון השירות שמוגדר על ידי המאפיין
auth/impersonate_service_accountבהגדרות הפעילות.
הוספת Google Drive להיקף
אפשר להרחיב את היקף הגישה של ה-CLI של gcloud כך שיכלול גישה ל-Google Drive בנוסף ל- Google Cloud. כלומר, אפשר להשתמש ב Google Cloud אסימוני גישה עם Google Drive.
כדי להרחיב את ההיקף כך שיכלול את Google Drive, מוסיפים את הדגל --enable-gdrive-access כשמאשרים ל-CLI של gcloud לפעול בשמכם:
Linux ו-macOS
gcloud auth login \
--enable-gdrive-access
Windows (PowerShell)
gcloud auth login `
--enable-gdrive-access
אחרי כן, תוכלו לבצע קריאות ל-Google Drive APIs באמצעות ה-CLI של gcloud כדי לספק טוקן גישה. לדוגמה, כדי להציג רשימה של כל הקבצים ב-Google Drive, תוכלו לשלוח את הבקשה הבאה:
Linux ו-macOS
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://www.googleapis.com/drive/v3/files"
Windows (PowerShell)
Invoke-WebRequest `
-Method GET `
-Headers @{ "Authorization" = "Bearer $(gcloud auth print-access-token)" } `
-ContentType "application/json; charset=utf-8" `
-UseBasicParsing `
-Uri "https://www.googleapis.com/drive/v3/files" | Select-Object -Expand Content
אחר כך, אפשר להשתמש במזהה קובץ מהתשובה של הפקודה הקודמת כדי לחלץ טקסט ממסמך ב-Google Docs:
Linux ו-macOS
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=text/plain"
Windows (PowerShell)
Invoke-WebRequest `
-Method GET `
-Headers @{ "Authorization" = "Bearer $(gcloud auth print-access-token)" } `
-ContentType "application/json; charset=utf-8" `
-UseBasicParsing `
-Uri "https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=text/plain" | Select-Object -Expand Content
תרחיש נפוץ לשימוש בגישה ל-Google Drive הוא שימוש ב-BigQuery עם נתונים שמאוחסנים ב-Google Sheets.
מידע נוסף על Google Drive API זמין בסקירה הכללית על Google Drive API.
הוספת ה-CLI של gcloud ככלי עזר של מסמך אימות ל-Docker
כדי לשלוף ממאגרי מאגרי תמונות של קונטיינרים ב-Artifact Registry, אפשר להוסיף את ה-CLI של gcloud ככלי עזר של מסמך אימות להגדרת Docker.
כדי לעשות זאת, מריצים את הפקודה gcloud auth configure-docker:
gcloud auth configure-docker REGION-docker.pkg.dev
ניהול של גורמים ראשיים ופרטי כניסה
אפשר להשתמש בפקודה gcloud auth login כדי לאמת כמה גורמים ראשיים באותה סביבה, ולאשר ל-CLI של gcloud לגשת למשאבים בשמם. עם זאת, רק מנהל אחד יכול להיות פעיל בכל רגע. בקטעים הבאים מוסבר איך לנהל את הגורמים המורשים בהגדרות האישיות של ה-CLI של gcloud, כולל הצגת רשימה שלהם, מעבר ביניהם וביטול פרטי הכניסה שלהם.
הצגת רשימה של ישויות
כדי להציג רשימה של חשבונות משתמשים שפרטי הגישה שלהם מאוחסנים במערכת המקומית (כלומר, שבוצע להם אימות באמצעות gcloud auth login), מריצים את הפקודה gcloud auth list:
gcloud auth list
ה-CLI של gcloud מציג רשימה של הגורמים המורשים ומראה איזה מהם פעיל.
Credentialed Accounts
ACTIVE ACCOUNT
alex@altostrat.com
* bola@altostrat.com
principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/cruz@cymbalgroup.com
החלפות של הגורם הפעיל לא נכללות ברשימה הזו. למשל, משתני הסביבה הבאים:
CLOUDSDK_AUTH_ACCESS_TOKENCLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDECLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT
כדי לבדוק אם משתני הסביבה האלה מוגדרים, מריצים את הפקודה הבאה עבור מערכת ההפעלה שלכם:
Linux ו-macOS
echo "$ENVIRONMENT_VARIABLE"
Windows (PowerShell)
echo $env:ENVIRONMENT_VARIABLE
מחליפים את ENVIRONMENT_VARIABLE במשתנה הסביבה שרוצים לבדוק.
החלפות של העיקרון הפעיל כוללות גם את מאפייני ההגדרה הבאים:
auth/access_token_fileauth/credential_file_overrideauth/impersonate_service_account
כדי לבדוק אם מאפייני ההגדרה האלה מוגדרים, מריצים את הפקודה הבאה:
gcloud config list
החלפת הגורמים הפעילים
כדי לעבור אל גורם פעיל שפרטי הכניסה שלו מאוחסנים (כלומר, הוא השלים בעבר את תהליך gcloud auth login), מריצים את הפקודה gcloud config set:
gcloud config set account PRINCIPAL_IDENTIFIER
מחליפים את PRINCIPAL_IDENTIFIER במזהה המלא של החשבון הראשי.
אפשר גם להחליף את החשבונות בדרכים הבאות:
יוצרים הגדרה נפרדת שמציינת גורם פעיל אחר, ואז מפעילים את ההגדרה הזו.
משתמשים בדגל
--accountבשורת הפקודה כדי לציין ישות (principal) לפקודה אחת.משתמשים בהחלפה כמו דגל בשורת הפקודה, משתנה סביבה או מאפיין הגדרה.
הגדרת משך הסשן
אדמינים יכולים לקבוע כמה זמן יכולים משתמשים שונים לגשת ל-CLI של gcloud בלי שיידרשו לבצע אימות מחדש. לדוגמה, אפשר לאלץ משתמשים בעלי הרשאות מורחבות לאמת מחדש לעתים קרובות יותר מאשר משתמשים רגילים.
למידע נוסף, קראו את המאמר בנושא הגדרת משך ההפעלה לשירותי Google Cloud .
ביטול פרטי הכניסה של חשבון משתמש
אתם יכולים לבטל את פרטי הכניסה של גורמים מאומתים ב-gcloud auth login כדי שה-CLI של gcloud לא יוכל לפעול בשמם.
ביטול ההרשאות מבטל את פרטי הכניסה בשרתי ההרשאות של Google, ומסיר את הגורם המורשה ממערך ההגדרות הפעיל של ה-CLI של gcloud.
כדי לבטל פרטי כניסה, מריצים את gcloud auth revoke:
gcloud auth revoke PRINCIPAL_IDENTIFIER
מחליפים את PRINCIPAL_IDENTIFIER במזהה המלא של החשבון הראשי.
כדי לבטל את הגישה ל-CLI של gcloud בכל המכשירים שמשויכים לחשבון Google, צריך לעבור אל אפליקציות ושירותים של צד שלישי בהגדרות של חשבון Google ולמחוק את כל החיבורים אל Google Cloud SDK.
ניהול פרטי הכניסה המאוחסנים
ה-CLI של gcloud מאחסן את קובצי פרטי הכניסה שבהם הוא משתמש בספריית ההגדרות של ה-CLI של gcloud. כדי למצוא את הקבצים של פרטי הכניסה, מריצים את gcloud info:
gcloud info
ה-CLI של gcloud מדפיס מידע על ההתקנה. הקבצים של פרטי הכניסה מאוחסנים בספריית ההגדרות האישיות של המשתמש שמוגדרת בפלט:
User Config Directory: [/home/USERNAME/.config/gcloud]
ב-Linux וב-macOS, ספריית ההגדרות של ה-CLI של gcloud היא בדרך כלל /home/USERNAME/.config/gcloud. ב-Windows, זה
%APPDATA%\gcloud.
המאמרים הבאים
למידע נוסף על התאמה אישית של ה-CLI של gcloud, קראו את המאמר בנושא מאפייני ה-CLI של gcloud.
למידע נוסף על ניהול קבוצות של מאפייני CLI של gcloud שקיבלו שם ייחודי, קראו את המאמר בנושא ההגדרות האישיות של ה-CLI של gcloud.
כדי לאמת עומסי עבודה מבוססי-קוד שמשתמשים בספריות לקוח של Cloud או בספריות לקוח של Google API, אפשר לעיין במאמר איך פועל Application Default Credentials (ADC).