מידע על חשבונות שירות

חשבון שירות הוא סוג מיוחד של חשבון ב-Google Cloud שמאפשר לרכיבים ולאפליקציות של מערכת לקיים אינטראקציה אחד עם השני ועם ממשקי API אחרים. מידע נוסף על Google Cloud זמין במאמר מידע על שירותי Google Cloud.

‫Hybrid משתמש בחשבונות שירות של Google Cloud כדי לבצע מגוון משימות, כולל:

  • שליחת נתוני יומן ומדדים
  • שליפת בקשות מעקב
  • חיבור ל-API Gateway לבקשות API אדמיניסטרטיביות
  • ביצוע גיבויים
  • הורדת חבילות של שרתי proxy

אמנם אפשר להשתמש בחשבון שירות אחד לביצוע כל הפעולות האלה, אבל מומלץ ב-Apigee ליצור כמה חשבונות שירות, כשכל אחד מהם מוקצה למשימה ספציפית וכולל קבוצת הרשאות משלו. הגישה הזו משפרת את האבטחה כי היא מחלקת את הגישה למקטעים ומגבילה את ההיקף והרשאות הגישה של כל חשבון שירות. בדומה לחשבונות משתמשים, ההרשאות האלה מוקצות על ידי הקצאת תפקיד אחד או יותר לחשבון השירות.

כדי ש-Apigee hybrid יפעל בצורה תקינה, צריך ליצור כמה חשבונות שירות. לכל חשבון שירות נדרש תפקיד ספציפי או תפקידים ספציפיים שמאפשרים לו לבצע את הפונקציה שלו.

בטבלה הבאה מתוארים חשבונות השירות של הרכיבים ההיברידיים:

רכיב* תפקיד נדרש להתקנה בסיסית? תיאור
apigee-cassandra אדמין של אובייקט אחסון מאפשר גיבוי של Cassandra ב-Cloud Storage, כפי שמתואר במאמר גיבוי ושחזור.
apigee-logger בעל הרשאת כתיבה של יומנים ההרשאה מאפשרת איסוף נתונים לצורך רישום ביומן, כפי שמתואר במאמר בנושא רישום ביומן. נדרש רק להתקנות של אשכולות שאינם GKE.
apigee-mart Apigee Connect Agent מאפשר אימות של שירות MART. התפקיד של Apigee Connect Agent מאפשר לו לתקשר בצורה מאובטחת עם תהליך Apigee Connect, כפי שמתואר במאמר שימוש ב-Apigee Connect.
apigee-metrics בעל הרשאת כתיבה של מדדי מעקב מאפשר איסוף נתוני מדדים, כפי שמתואר במאמר סקירה כללית על איסוף מדדים.
apigee-org-admin אדמין של ארגון Apigee מאפשרת לשלוח קריאה אל getSyncAuthorization API ואל setSyncAuthorization API. אי אפשר ליצור את חשבון השירות הזה באמצעות הכלי create-service-account.
apigee-synchronizer Apigee Synchronizer Manager מאפשרת למסנכרן להוריד חבילות של שרתי proxy ונתוני תצורת סביבה. היא גם מאפשרת הפעלה של תכונת המעקב.
apigee-udca Apigee Analytics Agent מאפשר העברה של נתוני מעקב, ניתוח וסטטוס פריסה למישור הניהול.
apigee-watcher Apigee Runtime Agent ‫Apigee Watcher שולף מהמסנכרן שינויים שקשורים למארחים וירטואליים בארגון ומבצע את השינויים הנדרשים כדי להגדיר את istio ingress.
* השם הזה משמש כשם הקובץ של המפתח של חשבון השירות שהורדתם.

בנוסף ליצירת חשבונות השירות שמפורטים בטבלה הזו, צריך גם להוריד את המפתחות הפרטיים שלהם. בהמשך משתמשים במפתחות האלה כדי ליצור אסימוני גישה, וכך מקבלים גישה לממשקי ה-API של Apigee.

יצירת חשבונות שירות

יש כמה דרכים ליצור חשבונות שירות, כולל:

כל אחד מהם מתואר בקטעים הבאים.

שימוש בכלי ליצירת חשבון שירות

הכלי create-service-account (זמין אחרי הורדה ופריסה של apigeectl) יוצר חשבונות שירות ספציפיים לרכיבים היברידיים ומקצה את התפקידים הנדרשים. בנוסף, הכלי מוריד באופן אוטומטי את המפתחות של חשבון השירות ושומר אותם במחשב המקומי בספרייה שצוינה.

כדי ליצור חשבונות שירות באמצעות הכלי create-service-account:

  1. מורידים ומרחיבים את apigeectl (אם עדיין לא עשיתם זאת), כמו שמתואר במאמר בנושא הורדה והתקנה של apigeectl.
  2. יוצרים ספרייה לאחסון המפתחות של חשבון השירות. לדוגמה:
    mkdir ./service-accounts
  3. מריצים את הפקודות הבאות:
    ./tools/create-service-account apigee-metrics ./service-accounts
    ./tools/create-service-account apigee-synchronizer ./service-accounts
    ./tools/create-service-account apigee-udca ./service-accounts
    ./tools/create-service-account apigee-mart ./service-accounts
    ./tools/create-service-account apigee-cassandra ./service-accounts
    ./tools/create-service-account apigee-logger ./service-accounts

    הפקודות האלה יוצרות את רוב החשבונות הנדרשים ושומרות את המפתחות שלהם בספרייה ./service-accounts. הפקודות האלה לא יוצרות את חשבון השירות apigee-org-admin.

    אם הפקודות האלה נכשלות, צריך לוודא שציינתם ספרייה קיימת שבה יישמרו קובצי המפתחות.

    מידע נוסף על השימוש ב-create-service-account זמין במאמר בנושא create-service-account.

  4. יוצרים את חשבון השירות apigee-org-admin. כדי לעשות את זה, משתמשים במסוף Google Cloud.

שימוש במסוף Google Cloud

אפשר ליצור חשבונות שירות באמצעות מסוף Google Cloud.

כדי ליצור חשבונות שירות באמצעות מסוף Google Cloud:

  1. פותחים את מסוף Google Cloud ומתחברים באמצעות חשבון המשתמש שיצרתם בשלב 1: יצירת חשבון Google Cloud.
  2. בוחרים את הפרויקט שיצרתם בשלב 2: יצירת פרויקט ב-Google Cloud.
  3. בוחרים באפשרות IAM & admin > Service accounts (ניהול הרשאות גישה וניהול > חשבונות שירות).

    במסוף מוצג התצוגה Service accounts. בתצוגה הזו מופיעה רשימה של חשבונות השירות של הפרויקט. (ברוב המקרים, עדיין לא יופיעו חשבונות ברשימה, אבל יכול להיות שיופיעו חשבונות שירות שמוגדרים כברירת מחדל, בהתאם לאופן שבו יצרתם את הפרויקט).

  4. כדי ליצור חשבון שירות חדש, לוחצים על +יצירת חשבון שירות בחלק העליון של התצוגה.

    מוצג התצוגה פרטי חשבון השירות.

  5. בשדה Service account name, מזינים את השם של חשבון השירות.

    מומלץ להשתמש בשם שמשקף את התפקיד של חשבון השירות. אפשר להגדיר את שם חשבון השירות כך שיהיה זהה לשם הרכיב שמשתמש בו. לדוגמה, מגדירים את השם של חשבון השירות Logs Writer ‏apigee-logger.

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

    כשמזינים שם, Google Cloud יוצר מזהה ייחודי של חשבון שירות, שמובנה כמו כתובת אימייל, כמו בדוגמה הבאה:

    מזהה לדוגמה של apigee-logger@hybrid-42.iam.gserviceaccount.com

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

  6. לוחצים על יצירה.

    מערכת Google Cloud יוצרת חשבון שירות חדש ומציגה את התצוגה Service account permissions, כמו בדוגמה הבאה:

    יצירת חשבון שירות ללא הרשאות שנבחרו

    אפשר להשתמש בתצוגה הזו כדי להקצות תפקיד לחשבון השירות החדש.

  7. לוחצים על הרשימה הנפתחת Select a role.
  8. בוחרים את התפקיד לחשבון השירות, כמו שמתואר במאמר חשבונות שירות ותפקידים שמשמשים רכיבים היברידיים. אם התפקידים של Apigee לא מופיעים ברשימה הנפתחת, רעננו את הדף.

    לדוגמה, עבור רכיב הרישום ביומן, בוחרים בתפקיד Logs Writer (כותב יומנים).

    אם צריך, מזינים טקסט כדי לסנן את רשימת התפקידים לפי שם. לדוגמה, כדי להציג רק את התפקידים של Apigee, מזינים Apigee בשדה המסנן, כמו בדוגמה הבאה:

    רשימת הרשאות של חשבון שירות שתואמת ל-Apigee

    אפשר להוסיף יותר מתפקיד אחד לחשבון שירות, אבל ב-Apigee מומלץ להשתמש רק בתפקיד אחד לכל אחד מחשבונות השירות המומלצים. כדי לשנות את התפקידים של חשבון שירות אחרי שיוצרים אותו, משתמשים בחלונית IAM & admin ב-Google Cloud.

  9. לוחצים על Continue.

    ב-Google Cloud מוצגת התצוגה Grant users access to this service account (הענקת גישה לחשבון השירות הזה):

    שדות לתפקיד 'משתמשים בחשבון שירות' ולתפקיד 'אדמינים של חשבון שירות', לחצן ליצירת מפתח

  10. בקטע Create key (optional) (יצירת מפתח (אופציונלי)), לוחצים על Create Key (יצירת מפתח).

    ב-Google Cloud יש אפשרות להוריד מפתח JSON או P12:

    בחירת סוג המפתח: JSON או P12

  11. בוחרים באפשרות JSON (ברירת המחדל) ולוחצים על Create.

    מערכת Google Cloud שומרת את קובץ המפתח בפורמט JSON במחשב המקומי ומציגה אישור אם הפעולה הצליחה, כמו בדוגמה הבאה:

    דוגמה לקובץ filename.json

    בהמשך תשתמשו בחלק מהמפתחות של חשבונות השירות כדי להגדיר שירותי זמן ריצה היברידיים. לדוגמה, כשמגדירים את זמן הריצה ההיברידי, מציינים את המיקום של מפתחות חשבון השירות באמצעות המאפיינים service_name.serviceAccountPath.

    חשבונות השירות משתמשים במפתחות האלה כדי לקבל אסימוני גישה, ואז משתמשים באסימוני הגישה כדי לשלוח בקשות לממשקי ה-API של Apigee בשמכם. (אבל זה יקרה רק בעתיד, בינתיים צריך לזכור איפה שמרתם את זה).

  12. חוזרים על שלבים 4 עד 11 לכל חשבון שירות שמופיע בקטע חשבונות שירות ותפקידים שמשמשים רכיבים היברידיים (חוץ מהחשבון apigee-mart – שלא משויך אליו תפקיד, ולכן לא מקצים לו תפקיד).

    בסיום התהליך אמורים להיות לכם חשבונות השירות הבאים (בנוסף לחשבונות ברירת המחדל, אם יש כאלה):

    רשימה של חשבונות שירות. תיבת בחירה בעמודה 1, אימייל בעמודה 2, סטטוס בעמודה 3, שם חשבון השירות בעמודה 4

    במסוף Google Cloud, חשבונות שירות מסומנים בסמל מקש בצד ימין, חצי מלבן בצד שמאל, כולם עם קו תחתון.

אחרי שיוצרים חשבון שירות, אם רוצים להוסיף לו תפקיד או להסיר ממנו תפקיד, צריך להשתמש בתצוגה IAM & Admin. אי אפשר לנהל תפקידים בחשבונות שירות בתצוגה חשבונות שירות.

שימוש בממשקי API ליצירת חשבון שירות ב-gcloud

אפשר ליצור ולנהל חשבונות שירות באמצעות Cloud Identity and Access Management API.

מידע נוסף מופיע במאמר בנושא יצירה וניהול של חשבונות שירות.

פתרון בעיות