כאן מוסבר איך משתמשים ב-Cloud Monitoring כדי לראות את מדדי השימוש בחשבונות השירות ובמפתחות של חשבונות השירות, בשביל לעקוב אחרי דפוסי השימוש ולזהות חריגות, באופן אוטומטי או ידני.
חשבונות שירות ומפתחות של חשבונות שירות יופיעו במדדים האלה אם השתמשו בהם כדי לקרוא ל-Google API, כולל ממשקי API שהם לא חלק מ- Google Cloud. המדדים כוללים גם קריאות ל-API שהצליחו וגם כאלו שנכשלו. לדוגמה, אם קריאה ל-API נכשלת כי הגורם ששלח את הקריאה לא מורשה לקרוא ל-API הזה, או כי הבקשה מפנה למשאב שלא קיים, במדדים יופיע חשבון השירות או המפתח ששימשו כדי לקרוא ל-API.
המפתחות של חשבון השירות מופיעים במדדים האלה גם כשהמערכת יוצרת רשימת מפתחות בניסיון לאמת בקשה, אפילו אם היא לא השתמשה במפתח כדי לאמת את הבקשה. מתי זה נפוץ? למשל, כשמשתמשים בכתובות URL חתומות ל-Cloud Storage או כשמאמתים אפליקציות של צד שלישי. לכן, יכול להיות שתראו מדדי שימוש בקשר למפתחות שלא שימשו לאימות.
המדדים הבאים לא מופיעים במדדים של חשבון השירות או של המפתחות:
- מפתחות אימות HMAC של Cloud Storage
- בקשות שאומתו באמצעות מפתחות API שמקושרים לחשבונות שירות
כלי המעקב שומר את המדדים של חשבונות השירות במשך 6 שבועות. אם אתם צריכים גישה לנתונים לזמן ארוך יותר, תוכלו לייצא אותם מדי פעם ל-BigQuery. איך מייצאים מדדי מעקב?
אחרי השימוש בחשבון שירות או במפתח של חשבון שירות, מדדי השימוש יהיו זמינים בדרך כלל תוך כמה דקות.
לפני שמתחילים
-
מפעילים את ממשקי ה-API של IAM ו-Cloud Monitoring.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להצגת השימוש האחרון בחשבונות שירות ובמפתחות, צריך לבקש מהאדמין את התפקיד Monitoring Viewer (roles/monitoring.viewer) ב-IAM לפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הצגת מדדי שימוש לכל חשבונות השירות או המפתחות
כדי לראות את מדדי השימוש של חשבונות שירות או של מפתחות של חשבונות שירות:
המסוף
כדי לראות את המדדים של משאבים שבמעקב באמצעות Metrics Explorer:
-
נכנסים לדף leaderboard Metrics explorer במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.
- בסרגל הכלים של מסוף Google Cloud , בוחרים את Google Cloud הפרויקט. בהגדרות של App Hub, בוחרים את הפרויקט המארח של App Hub או את פרויקט הניהול של התיקייה שמוגדרת לניהול אפליקציות.
- ברכיב Metric, מרחיבים את התפריט Select a metric, כותבים
IAM Service Accountבשורת הסינון ומשתמשים בתפריטי המשנה כדי לבחור סוג ספציפי של משאב ומדד:- בתפריט Active resources בוחרים באפשרות IAM Service Account.
- בתפריט Active metric categories בוחרים באפשרות Service_account.
- בתפריט Active metrics בוחרים מדד של חשבון שירות.
תוכלו לראות את המדדים הבאים לפרק הזמן שבחרתם:
- כדי לקבל את מדדי השימוש של חשבונות שירות, בוחרים באפשרות Service account authentication events.
- כדי לקבל את מדדי השימוש של מפתחות של חשבונות שירות, בוחרים באפשרות Service account key authentication events.
- לוחצים על אישור.
כדי להוסיף מסננים שמסירים סדרות זמן מתוצאות השאילתה, משתמשים ברכיב Filter.
כדי לשלב סדרות עיתיות, משתמשים בתפריטים ברכיב Aggregation. לדוגמה, כדי להציג את ניצול המעבד של המכונות הווירטואליות לפי האזור שלהן, מגדירים את התפריט הראשון ל-Mean ואת התפריט השני ל-zone.
כל סדרות הזמן מוצגות כשהתפריט הראשון של רכיב הצבירה מוגדר לללא צבירה. הגדרות ברירת המחדל של הרכיב צבירה נקבעות לפי סוג המדד שבחרתם.
- כדי לראות מכסות ומדדים אחרים שמדווחים על דגימה אחת ליום:
- בחלונית Display, מגדירים את Widget type לאפשרות Stacked bar chart.
- מגדירים את התקופה לשבוע אחד לפחות.
REST
באמצעות timeSeries.list ב-Cloud Monitoring API תוכלו לגשת למדדי השימוש באופן פרוגרמטי.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
METRIC_TYPE: סוג המדד שרוצים לבדוק. משתמשים באחד מהערכים הבאים:-
למדדי שימוש של חשבונות שירות:
iam.googleapis.com%2Fservice_account%2Fauthn_events_count. -
למדדי שימוש של מפתחות של חשבונות שירות:
iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count.
-
למדדי שימוש של חשבונות שירות:
-
END_TIME: הסוף של פרק הזמן שרוצים לבדוק, באחוזים, בפורמט RFC 3339. לדוגמה:2020-06-12T00%3A00%3A00.00Z. -
START_TIME: ההתחלה של פרק הזמן שרוצים לבדוק, באחוזים, בפורמט RFC 3339. לדוגמה:2020-04-12T00%3A00%3A00.00Z.
שיטת ה-HTTP וכתובת ה-URL:
GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22METRIC_TYPE%22&interval.endTime=END_TIME&interval.startTime=START_TIME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
במאמר קריאת נתוני מדדים של Monitoring תוכלו ללמוד איך קוראים בצורה פרוגרמטית למדדי שימוש.
הצגת מדדי השימוש של חשבון שירות אחד
כדי לראות את מדדי השימוש של חשבון שירות אחד:
המסוף
נכנסים לדף Service Accounts במסוף Google Cloud .
בוחרים את הפרויקט שמכיל את חשבון השירות.
לוחצים על כתובת האימייל של חשבון השירות.
לוחצים על הכרטיסייה Metrics. בתרשים Traffic verification מוצגים מדדי השימוש של חשבון השירות.
אם רוצים לראות את התרשים בדף Metrics explorer, שכולל אפשרויות נוספות לסינון ולצפייה, לוחצים על > View in Metrics Explorer.
REST
השיטה timeSeries.list של Cloud Monitoring API , כשמשתמשים בה עם מסננים ספציפיים, מאפשרת לקבל מדדי שימוש בחשבון שירות יחיד. לאחר מכן תוכלו להשתמש במדדים האלה כדי לקבוע מתי החשבון היה בשימוש לאחרונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
SERVICE_ACCOUNT_ID: המספר הייחודי של חשבון השירות. כדי למצוא את המספר הייחודי של חשבון השירות:-
נכנסים לדף Service Accounts במסוף Google Cloud .
לדף Service Accounts - לוחצים על כתובת האימייל של חשבון השירות. המספר הייחודי של חשבון השירות מופיע בשדה Unique ID.
-
-
END_TIME: הסוף של פרק הזמן שרוצים לבדוק, באחוזים, בפורמט RFC 3339. לדוגמה:2020-06-12T00%3A00%3A00.00Z. -
START_TIME: ההתחלה של פרק הזמן שרוצים לבדוק, באחוזים, בפורמט RFC 3339. לדוגמה:2020-04-12T00%3A00%3A00.00Z.
שיטת ה-HTTP וכתובת ה-URL:
GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22iam.googleapis.com%2Fservice_account%2Fauthn_events_count%22%20AND%20resource.labels.unique_id%3D%22SERVICE_ACCOUNT_ID%22&interval.endTime=END_TIME&interval.startTime=START_TIME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מכילה אובייקט timeSeries עם כל אירועי האימות האחרונים של חשבון השירות.
הצגת מדדי השימוש של מפתח מסוים של חשבון שירות
כדי לראות את מדדי השימוש של מפתח מסוים של חשבון שירות:
המסוף
נכנסים לדף Service Accounts במסוף Google Cloud .
בוחרים את הפרויקט שמכיל את חשבון השירות שמשויך למפתח.
לוחצים על כתובת האימייל של חשבון השירות שמשויך למפתח.
לוחצים על הכרטיסייה Metrics. בתרשים Authentication traffic per key מופיעים מדדי השימוש של כל המפתחות שמשויכים לחשבון השירות.
במקרא של התרשים, לוחצים על המזהה של המפתח של חשבון השירות שרוצים לראות את מדדי השימוש שלו. התרשים יתעדכן כך שיופיעו בו רק מדדים של המפתח הזה.
אם רוצים לראות את התרשים בדף Metrics explorer, שכולל אפשרויות נוספות לסינון ולצפייה, לוחצים על > View in Metrics Explorer.
REST
שלב ראשון: מציאת המזהה של המפתח של חשבון השירות.
יוצרים את רשימת המפתחות של חשבון השירות:
השיטה
projects.serviceAccounts.keys.listמציגה את כל המפתחות של חשבון שירות.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
SA_NAME: השם של חשבון השירות שאת רשימת המפתחות שלו רוצים לראות. -
KEY_TYPES: אופציונלי. רשימה מופרדת בפסיקים של סוגי המפתחות שרוצים לכלול בתשובה. סוג המפתח מציין אם המפתח מנוהל על ידי המשתמש (USER_MANAGED) או על ידי המערכת (SYSTEM_MANAGED). אם תשאירו את השדה ריק, יוחזרו כל המפתחות.
שיטת ה-HTTP וכתובת ה-URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תשובת JSON שדומה לזו:
{ "keys": [ { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c", "validAfterTime": "2020-03-04T17:39:47Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }, { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8", "validAfterTime": "2020-03-31T23:50:09Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }, { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e", "validAfterTime": "2020-05-17T18:58:13Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED", "disabled": true "disable_reason": "SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED" "extended_status": "SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED" "extended_status_message": "exposed at: https://www.github.com/SomePublicRepo" } ] }-
משתמשים במטא-נתונים שבתשובה כדי לזהות את המפתח שאחריו רוצים לעקוב, ומעתיקים את המזהה הייחודי של המפתח מהחלק האחרון בשדה
name.השדה
nameהוא בפורמט הבא:"name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID"
המזהה הייחודי של המפתח הוא כל מה שמופיע אחרי
keys/.לדוגמה, המזהה הייחודי בשם המפתח הבא הוא
0f561cc41650ff521899de2fd653bd3de08e2da4:"name": "projects/my-project/serviceAccounts/my-account@my-project.iam.gserviceaccount.com/keys/0f561cc41650ff521899de2fd653bd3de08e2da4"
עכשיו אפשר להשתמש במזהה כדי לראות את מדדי השימוש של המפתח של חשבון השירות.
השיטה timeSeries.list של Cloud Monitoring API , כשמשתמשים בה עם מסננים ספציפיים, מאפשרת לקבל מדדי שימוש למפתח יחיד של חשבון שירות. עכשיו אפשר להשתמש במדדים האלה כדי לקבוע מתי היה השימוש האחרון במפתח.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
KEY_ID: המזהה הייחודי של המפתח של חשבון השירות. -
END_TIME: הסוף של פרק הזמן שרוצים לבדוק, באחוזים, בפורמט RFC 3339. לדוגמה:2020-06-12T00%3A00%3A00.00Z. -
START_TIME: ההתחלה של פרק הזמן שרוצים לבדוק, באחוזים, בפורמט RFC 3339. לדוגמה:2020-04-12T00%3A00%3A00.00Z.
שיטת ה-HTTP וכתובת ה-URL:
GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count%22%20AND%20metric.labels.key_id%3D%22KEY_ID%22&interval.endTime=END_TIME&interval.startTime=START_TIME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התשובה תכיל אובייקט timeSeries עם כל אירועי האימות האחרונים של המפתח של חשבון השירות.
ייצוא המדדים
אתם יכולים להשתמש ב-Monitoring כדי לייצא את המדדים ל-BigQuery. מתי זה שימושי? למשל, כשרוצים לנתח את השימוש בטווח הארוך, כי הנתונים ב-Monitoring נשמרים רק לפרק זמן מוגבל.
המאמרים הבאים
- איך משתמשים ב-Activity Analyzer כדי לראות רק את אירועי האימות האחרונים של חשבונות השירות והמפתחות.
- איך נעזרים בתובנות על חשבונות השירות כדי לזהות חשבונות שלא היו בשימוש ב-90 הימים האחרונים.
- איך משביתים או מוחקים חשבונות שירות.
- איך מוחקים מפתחות של חשבונות שירות
- סקירת התכונות של Monitoring