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

חשבון שירות הוא סוג מיוחד של חשבון ב-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 בעל הרשאת כתיבה של יומנים
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 Authentication,‏ 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 Agent
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 או כל ה-SAs הנדרשים שצוינו למעלה חשבון שירות יחיד לסביבות הדגמה או בדיקה. אפשר לעיין במאמר בנושא התקנה, חלק 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. לוחצים על Done כדי לסיים ליצור את חשבון השירות.

      חשוב לא לסגור את החלון של הדפדפן, כי תשתמשו בו גם בשלב הבא.

  2. מורידים מפתח JSON לחשבון השירות שיצרתם:

    1. במסוף Cloud, לוחצים על כתובת האימייל של חשבון השירות שנוצר.
    2. לוחצים על Keys.
    3. לוחצים על Add key ואז על Create new key.
    4. לוחצים על יצירה. למחשב שלכם תתבצע הורדה של קובץ JSON עם המפתח.

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

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

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

    5. לוחצים על Close.

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

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

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

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

פתרון בעיות