אם לחשבון המשתמש שאתם משתמשים בו אין את ההרשאות הדרושות כדי לבצע את המשימה, או אם אתם רוצים להשתמש בחשבון שירות בסביבת פיתוח, תוכלו לעשות את זה באמצעות התחזות לחשבון שירות.
כדי להשתמש בהתחזות לחשבון שירות, מתחילים עם חשבון משתמש מאומת (חשבון המשתמש או חשבון השירות שלכם) ומבקשים פרטי כניסה לטווח קצר לחשבון שירות שיש לו את ההרשאות הנדרשות להשלמת המשימה שלכם. כדי להתחזות לחשבון השירות, לחשבון המשתמש המאומת צריכות להיות ההרשאות הנדרשות.
התחזות לחשבון שירות היא מאובטחת יותר משימוש במפתח של חשבון שירות, כי התחזות לחשבון שירות דורשת זהות מאומתת מראש ופרטי הכניסה שנוצרים באמצעות התחזות הם זמניים. לעומת זאת, אימות באמצעות מפתח של חשבון שירות לא מחייב אימות מראש והמפתח הקבוע מהווה פרטי כניסה בסיכון גבוה אם הוא נחשף.
מידע נוסף על התחזות לחשבון שירות זמין במאמר התחזות לחשבון שירות.
לפני שמתחילים
לפני שמשתמשים בהתחזות לחשבון שירות, צריך להפעיל את ממשקי ה-API הנדרשים ולוודא שיש לכם את התפקידים הנדרשים.
הפעלת ממשקי ה-API
כדי להתחזות לחשבון שירות, צריך להפעיל את Service Account Credentials API בפרויקט.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
התפקידים הנדרשים
כדי לקבל את ההרשאה שנדרשת כדי להתחזות לחשבון שירות, צריך לבקש מהאדמין לתת לכם ב-IAM את התפקיד יצירת אסימונים בחשבון שירות (roles/iam.serviceAccountTokenCreator) בחשבון השירות.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה iam.serviceAccounts.getAccessToken, שנדרשת כדי להתחזות לחשבון שירות.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
חייבים להקצות את התפקידים האלה לחשבון, גם כשאתם עובדים בפרויקט שיצרתם בעצמכם.
מידע נוסף על התפקידים הנדרשים להתחזות זמין במאמר תפקידים לאימות חשבון שירות.
אפשר להשתמש בהתחזות לחשבון שירות בכמה דרכים:
- באמצעות ה-CLI של gcloud
- הגדרת Application Default Credentials לשימוש בספריות לקוח
- יצירה של פרטי כניסה לטווח קצר וניהול שלהם
שימוש ב-CLI של gcloud
באמצעות ה-CLI של gcloud אפשר להתחזות לחשבון שירות בקלות. השיטה הזאת שימושית במקרה שאתם צריכים להשתמש בחשבון שירות כדי לגשת למשאבים או לשירותים של Google Cloud באמצעות ה-CLI של gcloud.
תוכלו להתחזות לחשבון שירות לפקודה ספציפית של ה-CLI של gcloud, או להגדיר את ה-CLI של gcloud כך שישתמש בהתחזות לכל הפקודות באופן אוטומטי.
שימוש בהתחזות לפקודה ספציפית ב-CLI של gcloud
כדי להשתמש בהתחזות לפקודה ספציפית של ה-CLI של gcloud, עליכם להשתמש בדגל --impersonate-service-account. לדוגמה, הפקודה הבאה מציגה ברשימה קטגוריות אחסון ומשתמשת בזהות ובגישה שמקבל חשבון השירות שצוין:
gcloud storage buckets list --impersonate-service-account=SERVICE_ACCT_EMAIL
כשמשתמשים בדגל הזה, ה-CLI של gcloud מבקש פרטי כניסה לטווח קצר לחשבון השירות שצוין, ומשתמש בהם כדי לאמת מול ה-API ולאשר את הגישה. לחשבון המשתמש שאיתו התחברתם ל-CLI של gcloud (בדרך כלל חשבון המשתמש שלכם) צריכה להיות ההרשאה הנדרשת בחשבון השירות.
שימוש בהתחזות באמצעות ה-CLI של gcloud כברירת מחדל
כדי להגדיר את ה-CLI של gcloud כך שישתמש בזהות ובגישה של חשבון השירות כברירת מחדל, צריך להשתמש בפקודת config ב-CLI של gcloud:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
באמצעות מאפיין התצורה הזה, ה-CLI של gcloud מבקש פרטי כניסה לטווח קצר לחשבון השירות שצוין, ומשתמש בהם כדי לאמת מול ה-API ולאשר את הגישה למשאב בכל פקודה. לחשבון המשתמש שמחובר ל-CLI של gcloud צריכה להיות ההרשאה הנדרשת בחשבון השירות.
הגדרת Application Default Credentials לשימוש בספריות לקוח
אפשר להשתמש בהתחזות לחשבון שירות כדי להגדיר קובץ Application Default Credentials (ADC) מקומי. ספריות הלקוח שתומכות בהתחזות יכולות להשתמש בפרטי הכניסה האלה באופן אוטומטי. אפשר ליצור קבצים מקומיים ל-ADC באמצעות התחזות בשפות הבאות:
- C#
- Go
- Java
- Node.js
- Python
כך יוצרים קובץ מקומי ל-ADC באמצעות התחזות לחשבון שירות:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCT_EMAIL
עכשיו אפשר להשתמש בספריות לקוח בשפות הנתמכות באותו אופן שבו משתמשים בהן אחרי שמגדירים קובץ ADC מקומי עם פרטי כניסה של משתמש. ספריות האימות מוצאות את פרטי הכניסה באופן אוטומטי. מידע נוסף זמין במאמר אימות לצורך שימוש בספריות לקוח.
לא כל ספריות האימות תומכות בפרטי כניסה מקובץ ADC מקומי שנוצר באמצעות התחזות לחשבון שירות. מידע נוסף מופיע במאמר שגיאה שמוחזרת לפרטי כניסה מקומיים מהתחזות לחשבון שירות.
יצירה של פרטי כניסה לטווח קצר וניהול שלהם
אם אף אחת מהשיטות הקודמות לא מתאימה לתרחיש לדוגמה שלכם, עליכם ליצור ולנהל אסימונים לטווח קצר. לדוגמה, כדאי להשתמש בשיטה הזו אם אתם צריכים סוג אחר של פרטי כניסה לטווח קצר (כל דבר שאינו אסימון גישה), או אם אתם צריכים להשתמש בהתחזות בסביבת הייצור.
מידע על יצירת אסימונים לטווח קצר זמין במאמר יצירת פרטי כניסה לטווח קצר לחשבון שירות.