חשבון שירות הוא סוג מיוחד של חשבון ב-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-guardrails |
צפייה בשימוש בשירותroles/serviceusage.serviceUsageViewer |
מאפשר ל-pod של אמצעי הבקרה בתרשים apigee-operator לבדוק אם ממשקי ה-API הנדרשים מופעלים בפרויקט כדי להתקין את Apigee Hybrid בהצלחה, כפי שמתואר במאמר אבחון בעיות באמצעי בקרה. |
|
apigee-logger |
Logs Writerroles/logging.logWriter |
מאפשר רישום של איסוף נתונים ביומן, כפי שמתואר במאמר בנושא רישום ביומן. נדרש רק להתקנות של אשכולות שאינם GKE. | |
apigee-mart |
Apigee Connect Agentroles/apigeeconnect.Agent |
מאפשר אימות של שירות MART. תפקיד הסוכן של Apigee Connect מאפשר לו לתקשר בצורה מאובטחת עם תהליך Apigee Connect, כפי שמתואר במאמר בנושא שימוש ב-Apigee Connect. | |
apigee-metrics |
Monitoring Metric Writerroles/monitoring.metricWriter |
מאפשר איסוף נתונים של מדדים, כפי שמתואר במאמר סקירה כללית על איסוף מדדים. | |
apigee-mint-task-scheduler |
לא נדרש תפקיד | הזהות שבה התמונה apigee-mint-task-scheduler פועלת, שמאפשרת לה ליצור עמלות חוזרות עבור תוכניות תמחור שמוגדרות בה. הפעלת מונטיזציה ב-Apigee hybrid
|
|
apigee-runtime |
לא נדרש תפקיד | מאפשר לזמן הריצה של Apigee hybrid להתחבר לשירותי Google ולשירותים בהתאמה אישית ב-Google Cloud, כמו Google Authentication, Google Cloud Trace ו-Jaeger. | |
apigee-synchronizer |
Apigee Synchronizer Managerroles/apigee.synchronizerManager |
מאפשרת למסנכרן להוריד חבילות של שרת proxy ונתוני תצורת סביבה. היא גם מאפשרת את הפעולה של תכונת המעקב. | |
apigee-watcher |
Apigee Runtime Agentroles/apigee.runtimeAgent |
Apigee Watcher מושך מהמסנכרן שינויים שקשורים למארחים וירטואליים של ארגון, ומבצע את השינויים הנדרשים כדי להגדיר את istio ingress. | |
| * השם הזה משמש כשם הקובץ של המפתח של חשבון השירות שהורדתם. | |||
לחלופין, בסביבות שאינן סביבות ייצור, בסביבות בדיקה ובסביבות הדגמה, אפשר להשתמש בחשבון שירות יחיד עם כל התפקידים שהוקצו לו. לא מומלץ להשתמש בשיטה הזו בסביבות ייצור.
| רכיב* | תפקיד | נדרש להתקנה בסיסית? | תיאור |
|---|---|---|---|
apigee-non-prod |
Apigee Connect Agent, Apigee Runtime Agent, Apigee Synchronizer Manager, Logs Writer, Monitoring Metric Writer, Service Usage Viewer, Storage Object Admin | או כל ה-SAs הנדרשים שצוינו למעלה | חשבון שירות יחיד לסביבות הדגמה או בדיקה. ראו התקנה, חלק 2, שלב 4: הגדרת חשבונות שירות. |
בנוסף ליצירת חשבונות השירות שמפורטים בטבלה הזו, תשתמשו במפתחות הפרטיים של כל חשבון כדי ליצור אסימוני גישה, וכך תוכלו לגשת אל Apigee APIs. הכלי create-service-account מוריד באופן אוטומטי את קובצי המפתח לספרייה במחשב המקומי כשיוצרים או מעדכנים את חשבונות השירות.
יצירת חשבונות שירות
יש כמה דרכים ליצור חשבונות שירות, כולל:
כל אחד מהם מתואר בקטעים הבאים.
שימוש בכלי create-service-account
הכלי create-service-account זמין אחרי שמורידים ומחלצים את תרשימי Apigee hybrid Helm.
אפשר למצוא את הכלי create-service-account בספרייה הבאה:
APIGEE_HELM_CHARTS_HOME/
└── apigee-operator/
└── etc/
└── tools/
└── create-service-account
create-service-account יוצר חשבונות שירות ספציפיים לרכיבים היברידיים ומקצה לכם את התפקידים הנדרשים. הכלי גם מוריד באופן אוטומטי את המפתחות של חשבון השירות ושומר אותם במחשב המקומי.
לדוגמה, הפקודה הבאה תיצור את כל חשבונות השירות הנפרדים לסביבת ייצור, תקצה את תפקידי ה-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 Google וליצור מפתח לחשבון השירות, מבצעים את הפעולות הבאות:
-
יוצרים חשבון שירות:
-
נכנסים לדף Service Accounts במסוף Google Cloud .
- בוחרים את הפרויקט הרצוי.
- לוחצים על Create Service Account (יצירת חשבון שירות).
-
כותבים שם בשדה Service account name. השדה מזהה חשבון שירות במסוף Google Cloud יאוכלס בהתאם לשם הזה.
מומלץ להשתמש בשם שמשקף את התפקיד של חשבון השירות. אפשר להגדיר את השם של חשבון השירות כך שיהיה זהה לשם של הרכיב שמשתמש בו. לדוגמה, הגדרת השם של חשבון השירות Logs Writer
apigee-logger.מידע נוסף על השמות והתפקידים של חשבונות השירות זמין במאמר חשבונות שירות ותפקידים שמשמשים רכיבים היברידיים.
- אופציונלי: בשדה Service account description, מזינים תיאור לחשבון השירות. התיאורים עוזרים לזכור למה משמש חשבון שירות מסוים.
- לוחצים על Create and continue.
-
לוחצים על השדה Select a role ובוחרים תפקיד, כמו שמתואר במאמר חשבונות שירות ותפקידים שמשמשים רכיבים היברידיים. אם התפקידים של Apigee לא מופיעים ברשימה הנפתחת, צריך לרענן את הדף.
לדוגמה, עבור רכיב הרישום ביומן, בוחרים בתפקיד Logs Writer (כתיבת יומנים).
אם צריך, מזינים טקסט כדי לסנן את רשימת התפקידים לפי שם. לדוגמה, כדי להציג רק את התפקידים של Apigee, מזינים
Apigeeבשדה המסנן.אפשר להוסיף יותר מתפקיד אחד לחשבון שירות, אבל ב-Apigee מומלץ להשתמש רק בתפקיד אחד לכל אחד מחשבונות השירות המומלצים. כדי לשנות את התפקידים של חשבון שירות אחרי שיוצרים אותו, משתמשים בדף IAM במסוף Google Cloud .
- לוחצים על Continue.
ב-Google Cloud מוצגת התצוגה Grant users access to this service account (הענקת גישה לחשבון השירות הזה):

- בקטע Create key (optional) (יצירת מפתח (אופציונלי)), לוחצים על Create Key (יצירת מפתח).
ב-Google Cloud יש אפשרות להוריד מפתח JSON או P12:

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

בהמשך תשתמשו בחלק מהמפתחות של חשבונות השירות כדי להגדיר שירותי זמן ריצה היברידיים. לדוגמה, כשמגדירים את זמן הריצה ההיברידי, מציינים את המיקום של מפתחות חשבון השירות באמצעות המאפיינים SERVICE_NAME
.serviceAccountPath.חשבונות השירות משתמשים במפתחות האלה כדי לקבל אסימוני גישה, ואז משתמשים באסימוני הגישה כדי לשלוח בקשות לממשקי ה-API של Apigee בשמכם. (אבל זה יקרה רק בעתיד. בינתיים, חשוב לזכור איפה שמרתם אותו).
- חוזרים על שלבים 4 עד 11 לכל חשבון שירות שמופיע בקטע חשבונות שירות ותפקידים שמשמשים רכיבים היברידיים (חוץ מהחשבון
apigee-mart– שלא משויך אליו תפקיד – לכן לא מקצים לו תפקיד).בסיום התהליך אמורים להיות לכם חשבונות השירות הבאים (בנוסף לחשבונות ברירת המחדל, אם יש כאלה):
במסוף Google Cloud , חשבונות שירות מסומנים בסמל
.
אחרי שיוצרים חשבון שירות, אם רוצים להוסיף לו תפקיד או להסיר ממנו תפקיד, צריך להשתמש בתצוגה IAM & Admin. אי אפשר לנהל תפקידים בחשבונות שירות בתצוגה חשבונות שירות.
שימוש בממשקי API ליצירת חשבון שירות ב-gcloud
אפשר ליצור ולנהל חשבונות שירות באמצעות Cloud Identity and Access Management API.
מידע נוסף מופיע במאמר יצירה וניהול של חשבונות שירות.
פתרון בעיות
-