כאן מוסבר איך מבצעים אימות באפליקציה כחשבון שירות. למידע כללי על אימות ב-Google Cloud APIs, כולל אסטרטגיות ותרחישי אימות נפוצים, תוכלו לקרוא את הסקירה הכללית בקשר לאימות. למידע נוסף על חשבונות שירות, תוכלו לקרוא את המאמר חשבונות שירות במרכז העזרה של 'ניהול זהויות והרשאות גישה'.
חיפוש אוטומטי של פרטי הכניסה
אם האפליקציה פועלת בסביבת Google Cloud וחיברתם חשבון שירות לאותה סביבה, האפליקציה יכולה לאחזר את פרטי הכניסה לחשבון השירות ולהשתמש בהם כדי להתחבר ל-Google Cloud APIs.
אתם יכולים לחבר חשבונות שירות למשאבים בשירותים רבים ושונים של Google Cloud, כולל Compute Engine, Google Kubernetes Engine, App Engine, Cloud Run ו-Cloud Functions. מומלץ להשתמש באסטרטגיה הזו כי היא נוחה ומאובטחת יותר מאשר העברה ידנית של פרטי הכניסה.
בנוסף, מומלץ לשלוח את הבקשה באמצעות ספריות הלקוח של Google Cloud. ספריות הלקוח של Google Cloud כוללות ספרייה בשם Application Default Credentials (ADC), שמאפשרת לחפש אוטומטית את פרטי הכניסה. החיפוש של פרטי הכניסה לחשבון השירות ב-ADC מתבצע בסדר הבא:
אם משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALS
מוגדר, חיפוש פרטי הכניסה ב-ADC מתבצע באמצעות המַפְתח לחשבון השירות או קובץ התצורה שהמשתנה מצביע אליו.אם משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALS
לא מוגדר, חיפוש פרטי הכניסה ב-ADC מתבצע באמצעות חשבון השירות שמחובר למשאב שמפעיל את הקוד.חשבון השירות הזה יכול להיות חשבון ברירת המחדל שמסופק על ידי Compute Engine, Google Kubernetes Engine, App Engine, Cloud Run או Cloud Functions. הוא גם יכול להיות חשבון שירות שמנוהל על ידי משתמש שאתם יצרתם.
אם המערכת של ADC לא מצליחה להשתמש בפרטי הכניסה האלו, מופיעה הודעת שגיאה.
תוכלו להיעזר בדוגמת הקוד הבאה כדי להבין איך להשתמש בספריית ADC בקוד האפליקציה. כדי להריץ את הדוגמה הזו, צריך להתקין את ספריית הלקוח Cloud Storage.
C#
Go
Java
Node.js
PHP
Python
Ruby
העברה ידנית של פרטי הכניסה
אם האפליקציה פועלת בסביבה שלא חובר אליה אף חשבון שירות, כמו מערכת מקומית בארגון או ספק אחר של שירותי ענן, כדאי להשתמש בשירות המשולב לזיהוי עומסי עבודה.
אם אתם לא יכולים להשתמש בשירות המשולב לזיהוי עומסי עבודה, תצטרכו ליצור חשבון שירות ולפחות מַפְתח אחד לחשבון השירות, כלומר פרטי כניסה המשויכים לחשבון השירות. כך תוכלו להעביר ידנית לאפליקציה את המפתחות לחשבונות השירות.
מומלץ לקרוא את השיטות המומלצות לניהול מפתחות לחשבונות שירות.
יצירת חשבון שירות
אם אין לכם חשבון שירות, תוכלו להיעזר בהוראות הבאות כדי ליצור אחד:
המסוף
יוצרים חשבון שירות:
-
נכנסים לדף Create service account במסוף Google Cloud.
כניסה לדף Create service account - בוחרים את הפרויקט הרצוי.
-
כותבים שם בשדה Service account name. השדה Service account ID במסוף Google Cloud יאוכלס בהתאם לשם הזה.
כותבים תיאור בשדה Service account description. לדוגמה:
Service account for quickstart
. - לוחצים על Create and continue.
-
כדי לתת גישה לפרויקט, נותנים לחשבון השירות את התפקידים הבאים: פרויקט > בעלים.
בוחרים תפקיד מהרשימה Select a role.
כדי להוסיף עוד תפקידים, לוחצים על
Add another role ומוסיפים אותם אחד אחרי השני. - לוחצים על Continue.
-
לוחצים על Done כדי לסיים ליצור את חשבון השירות.
חשוב לא לסגור את חלון הדפדפן, כי תשתמשו בו גם בשלב הבא.
יוצרים מַפְתח לחשבון השירות:
- במסוף Google Cloud, לוחצים על כתובת האימייל של חשבון השירות שנוצר.
- לוחצים על Keys.
- לוחצים על Add key ואז על Create new key.
- לוחצים על Create. למחשב שלכם תתבצע הורדה של קובץ JSON עם המַפְתח.
- לוחצים על Close.
gcloud
מגדירים את האימות:
-
יוצרים את חשבון השירות:
gcloud iam service-accounts create NAME
מחליפים את הערך
NAME
בשם שרוצים לתת לחשבון השירות. -
נותנים לחשבון השירות תפקידים. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM:
roles/owner
:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
SERVICE_ACCOUNT_NAME
: השם של חשבון השירותPROJECT_ID
: מזהה הפרויקט שבו יצרתם את חשבון השירותROLE
: התפקיד שאתם רוצים לתת
-
יוצרים את קובץ המַפְתח:
gcloud iam service-accounts keys create FILE_NAME.json --iam-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
מחליפים את מה שכתוב בשדות הבאים:
FILE_NAME
: שם לקובץ המַפְתחSERVICE_ACCOUNT_NAME
: השם של חשבון השירותPROJECT_ID
: מזהה הפרויקט שבו יצרתם את חשבון השירות
העברת פרטי הכניסה באמצעות משתנה סביבה
מגדירים את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS
כדי לספק את פרטי הכניסה לקוד האפליקציה. המשתנה הזה חל רק על סשן המעטפת הנוכחי. אם רוצים שהמשתנה יחול על סשנים נוספים של המעטפת, מגדירים את המשתנה בקובץ ההפעלה של המעטפת – למשל בקובץ ~/.bashrc
או בקובץ ~/.profile
.
Linux או macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
מחליפים את KEY_PATH
בנתיב של קובץ ה-JSON שמכיל את המַפְתח של חשבון השירות.
למשל:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
Windows
ל-PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
מחליפים את KEY_PATH
בנתיב של קובץ ה-JSON שמכיל את המַפְתח של חשבון השירות.
למשל:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
בשורת הפקודה:
set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH
מחליפים את KEY_PATH
בנתיב של קובץ ה-JSON שמכיל את המַפְתח של חשבון השירות.
אחרי ביצוע הפעולות שלמעלה, תוכלו לחפש אוטומטית את פרטי הכניסה ב-ADC כמו שהסברנו כאן. מומלץ להשתמש ב-ADC כי הוא מצריך פחות קוד ואפשר להעביר את הקוד לסביבות שונות.
העברת פרטי הכניסה באמצעות קוד
אתם יכולים גם להצביע ישירות על הקובץ של חשבון השירות בקוד, כמו בדוגמה הבאה. כדי להריץ את הדוגמה הזו צריך להתקין את ספריית הלקוח Cloud Storage.
C#
Go
Java
Node.js
PHP
Python
Ruby
פתרון בעיות הקשורות לשגיאות API
ברשימת הודעות השגיאה של Cloud APIs מוסבר בהרחבה איך פותרים בעיות הקשורות לבקשות API.
המאמרים הבאים
- שיטות מומלצות לניהול חשבונות שירות ומפתחות לחשבונות שירות
- שיטות מומלצות לאבטחת חשבונות שירות
- אימות ל-Google Cloud API
- אימות כמשתמשי קצה
- שימוש במפתחות API
נסו בעצמכם
אנחנו ממליצים למשתמשים חדשים ב-Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
מתחילים לעבוד בלי לשלם