הצגת פרטי השימוש האחרונים בחשבונות שירות ובמפתחות

בדף הזה מוסבר איך משתמשים ב-Activity Analyzer כדי לראות מתי היה השימוש האחרון בחשבונות השירות ובמפתחות שלכם לקריאה ל-Google API. השימושים האלה נקראים פעילויות אימות.

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

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

פעילויות אימות עם Google API מחוץ ל- Google Cloud, כמו הענקת הרשאות גישה ברמת הדומיין של הרשאה ל-Google Workspace APIs, לא מתועדות בכלי לניתוח פעילות או בתובנות לגבי חשבונות שירות. כדי לעקוב אחרי פעילויות האימות האלה, משתמשים במדדי השימוש בחשבונות שירות של Cloud Monitoring.

לפני שמשביתים או מוחקים חשבון שירות, כדאי להשוות את התוצאות של Activity Analyzer עם מדדי השימוש בחשבון השירות ב-Cloud Monitoring. הגישה הזו מונעת את ההסרה של חשבונות שירות שנמצאים בשימוש עם Google APIs מחוץ ל- Google Cloud.

לפני שמתחילים

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

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    להפעלת ה-API

.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להצגת רשימת פעולות האימות האחרונות של חשבונות השירות והמפתחות של חשבונות השירות, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Activity Analysis Viewer (roles/policyanalyzer.activityAnalysisViewer) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

ההרשאות הנדרשות

כדי לראות את פעילויות האימות האחרונות של חשבונות השירות והמפתחות של חשבונות השירות, צריך את ההרשאות הבאות:

  • policyanalyzer.serviceAccountKeyLastAuthenticationActivities.query
  • policyanalyzer.serviceAccountLastAuthenticationActivities.query

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

הצגת פרטי השימוש האחרונים בכל חשבונות השירות או המפתחות

כדי להציג את התאריכים של פעילויות האימות האחרונות של כל חשבונות השירות או המפתחות של חשבונות השירות, משתמשים ב-CLI של Google Cloud או ב-API בארכיטקטורת REST.

gcloud

כדי להציג את פעילויות האימות האחרונות של חשבונות השירות או המפתחות, משתמשים בפקודה gcloud policy-intelligence query-activity:

gcloud policy-intelligence query-activity --activity-type=ACTIVITY_TYPE \
    --project=PROJECT_ID --limit=LIMIT

מחליפים את הערכים הבאים:

  • ACTIVITY_TYPE: סוג הפעילות שרוצים להציג. כדי לראות את זמני השימוש האחרונים בחשבונות השירות, משתמשים ב-serviceAccountLastAuthentication. כדי לראות את זמני השימוש האחרונים במפתחות של חשבונות השירות, משתמשים ב-serviceAccountKeyLastAuthentication.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
  • LIMIT: אופציונלי. המספר המקסימלי של תוצאות שיוחזרו. ערך ברירת המחדל הוא 1000.

התגובה אמורה להיראות כך, עם רשימה של זמני השימוש האחרונים בחשבונות השירות של הפרויקט:

---
activity:
  lastAuthenticatedTime: '2021-04-27T07:00:00Z'
  serviceAccount:
    fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com
    projectNumber: '123456789012'
    serviceAccountId: '123456789012345678901'
activityType: serviceAccountLastAuthentication
fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com
observationPeriod:
  endTime: '2021-07-06T07:00:00Z'
  startTime: '2020-03-12T07:00:00Z'
---
activity:
  lastAuthenticatedTime: '2021-02-09T08:00:00Z'
  serviceAccount:
    fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-2@my-project.iam.gserviceaccount.com
    projectNumber: '123456789012'
    serviceAccountId: '234567890123456789012'
activityType: serviceAccountLastAuthentication
fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-2@my-project.iam.gserviceaccount.com
observationPeriod:
  endTime: '2021-07-06T07:00:00Z'
  startTime: '2020-09-01T07:00:00Z'

בקטע הסבר על הפעילויות שבדף הזה מוסבר איך להבין את התוצאות האלה.

REST

כדי להציג את פעילויות האימות האחרונות של חשבונות השירות או המפתחות, משתמשים בשיטה activities.query של Policy Analyzer API.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
  • ACTIVITY_TYPE: סוג הפעילות שרוצים להציג. כדי לראות את רשימת השימושים האחרונים בכל חשבונות השירות, משתמשים בפקודה serviceAccountLastAuthentication. כדי לראות את פרטי השימוש האחרונים בכל המפתחות של חשבונות השירות, משתמשים ב-serviceAccountKeyLastAuthentication.
  • PAGE_SIZE: אופציונלי. המספר המקסימלי של תוצאות שיוחזרו מהבקשה הזו. אם לא מציינים ערך, השרת יקבע את מספר התוצאות שיוחזרו. אם מספר הפעילויות גדול יותר מגודל הדף, התשובה תכיל אסימון עימוד שמשמש לאחזור של דף התוצאות הבא.
  • PAGE_TOKEN: אופציונלי. אסימון החלוקה לדפים שהוחזר בתשובה הקודמת בשיטה הזו. אם יש אסימון כזה, רשימת הפעילויות תתחיל מהמקום שבו הסתיימה הבקשה הקודמת.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://policyanalyzer.googleapis.com/v1/projects/PROJECT_ID/locations/global/activityTypes/ACTIVITY_TYPE/activities:query?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

התגובה אמורה להיראות כך, עם רשימה של זמני השימוש האחרונים בחשבונות השירות של הפרויקט:

{
  "activities": [
    {
      "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com",
      "activityType": "serviceAccountLastAuthentication",
      "observationPeriod": {
        "startTime": "2020-04-20T07:00:00Z",
        "endTime": "2021-05-17T07:00:00Z"
      },
      "activity": {
        "lastAuthenticatedTime": "2021-04-28T07:00:00Z",
        "serviceAccount": {
          "projectNumber": "123456789012",
          "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com",
          "serviceAccountId": "123456789012345678901"
        }
      }
    },
    {
      "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-2@my-project.iam.gserviceaccount.com",
      "activityType": "serviceAccountLastAuthentication",
      "observationPeriod": {
        "startTime": "2020-04-20T07:00:00Z",
        "endTime": "2021-05-17T07:00:00Z"
      },
      "activity": {
        "lastAuthenticatedTime": "2021-04-29T07:00:00Z",
        "serviceAccount": {
          "projectNumber": "123456789012",
          "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-2@my-project.iam.gserviceaccount.com",
          "serviceAccountId": "234567890123456789012"
        }
      }
    }
  ],
  "nextPageToken": "AVgRrQV4b5nISN6cGJvTPFJ2v_"
}

בקטע הסבר על הפעילויות שבדף הזה מוסבר איך להבין את התוצאות האלה.

צפייה בשימוש האחרון בחשבונות שירות ספציפיים

כדי לראות מתי בפעם האחרונה נעשה שימוש בחשבונות שירות ספציפיים, אפשר להשתמש במסוףGoogle Cloud , ב-CLI של gcloud או ב-API בארכיטקטורת REST.

המסוף

  1. נכנסים לדף כלי הניתוח למדיניות במסוף Google Cloud .

    לכלי הניתוח למדיניות

  2. בקטע Analyze recent activity (ניתוח פעילות אחרונה), מאתרים את החלונית עם הכותרת When was the last time this service account was used? (מתי היה השימוש האחרון בחשבון השירות הזה?) ולוחצים על Create query (יצירת שאילתה) בחלונית הזו.

  3. בתיבה Select query scope, מזינים את שם הפרויקט שרוצים לנתח את חשבונות השירות שלו.

  4. בקטע Add service accounts (הוספת חשבונות שירות), לוחצים על התיבה Service account (חשבון שירות). מופיעה רשימה של כל חשבונות השירות בפרויקט. הרשימה כוללת גם את הפרויקט שכל חשבון שירות משויך אליו ואת כתובת האימייל של כל חשבון שירות.

  5. בוחרים את חשבון השירות שרוצים לראות את נתוני השימוש האחרונים שלו.

  6. אופציונלי: כדי לראות את פרטי השימוש האחרונים של יותר מחשבון שירות אחד, לוחצים על הוספת חשבון ובוחרים חשבון שירות נוסף. אפשר לנתח עד 10 חשבונות שירות בכל פעם.

  7. בחלונית Query for access activities (שאילתה לגבי פעילויות גישה), לוחצים על Run query (הפעלת שאילתה).

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

gcloud

כדי לראות את פעילות האימות האחרונה בחשבונות שירות ספציפיים, משתמשים בפקודה gcloud policy-intelligence query-activity עם מסנן:

gcloud policy-intelligence query-activity --activity-type=serviceAccountLastAuthentication \
    --project=PROJECT_ID \
    --query-filter='FILTER'

מחליפים את הערכים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
  • FILTER: מסנן שמציין את שמות המשאבים המלאים של חשבונות השירות שרוצים לראות את השימוש בהם. השם המלא של משאב של חשבון שירות כולל את מזהה הפרויקט ואת כתובת האימייל של חשבון השירות.

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

    activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL"

    כדי לסנן לפי כמה חשבונות שירות, משתמשים ב-OR כדי לציין כמה שמות משאבים מלאים קבילים:

    activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_1_EMAIL" OR activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_2_EMAIL"

    אפשר לסנן עד 10 חשבונות שירות.

התשובה מתארת את השימוש האחרון בחשבונות השירות:

---
activity:
  lastAuthenticatedTime: '2021-04-27T07:00:00Z'
  serviceAccount:
    fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com
    projectNumber: '123456789012'
    serviceAccountId: '123456789012345678901'
activityType: serviceAccountLastAuthentication
fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com
observationPeriod:
  endTime: '2021-07-06T07:00:00Z'
  startTime: '2020-03-12T07:00:00Z'

בקטע הסבר על הפעילויות שבדף הזה מוסבר איך להבין את התוצאות האלה.

REST

כדי לראות את פעילות האימות האחרונה של חשבונות שירות ספציפיים, משתמשים בשיטה activities.query של Policy Analyzer API.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
  • FILTER: מסנן שמציין את שמות המשאבים המלאים של חשבונות השירות שרוצים לראות את השימוש בהם.

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

    activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_EMAIL%22

    כדי לסנן לפי כמה חשבונות שירות, משתמשים ב-%20OR%20 כדי לציין כמה שמות משאבים מלאים קבילים:

    activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_1_EMAIL%22%20OR%20activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_2_EMAIL%22

ה-method של ה-HTTP וכתובת ה-URL:

GET https://policyanalyzer.googleapis.com/v1/projects/PROJECT_ID/locations/global/activityTypes/serviceAccountLastAuthentication/activities:query?filter=FILTER

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

התשובה מתארת את השימוש האחרון בחשבונות השירות:

{
  "activities": [
    {
      "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com",
      "activityType": "serviceAccountLastAuthentication",
      "observationPeriod": {
        "startTime": "2020-04-20T07:00:00Z",
        "endTime": "2021-05-17T07:00:00Z"
      },
      "activity": {
        "lastAuthenticatedTime": "2021-04-28T07:00:00Z",
        "serviceAccount": {
          "projectNumber": "123456789012",
          "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com",
          "serviceAccountId": "123456789012345678901"
        }
      }
    }
  ]
}

הצגת פרטי השימוש האחרונים במפתחות ספציפיים של חשבונות שירות

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

אם יש לכם קובץ מפתח JSON, תוכלו למצוא את המזהה הייחודי של מפתח חשבון השירות בשדה private_key_id של הקובץ.

אם אין לכם קובץ מפתח JSON, תוכלו למצוא את המזהה הייחודי של מפתח חשבון השירות באמצעות השלבים הבאים:

המסוף

  1. נכנסים לדף כלי הניתוח למדיניות במסוף Google Cloud .

    לכלי הניתוח למדיניות

  2. בקטע Analyze recent activity (ניתוח פעילות אחרונה), מאתרים את החלונית When was the last time this service account key was used? (מתי היה השימוש האחרון במפתח של חשבון השירות הזה?) ולוחצים על Create query (יצירת שאילתה) בחלונית הזו.

  3. בתיבה Select query scope, מזינים את שם הפרויקט שרוצים לנתח את המפתחות של חשבון השירות שלו.

  4. בקטע Add service account key, לוחצים על התיבה Service account key. מוצגת רשימה של כל המפתחות של חשבונות השירות בפרויקט. הרשימה כוללת גם את הפרויקט ואת חשבון השירות שכל מפתח משויך אליהם.

  5. בוחרים את המקש שרוצים לראות את השימוש האחרון בו.

  6. אופציונלי: כדי לראות את נתוני השימוש האחרונים של יותר ממפתח אחד, לוחצים על הוספת מפתח ובוחרים מפתח נוסף. אפשר לנתח עד 10 מפתחות בכל פעם.

  7. בחלונית Query for access activities (שאילתה לגבי פעילויות גישה), לוחצים על Run query (הפעלת שאילתה).

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

gcloud

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

Google Cloud
  1. יוצרים את רשימת המפתחות של חשבון השירות.

    לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

    • SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות שהמפתח משויך אליו.

    מריצים את הפקודה gcloud iam service-accounts keys list:

    ‫Linux,‏ macOS או Cloud Shell

    gcloud iam service-accounts keys list --iam-account=SERVICE_ACCOUNT_EMAIL

    ‏Windows (PowerShell)

    gcloud iam service-accounts keys list --iam-account=SERVICE_ACCOUNT_EMAIL

    Windows‏ (cmd.exe)

    gcloud iam service-accounts keys list --iam-account=SERVICE_ACCOUNT_EMAIL

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

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

אחרי שמאתרים את המזהים הייחודיים של המפתחות של חשבון השירות, משתמשים במזהים כדי לסנן את התוצאות מ-Activity Analyzer:

כדי לקבל את פעילות האימות האחרונה של מפתחות ספציפיים של חשבון שירות, משתמשים בפקודה gcloud policy-intelligence query-activity עם מסנן.

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
  • FILTER: מסנן שמציין את שמות המשאבים המלאים של מפתחות חשבון השירות שרוצים לראות את השימוש בהם. שם המשאב המלא של מפתח של חשבון שירות כולל את מזהה הפרויקט, את כתובת האימייל של חשבון השירות שמשויך למפתח ואת מזהה המפתח.

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

    activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID"

    כדי לסנן לפי כמה מפתחות של חשבונות שירות, משתמשים ב-OR כדי לציין כמה שמות משאבים מלאים קבילים:

    activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_1_EMAIL/keys/KEY_ID_1" OR activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_2_EMAIL/keys/KEY_ID_2"

    אפשר לסנן עד 10 מפתחות של חשבונות שירות.

מריצים את הפקודה הבאה:

‫Linux,‏ macOS או Cloud Shell

gcloud policy-intelligence query-activity --activity-type=serviceAccountKeyLastAuthentication \
    --project=PROJECT_ID \
    --query-filter='FILTER'

‏Windows (PowerShell)

gcloud policy-intelligence query-activity --activity-type=serviceAccountKeyLastAuthentication `
    --project=PROJECT_ID `
    --query-filter='FILTER'

Windows‏ (cmd.exe)

gcloud policy-intelligence query-activity --activity-type=serviceAccountKeyLastAuthentication ^
    --project=PROJECT_ID ^
    --query-filter='FILTER'

אמורים לקבל תגובה שדומה לזו:

activity:
  lastAuthenticatedTime: '2021-06-11T07:00:00Z'
  serviceAccountKey:
    fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com/keys/1c65fca351d6925e629059743428b7af243a728c
    projectNumber: '232342569935'
    serviceAccountId: '103185812403937829397'
activityType: serviceAccountKeyLastAuthentication
fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com/keys/1c65fca351d6925e629059743428b7af243a728c
observationPeriod:
  endTime: '2021-07-06T07:00:00Z'
  startTime: '2020-09-10T07:00:00Z'

התשובה הזו מתארת את השימוש האחרון במפתחות של חשבון השירות. בקטע הסבר על הפעילויות שבדף הזה מוסבר איך להבין את התוצאות האלה.

REST

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

Google Cloud
  1. יוצרים את רשימת המפתחות של חשבון השירות:

    כדי לראות רשימה עם כל המפתחות של חשבון השירות, משתמשים בשיטה projects.serviceAccounts.keys.list ב-IAM API.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • 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

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    התשובה תכלול תיאור של השימוש האחרון במפתחות של חשבון השירות:

    {
      "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
        }
      ]
    }
    

  2. משתמשים במטא-נתונים שבתשובה כדי לזהות את המפתח שאחריו רוצים לעקוב, ומעתיקים את המזהה הייחודי של המפתח מהחלק האחרון בשדה 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"

אחרי שמאתרים את המזהים הייחודיים של המפתחות של חשבון השירות, משתמשים במזהים כדי לסנן את התוצאות מ-Activity Analyzer:

כדי לקבל את פעילות האימות האחרונה של מפתחות ספציפיים של חשבונות שירות, משתמשים בשיטה activities.query של כלי הניתוח למדיניות API.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
  • FILTER: מסנן שמציין את שמות המשאבים המלאים של מפתחות חשבון השירות שרוצים לראות את השימוש בהם. שם המשאב המלא של מפתח של חשבון שירות כולל את מזהה הפרויקט, את כתובת האימייל של חשבון השירות שמשויך למפתח ואת מזהה המפתח.

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

    activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_EMAIL%2Fkeys%2FKEY_ID%22

    כדי לסנן לפי כמה מפתחות של חשבונות שירות, משתמשים ב-%20OR%20 כדי לציין כמה שמות משאבים מלאים קבילים:

    activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_1_EMAIL%2Fkeys%2FKEY_ID_1%22%20OR%20activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_2_EMAIL%2Fkeys%2FKEY_ID_2%22

    אפשר לסנן עד 10 מפתחות של חשבונות שירות.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://policyanalyzer.googleapis.com/v1/projects/PROJECT_ID/locations/global/activityTypes/serviceAccountKeyLastAuthentication/activities:query?filter=FILTER

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

התשובה תכלול תיאור של השימוש האחרון במפתחות של חשבון השירות:

{
  "activities": [
    {
      "activity": {
        "lastAuthenticatedTime": "2021-06-11T07:00:00Z",
        "serviceAccountKey": {
          "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com/keys/1c65fca351d6925e629059743428b7af243a728c",
          "projectNumber": "123456789012",
          "serviceAccountId": "123456789012345678901"
        }
      },
      "activityType": "serviceAccountKeyLastAuthentication",
      "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1t@my-project.iam.gserviceaccount.com/keys/1c65fca351d6925e629059743428b7af243a728c",
      "observationPeriod": {
        "endTime": "2021-07-06T07:00:00Z",
        "startTime": "2020-04-20T07:00:00Z"
      }
    }
  ]
}

בקטע הסבר על הפעילויות שבדף הזה מוסבר איך להבין את התוצאות האלה.

הסבר על פעילויות

המסוף

בדף תוצאות השאילתה מפורטים פרמטרים של השאילתה ותוצאות השאילתה.

בשאילתה של חשבון שירות, בטבלת התוצאות מופיע כל חשבון שירות מהשאילתה והמועד האחרון שבו הוא עבר אימות:

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

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

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

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

gcloud

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

  • fullResourceName: שם המשאב המלא של חשבון השירות או של מפתח חשבון השירות שהפעילות שלו מדווחת. הפורמט הזה מתואר בקטעים הבאים ובמאמר שמות מלאים של משאבים.
  • activityType: סוג הפעילות שמדווחת. כדי לראות את פעילות האימות האחרונה של חשבון השירות, הערך הוא serviceAccountLastAuthentication. במקרה של פעילות אימות אחרונה של מפתח של חשבון שירות, הערך הוא serviceAccountKeyLastAuthentication.
  • observationPeriod: שעת ההתחלה ושעת הסיום שמציינות את פרק הזמן שבו נצפתה פעילות בחשבון השירות או במפתח. השעה בחותמות הזמן האלה היא תמיד T07:00:00Z.
  • activity: פרטי הפעילות. התוכן של השדה הזה משתנה בהתאם לסוג הפעילות. פרטים נוספים מופיעים בקטעים הבאים.

פרטים על פעילויות בחשבון שירות

השדה activity בפעילויות serviceAccountLastAuthentication מכיל את השדות הבאים:

  • serviceAccount: פרטים על חשבון השירות שהפעילות שלו מדווחת, כולל:

    • fullResourceName: שם המשאב המלא של חשבון השירות, בפורמט //iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL.
    • projectNumber: המזהה המספרי של הפרויקט שבבעלותו חשבון השירות.
    • serviceAccountId: המזהה המספרי של חשבון השירות.
  • lastAuthenticatedTime: חותמת זמן שמייצגת את התאריך שבו התרחש אירוע האימות האחרון. השעה בחותמת הזמן הזו היא תמיד T07:00:00Z, ללא קשר לשעה המדויקת של אירוע האימות.

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

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

פרטים על פעילויות שקשורות למפתחות של חשבונות שירות

השדה activity לפעילויות serviceAccountKeyLastAuthentication מכיל את השדות הבאים:

  • serviceAccountKey: פרטים על מפתח חשבון השירות שהפעילות שלו מדווחת, כולל הפרטים הבאים:

    • fullResourceName: שם המשאב המלא של מפתח חשבון השירות, בפורמט //iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID.
    • projectNumber: המזהה המספרי של הפרויקט שבבעלותו חשבון השירות שאליו משויך המפתח.
    • serviceAccountId: המזהה המספרי של חשבון השירות שהמפתח משויך אליו.
  • lastAuthenticatedTime: חותמת זמן שמייצגת את התאריך שבו התרחש אירוע האימות האחרון. השעה בחותמת הזמן הזו היא תמיד T07:00:00Z, ללא קשר לשעה המדויקת של אירוע האימות.

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

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

REST

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

  • fullResourceName: שם המשאב המלא של חשבון השירות או של מפתח חשבון השירות שהפעילות שלו מדווחת. הפורמט הזה מתואר בקטעים הבאים ובמאמר שמות מלאים של משאבים.
  • activityType: סוג הפעילות שמדווחת. כדי לראות את פעילות האימות האחרונה של חשבון השירות, הערך הוא serviceAccountLastAuthentication. במקרה של פעילות אימות אחרונה של מפתח של חשבון שירות, הערך הוא serviceAccountKeyLastAuthentication.
  • observationPeriod: שעת ההתחלה ושעת הסיום שמציינות את פרק הזמן שבו נצפתה פעילות בחשבון השירות או במפתח. השעה בחותמות הזמן האלה היא תמיד T07:00:00Z.
  • activity: פרטי הפעילות. התוכן של השדה הזה משתנה בהתאם לסוג הפעילות. פרטים נוספים מופיעים בקטעים הבאים.

פרטים על פעילויות בחשבון שירות

השדה activity בפעילויות serviceAccountLastAuthentication מכיל את השדות הבאים:

  • serviceAccount: פרטים על חשבון השירות שהפעילות שלו מדווחת, כולל:

    • fullResourceName: שם המשאב המלא של חשבון השירות, בפורמט //iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL.
    • projectNumber: המזהה המספרי של הפרויקט שבבעלותו חשבון השירות.
    • serviceAccountId: המזהה המספרי של חשבון השירות.
  • lastAuthenticatedTime: חותמת זמן שמייצגת את התאריך שבו התרחש אירוע האימות האחרון. השעה בחותמת הזמן הזו היא תמיד T07:00:00Z, ללא קשר לשעה המדויקת של אירוע האימות.

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

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

פרטים על פעילויות שקשורות למפתחות של חשבונות שירות

השדה activity לפעילויות serviceAccountKeyLastAuthentication מכיל את השדות הבאים:

  • serviceAccountKey: פרטים על מפתח חשבון השירות שהפעילות שלו מדווחת, כולל הפרטים הבאים:

    • fullResourceName: שם המשאב המלא של מפתח חשבון השירות, בפורמט //iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID.
    • projectNumber: המזהה המספרי של הפרויקט שבבעלותו חשבון השירות שאליו משויך המפתח.
    • serviceAccountId: המזהה המספרי של חשבון השירות שהמפתח משויך אליו.
  • lastAuthenticatedTime: חותמת זמן שמייצגת את התאריך שבו התרחש אירוע האימות האחרון. השעה בחותמת הזמן הזו היא תמיד T07:00:00Z, ללא קשר לשעה המדויקת של אירוע האימות.

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

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

המאמרים הבאים