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

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

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

יומנים עבור יצירת חשבונות שירות

כשיוצרים חשבון שירות או משנים אותו, 'ניהול זהויות והרשאות גישה (IAM)' יוצר רשומות ביומן. בדוגמה הבאה מוצגת רשומה ביומן עבור יצירת חשבון שירות:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "hao@example.com"
    },
    "methodName": "google.iam.admin.v1.CreateServiceAccount",
    "response": {
      "email": "my-service-account@my-project.iam.gserviceaccount.com",
      "@type": "type.googleapis.com/google.iam.admin.v1.ServiceAccount",
      "display_name": "My service account."
    }
  },
  "resource": {
    "type": "service_account"
  }
}

יומנים עבור הענקת תפקידים

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

יומנים עבור הענקת תפקיד המשתמש בחשבון שירות

חשבון משתמש יכול לקבל את אותן ההרשאות שיש לחשבון שירות על-ידי התחזות לחשבון השירות. כדי לאפשר לחשבון משתמש להתחזות לחשבון שירות, אפשר להעניק את תפקיד המשתמש של חשבון השירות (roles/iam.serviceAccountUser) לחשבון המשתמש עבור חשבון השירות.

בדוגמה הבאה מוצגת רשומת יומן להענקת תפקיד המשתמש בחשבון שירות לחשבון משתמש:

{
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity",
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "methodName": "google.iam.admin.v1.SetIAMPolicy",
    "request": {
      "@type": "type.googleapis.com/google.iam.v1.SetIamPolicyRequest",
      "resource": "projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com"
    },
    "resourceName": "projects/-/serviceAccounts/123456789012345678901",
    "response": {
      "@type": "type.googleapis.com/google.iam.v1.Policy",
      "bindings": [
        {
          "members": [
            "user:srini@example.com"
          ],
          "role": "roles/iam.serviceAccountUser"
        }
      ]
    }
  },
  "resource": {
    "type": "service_account"
  }
}

כשמעניקים את התפקיד 'יצירת אסימונים בחשבון שירות' (roles/iam.serviceAccountTokenCreator), שמאפשר לחשבון משתמש ליצור פרטי כניסה לטווח קצר, IAM יוצר רשומת יומן דומה.

יומנים עבור הענקת גישה לחשבון שירות במשאב

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

בדוגמה הבאה מוצגת רשומה ביומן הביקורת להענקת תפקיד לחשבון שירות עבור פרויקט. בדוגמה זו, julia@example.com העניק את התפקיד 'צפייה בארגון' (roles/resourcemanager.organizationViewer) לחשבון השירות. השדה protoPayload.serviceName מוגדר ל-cloudresourcemanager.googleapis.com, כי 'מנהל המשאבים' הוא שירות Google Cloud שמנהל פרויקטים. כמו כן, השדה resource.type מוגדר ל-project:

{
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity",
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "julia@example.com"
    },
    "methodName": "SetIamPolicy",
    "request": {
      "@type": "type.googleapis.com/google.iam.v1.SetIamPolicyRequest",
      "resource": "my-project"
    },
    "resourceName": "projects/my-project",
    "response": {
      "@type": "type.googleapis.com/google.iam.v1.Policy",
      "bindings": [
        {
          "members": [
            "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com"
          ],
          "role": "roles/resourcemanager.organizationViewer"
        }
      ]
    },
    "serviceName": "cloudresourcemanager.googleapis.com"
  },
  "resource": {
    "type": "project"
  }
}

יומנים להגדרת מכונה של Compute Engine להפעלה כחשבון שירות

אם למשתמש יש תפקיד 'משתמש בחשבון שירות' (roles/iam.serviceAccountUser) בחשבון שירות, המשתמש יכול ליצור מכונה וירטואלית (VM) של Compute Engine שתרוץ כחשבון שירות זה. בתרחיש הזה, המשתמש יוצר את מכונת ה-VM עם פרטי הכניסה שלו, והבקשה מציינת חשבון שירות שבו תשתמש מכונת ה-VM.

כשמשתמש יוצר מכונת VM,‏ Compute Engine יוצרת מספר רשומות ביומן. בדוגמה הבאה מוצגת רשומת היומן הראשונה, שמזהה את המשתמש שיצר את מכונת ה-VM ואת חשבון השירות שהמכונה משתמשת בו. בדוגמה הזו, המשתמש jackie@example.com יצר מכונה שמשתמשת בחשבון השירות my-service-account@my-project.iam.gserviceaccount.com. כתוצאה מכך, השדה protoPayload.authenticationInfo.principalEmail מוגדר ל-jackie@example.com והשדה protoPayload.request.serviceAccounts[0].email מוגדר ל-my-service-account@my-project.iam.gserviceaccount.com:

{
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity",
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "jackie@example.com"
    },
    "methodName": "v1.compute.instances.insert",
    "request": {
      "@type": "type.googleapis.com/compute.instances.insert",
      "serviceAccounts": [
        {
          "email": "my-service-account@my-project.iam.gserviceaccount.com"
        }
      ]
    },
    "resourceName": "projects/my-project/zones/us-central1-a/instances/my-instance"
  },
  "resource": {
    "type": "gce_instance"
  }
}

יומנים עבור גישה ל-Google Cloud באמצעות מפתח לחשבון שירות

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

יומנים עבור יצירת מפתח לחשבון שירות

אם יש לך את התפקיד 'אדמין של המפתח לחשבון שירות' (roles/iam.serviceAccountKeyAdmin) בחשבון שירות, באפשרותך ליצור מפתח לחשבון שירות, ולאחר מכן להשתמש במפתח כדי לאמת בקשות לשירותי Google Cloud..

בדוגמה הבאה מוצגת רשומה ביומן עבור יצירת מפתח לחשבון שירות. בדוגמה זו, המשתמש sam@example.com יצר מפתח עבור חשבון השירות my-service-account@my-project.iam.gserviceaccount.com:

{
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity",
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "sam@example.com",
    },
    "methodName": "google.iam.admin.v1.CreateServiceAccountKey",
    "request": {
      "@type": "type.googleapis.com/google.iam.admin.v1.CreateServiceAccountKeyRequest",
      "name": "projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com"
    },
    "resourceName": "projects/-/serviceAccounts/123456789012345678901"
  },
  "resource": {
    "type": "service_account"
  }
}

יומנים עבור אימות באמצעות מפתח לחשבון שירות

אחרי שיוצרים מפתח לחשבון שירות, אפשר להשתמש במפתח כדי לבקש אסימון גישה מסוג OAuth 2.0 עבור חשבון שירות, ולאחר מכן להשתמש באסימון הגישה כדי לאמת בקשות לשירותי Google Cloud. באופן כללי, יומני הביקורת עבור שירותים אלו כוללים את המידע הבא:

  • protoPayload.authenticationInfo.principalEmail: כתובת האימייל של חשבון השירות שאסימון הגישה מייצג.
  • protoPayload.authenticationInfo.serviceAccountKeyName: המפתח לחשבון השירות שבו נעשה שימוש כדי לבקש את אסימון הגישה מסוג OAuth 2.0. שדה זה מזהה את המפתח לחשבון השירות לפי שם המשאב המלא, המשתמש בפורמט //iam.googleapis.com/projects/project-id/serviceAccounts/service-account-email/keys/key-id.

בדוגמה הבאה מוצגת רשומה ביומן הביקורת עבור בקשה ליצירת Memorystore עבור מכונת Redis. הבקשה אומתה באמצעות אסימון גישה מסוג OAuth 2.0 עבור חשבון שירות. בדוגמה זו, השם של חשבון השירות הוא my-service-account@my-project.iam.gserviceaccount.com ומזהה המפתח של חשבון השירות הוא c71e040fb4b71d798ce4baca14e15ab62115aaef:

{
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity",
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "my-service-account@my-project.iam.gserviceaccount.com",
      "serviceAccountKeyName": "//iam.googleapis.com/projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/c71e040fb4b71d798ce4baca14e15ab62115aaef"
    },
    "methodName": "google.cloud.redis.v1.CloudRedis.CreateInstance",
    "request": {
      "@type": "type.googleapis.com/google.cloud.redis.v1.CreateInstanceRequest"
    }
  }
}

יומנים עבור התחזות לחשבון שירות כדי לגשת ל-Google Cloud

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

יומנים עבור יצירת פרטי כניסה לטווח קצר

אם ברשותך התפקיד 'יוצר האסימונים של חשבון השירות' (roles/iam.serviceAccountTokenCreator) עבור חשבון שירות, באפשרותך ליצור פרטי כניסה לטווח קצר עבור חשבון השירות, ולאחר מכן להשתמש בפרטי הכניסה כדי להתחזות לחשבון השירות. לדוגמה, באפשרותך ליצור פרטי כניסה לטווח קצר כדי להפעיל Google Cloud API מאפליקציה שלא רצה ב-Google Cloud.

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

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

  • protoPayload.authenticationInfo.principalEmail: חשבון המשתמש שיצר את פרטי הכניסה לטווח הקצר.
  • resource.labels.email_id: חשבון השירות שעבורו נוצרו פרטי כניסה לטווח קצר.

בדוגמה הבאה מוצגת רשומה ביומן הביקורת עבור בקשה ליצירת אסימון גישה מסוג OAuth 2.0 לטווח קצר. בדוגמה זו, המשתמש amara@example.com יצר אסימון גישה עבור חשבון השירות my-service-account@my-project.iam.gserviceaccount.com:

{
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access",
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "amara@example.com"
    },
    "methodName": "GenerateAccessToken",
    "request": {
      "@type": "type.googleapis.com/google.iam.credentials.v1.GenerateAccessTokenRequest",
      "name": "projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com"
    },
    "serviceName": "iamcredentials.googleapis.com"
  },
  "resource": {
    "labels": {
      "email_id": "my-service-account@my-project.iam.gserviceaccount.com",
      "project_id": "my-project",
      "unique_id": "123456789012345678901"
    },
    "type": "service_account"
  }
}

יומנים לאימות באמצעות פרטי כניסה לטווח קצר

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

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

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

לדוגמה, נניח שהמשתמש yoon@example.com יוצר פרטי כניסה לטווח קצר עבור חשבון השירות my-service-account@my-project.iam.gserviceaccount.com. לאחר מכן המשתמש יוצר נושא Pub/Sub חדש, באמצעות פרטי הכניסה לטווח הקצר כדי להתחזות לחשבון השירות. Pub/Sub יוצרת רשומה ביומן שמזהה את חשבון השירות, וכן את המשתמש שמתחזה לחשבון השירות:

{
  "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity",
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "my-service-account@my-project.iam.gserviceaccount.com",
      "serviceAccountDelegationInfo": [
        {
          "firstPartyPrincipal": {
            "principalEmail": "yoon@example.com"
          }
        }
      ]
    },
    "methodName": "google.pubsub.v1.Publisher.CreateTopic",
    "request": {
      "@type": "type.googleapis.com/google.pubsub.v1.Topic",
      "name": "projects/my-project/topics/my-topic"
    },
    "resourceName": "projects/my-project/topics/my-topic"
  },
  "resource": {
    "type": "pubsub_topic"
  }
}

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