אימות ל-CLI של gcloud

המאמר הזה עוסק רק באימות של Google Cloud CLI לצורך גישה ל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. אפשר לבצע אימות בדרכים הבאות:

  • אישור ואחסון של פרטי כניסה: מתאים לשימוש על ידי בני אדם בסביבת פיתוח מקומית. אפשר להשתמש בפקודה gcloud auth login כדי לתת ל-CLI של gcloud הרשאה לפעול בשם גורם מרכזי. אחרי האימות הראשוני, הפקודה הזו מאחסנת את פרטי הכניסה בספריית ההגדרות של ה-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, עם שמות דומים:

שימוש ב-CLI של gcloud כאדם

בדרך כלל, כדי לבצע משימות אינטראקטיביות, צריך לבצע אימות באחת מהדרכים הבאות:

  • חשבון משתמש

  • זהות משתמש מאוחדת, באמצעות איחוד שירותי אימות הזהות של כוח העבודה

חשבונות משתמשים

האימות באמצעות חשבון משתמש ב-CLI של gcloud תלוי בשאלה אם דפדפן אינטרנט מותקן במכשיר.

במכשיר שלי יש דפדפן אינטרנט

כדי להיכנס באמצעות חשבון משתמש במכשיר עם דפדפן אינטרנט, צריך לבצע את השלבים הבאים:

  1. מריצים את הפקודה הבאה כדי להתחיל את התהליך:

    gcloud auth login
    
  2. פועלים בהתאם להליך ההרשאה שבדפדפן כדי לאמת את ה-CLI של gcloud ולתת לו הרשאה לגשת למשאבים בשמכם עבור פקודות עתידיות.

הפקודה gcloud auth login שומרת את פרטי הגישה בספריית הבית. המשתמש המאומת הופך למשתמש הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אלא אם מבטלים את ההגדרה הזו, ה-CLI של gcloud משתמש בפרטי הכניסה המאוחסנים האלה כדי לגשת אל Google Cloud.

במכשיר שלי אין דפדפן אינטרנט

אם במכשיר שבו אתם צריכים להשתמש ב-CLI של gcloud אין דפדפן אינטרנט, אתם יכולים לבצע אימות באמצעות חשבון המשתמש שלכם במכשיר מהימן אחר. התהליך הזה משתנה בהתאם לתוכנה שמותקנת במכשיר המהימן השני.

אימות באמצעות מכשיר מהימן אחר

בוחרים אילו תוכנות יהיו זמינות במכשיר המהימן השני.

ה-CLI של gcloud ודפדפן אינטרנט

כדי להשלים את תהליך האימות במכשיר אחר עם דפדפן אינטרנט ו-CLI של gcloud מותקן, משתמשים בדגל --no-browser:

  1. מריצים את הפקודה הבאה במכשיר המקורי שבו רוצים להשתמש ב-CLI של gcloud:

    ‫Linux ו-macOS

    gcloud auth login \
        --no-browser
    

    ‏Windows (PowerShell)

    gcloud auth login `
        --no-browser
    
  2. מעתיקים את הפקודה gcloud שמתחילה ב-gcloud auth login --remote-bootstrap=" כדי להשתמש בה במכשיר השני.

  3. עוברים למכשיר מהימן אחר שמותקנים בו דפדפן ו-CLI של gcloud מגרסה 372.0.0 ואילך.

  4. בטרמינל, מריצים את הפקודה שהעתקתם קודם שמתחילה ב-gcloud auth login --remote-bootstrap=", ומשלימים את התהליך שמבוסס על הדפדפן.

  5. בטרמינל, מעתיקים את כתובת ה-URL שמתחילה ב-https://localhost כדי להשתמש בה במכשיר המקורי.

  6. חוזרים למכשיר המקורי.

  7. בטרמינל, בהנחיה, מדביקים את כתובת ה-URL https://localhost שהעתקתם קודם. כדי לסיים את התהליך, מקישים על Enter או על Return במקלדת.

הפקודה gcloud auth login שומרת את פרטי הגישה בספריית הבית. המשתמש המאומת הופך למשתמש הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אלא אם מבטלים את ההגדרה הזו, ה-CLI של gcloud משתמש בפרטי הכניסה המאוחסנים האלה כדי לגשת אל Google Cloud.

דפדפן אינטרנט בלבד

משתמשים בדגל --no-launch-browser כדי להשלים את תהליך האימות באמצעות דפדפן אינטרנט במכשיר אחר:

  1. מריצים את הפקודה הבאה במכשיר המקורי שבו רוצים להשתמש ב-CLI של gcloud:

    ‫Linux ו-macOS

    gcloud auth login \
        --no-launch-browser
    

    ‏Windows (PowerShell)

    gcloud auth login `
        --no-launch-browser
    
  2. מעתיקים את כתובת ה-URL שמתחילה עם https://accounts.google.com/o/oauth2/auth כדי להשתמש בה במכשיר השני.

  3. עוברים למכשיר מהימן אחר שמותקן בו דפדפן אינטרנט.

  4. פותחים דפדפן אינטרנט, עוברים לכתובת ה-URL שהעתקתם קודם ומשלימים את התהליך בדפדפן.

  5. מעתיקים את קוד האימות לשימוש במכשיר המקורי.

  6. חוזרים למכשיר המקורי.

  7. בטרמינל, בהנחיה, מדביקים את קוד האימות שהעתקתם קודם. כדי לסיים את התהליך, מקישים על Enter או על Return במקלדת.

הפקודה gcloud auth login שומרת את פרטי הגישה בספריית הבית. המשתמש המאומת הופך למשתמש הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אלא אם מבטלים את ההגדרה הזו, ה-CLI של gcloud משתמש בפרטי הכניסה המאוחסנים האלה כדי לגשת אל Google Cloud.

זהויות משתמשים מאוחדות

אפשר להשתמש ב-CLI של gcloud עם זהות משתמש מאוחדת שמנוהלת בספק זהויות חיצוני (IdP). אפשר לעשות את זה באמצעות איחוד שירותי אימות הזהות של כוח עבודה.

ההוראות הבאות מניחות שכבר הגדרתם מאגר וספק של איחוד שירותי אימות הזהויות של כוח עבודה כדי לעבוד עם ספק הזהויות שלכם.

כדי להשתמש ב-CLI של gcloud עם זהות משתמש מאוחדת, יוצרים קובץ הגדרות לכניסה ואז נכנסים באמצעות תהליך מבוסס-דפדפן:

  1. מריצים את הפקודה הבאה כדי ליצור קובץ תצורה לכניסה:

    ‫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

    מחליפים את מה שכתוב בשדות הבאים:

    • 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"
    }

  2. מפנים לקובץ התצורה לכניסה באמצעות משתנה סביבה, מאפיין בהגדרות האישיות הפעילות של ה-CLI של gcloud, או משתמשים בו ישירות באמצעות הפקודה gcloud auth login:

    משתנה הסביבה

    כדי להשתמש בקובץ התצורה שמשמש לכניסה באמצעות משתנה סביבה, מבצעים את ההוראות הבאות:

    1. מגדירים את משתנה הסביבה CLOUDSDK_AUTH_LOGIN_CONFIG_FILE לנתיב של קובץ התצורה להתחברות.
    2. מריצים את הפקודה הבאה:

      gcloud auth login
    3. ה-CLI של gcloud מפנה למשתנה הסביבה כדי למצוא את קובץ התצורה של הכניסה, ואז מתחיל את תהליך האימות. פועלים בהתאם להליך שבדפדפן כדי לאמת את ה-CLI של gcloud ולאשר לו גישה למשאבים בשמכם עבור פקודות עתידיות.

    כדי להפסיק להשתמש בקובץ התצורה שמשמש לכניסה לפקודות gcloud auth login, מוחקים את משתנה הסביבה CLOUDSDK_AUTH_LOGIN_CONFIG_FILE.

    ההגדרות האישיות של ה-CLI של gcloud

    כדי להשתמש בקובץ התצורה שמשמש לכניסה עם מאפיין תצורה של ה-CLI של gcloud:

    1. מגדירים את המאפיין auth/login_config_file של ההגדרות האישיות הפעילות של ה-CLI של gcloud לנתיב של קובץ התצורה לכניסה באמצעות הפקודה הבאה:

      gcloud config set auth/login_config_file LOGIN_CONFIG_PATH
    2. מריצים את הפקודה הבאה:

      gcloud auth login
    3. ה-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 לא תומכים באיחוד שירותי אימות הזהות של עומסי עבודה.

ההוראות הבאות מניחות שכבר הגדרתם מאגר וספק של איחוד שירותי אימות הזהות של עומסי עבודה כדי לעבוד עם ספק הזהויות שלכם.

  1. מבצעים את ההנחיות שרלוונטיות לספק הזהות הנתמך ויוצרים קובץ תצורה של פרטי כניסה עבור איחוד שירותי אימות הזהות של עומסי עבודה.

  2. מגדירים את הנתיב לקובץ התצורה של פרטי הכניסה במשתנה סביבה, כמאפיין בהגדרות האישיות הפעילות של ה-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