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

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

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

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

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

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

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

רכיב* תפקיד נדרש להתקנה בסיסית? תיאור
apigee-cassandra אדמין של אובייקטים באחסון
roles/storage.objectAdmin
מאפשר גיבוי של Cassandra ל-Cloud Storage, כמו שמתואר במאמר גיבוי ושחזור.
apigee-logger Logs Writer
roles/logging.logWriter
מאפשר איסוף נתוני רישום ביומן, כפי שמתואר בקטע רישום ביומן. נדרש רק להתקנות של אשכולות שאינם GKE.
apigee-mart ‫Apigee Connect Agent
roles/apigeeconnect.Agent
מאפשר אימות של שירות MART. תפקיד הסוכן של Apigee Connect מאפשר לו לתקשר בצורה מאובטחת עם תהליך Apigee Connect, כפי שמתואר במאמר שימוש ב-Apigee Connect.
apigee-metrics בעל הרשאת כתיבה של מדדי מעקב
roles/monitoring.metricWriter
מאפשר איסוף נתונים של מדדים, כפי שמתואר במאמר סקירה כללית על איסוף מדדים.
apigee-runtime לא נדרש תפקיד מאפשר לסביבת זמן הריצה של Apigee Hybrid להתחבר לשירותי Google ולשירותים בהתאמה אישית ב-Google Cloud, כמו אימות של Google,‏ Google Cloud Trace ו-Jaeger.
apigee-synchronizer ‫Apigee Synchronizer Manager
roles/apigee.synchronizerManager
מאפשרת למסנכרן להוריד חבילות של שרתי proxy ונתוני תצורת סביבה. היא גם מאפשרת את הפעולה של תכונת המעקב.
apigee-udca Apigee Analytics Agent
roles/apigee.analyticsAgent
מאפשר העברה של נתוני מעקב, ניתוח וסטטוס פריסה למישור הניהול.
apigee-watcher הסוכן של Apigee Runtime
roles/apigee.runtimeAgent
‫Apigee Watcher מושך מהמסנכרן שינויים שקשורים למארחים וירטואליים של ארגון, ומבצע את השינויים הנדרשים כדי להגדיר את istio ingress.
* השם הזה משמש כשם הקובץ של המפתח של חשבון השירות שהורדתם.

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

רכיב* תפקיד נדרש להתקנה בסיסית? תיאור
apigee-non-prod ‫Apigee Analytics Agent, ‏ Apigee Connect Agent, Apigee Organization Admin, ‏ Apigee Runtime Agent, Apigee Synchronizer Manager, ‏ Cloud Trace Agent, ‏ Logs Writer, Monitoring Metric Writer, ‏ Storage Object Admin או כל ה-SA הנדרשים שצוינו למעלה חשבון שירות יחיד לסביבות הדגמה או בדיקה. אפשר לעיין במאמר בנושא התקנה, חלק 2, שלב 5: יצירת חשבונות שירות.

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

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

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

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

שימוש בכלי create-service-account

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

לדוגמה, הפקודה הבאה תיצור את כל חשבונות השירות הנפרדים לסביבת ייצור, תקצה לכל חשבון שירות את תפקידי ה-IAM המתאימים ותוריד את קובץ המפתח הפרטי של כל חשבון לספרייה ./service-accounts:

./tools/create-service-account --env prod

הפקודה הבאה יוצרת חשבון שירות יחיד בשם apigee-non-prod עם כל התפקידים ב-IAM לכל הרכיבים ההיברידיים. היא מתאימה לסביבות הדגמה ובדיקה, אבל לא לסביבות ייצור:

./tools/create-service-account --env non-prod

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

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

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

כדי ליצור חשבון שירות באמצעות מסוף Google Cloud וליצור מפתח לחשבון השירות, מבצעים את הפעולות הבאות:

  1. יוצרים חשבון שירות:

    1. נכנסים לדף Service Accounts במסוף Cloud.

      כניסה לדף Service Accounts

    2. בוחרים את הפרויקט הרצוי.
    3. לוחצים על Create Service Account (יצירת חשבון שירות).
    4. כותבים שם בשדה Service account name. השדה Service account ID ימולא במסוף Cloud בהתאם לשם הזה.

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

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

    5. אופציונלי: בשדה Service account description, מזינים תיאור של חשבון השירות. התיאורים עוזרים לזכור למה משמש חשבון שירות מסוים.
    6. לוחצים על Create and continue.
    7. לוחצים על השדה Select a role ובוחרים תפקיד, כמו שמתואר במאמר חשבונות שירות ותפקידים שמשמשים רכיבים היברידיים. אם התפקידים של Apigee לא מופיעים ברשימה הנפתחת, צריך לרענן את הדף.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    פתרון בעיות