Halaman ini menampilkan contoh log audit yang dibuat saat Anda mengelola atau menggunakan akun layanan.
Untuk informasi selengkapnya tentang cara mengaktifkan dan melihat log audit, lihat logging audit IAM.
Log untuk membuat akun layanan
Saat Anda membuat atau mengubah akun layanan, Identity and Access Management (IAM) akan menghasilkan entri log. Contoh berikut menunjukkan entri log untuk membuat akun layanan:
{ "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" } }
Log untuk memberikan peran
Bagian ini menunjukkan entri log yang Anda terima saat memberikan peran yang terkait dengan akun layanan.
Log untuk memberikan peran Service Account User
Entity utama dapat memperoleh izin yang sama seperti akun layanan dengan
meniru identitas akun layanan. Agar akun utama dapat meniru identitas
akun layanan, Anda dapat memberikan peran Service Account User
(roles/iam.serviceAccountUser
) kepada akun utama untuk akun layanan tersebut.
Contoh berikut menunjukkan entri log untuk memberikan peran Service Account User ke akun utama:
{
"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"
}
}
Saat Anda memberikan peran Service Account Token Creator
(roles/iam.serviceAccountTokenCreator
), yang memungkinkan akun utama membuat
kredensial dengan masa berlaku singkat, di saat itu IAM akan menghasilkan entri log yang serupa.
Log untuk memberikan akses ke akun layanan pada suatu resource
Anda dapat
memberikan peran ke akun layanan pada resource tertentu,
agar akun layanan dapat mengakses resource tersebut. Jika layanan yang
memiliki resource juga mendukung logging audit, pemberian peran ke
akun layanan akan menghasilkan entri log audit. Entri log ini mencakup kolom
protoPayload.authenticationInfo.principalEmail
, yang mengidentifikasi akun utama
yang memberikan peran ke akun layanan.
Contoh berikut menunjukkan entri log audit untuk memberikan peran ke
akun layanan untuk suatu project. Dalam contoh ini, julia@example.com
memberikan
peran Organization Viewer (roles/resourcemanager.organizationViewer
) ke
akun layanan. Kolom protoPayload.serviceName
disetel ke
cloudresourcemanager.googleapis.com
, karena Resource Manager adalah
layanan Google Cloud yang mengelola project. Selain itu, kolom resource.type
disetel ke 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"
}
}
Log untuk menyiapkan instance Compute Engine agar dijalankan sebagai akun layanan
Jika pengguna memiliki peran Service Account User (roles/iam.serviceAccountUser
) pada
akun layanan, pengguna tersebut dapat
membuat instance virtual machine (VM) Compute Engine
yang berjalan sebagai akun layanan tersebut. Dalam skenario ini, pengguna membuat instance VM
dengan kredensialnya sendiri, dan permintaan tersebut menentukan akun layanan
untuk digunakan oleh instance VM.
Saat pengguna membuat instance VM, Compute Engine membuat beberapa
entri log. Contoh berikut menunjukkan entri log pertama, yang mengidentifikasi
pengguna yang membuat instance VM dan akun layanan yang digunakan instance tersebut.
Dalam contoh ini, pengguna jackie@example.com
membuat instance yang menggunakan
akun layanan my-service-account@my-project.iam.gserviceaccount.com
. Akibatnya,
kolom protoPayload.authenticationInfo.principalEmail
ditetapkan ke
jackie@example.com
, dan kolom protoPayload.request.serviceAccounts[0].email
ditetapkan ke 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"
}
}
Log untuk mengakses Google Cloud dengan kunci akun layanan
Bagian ini menunjukkan entri log yang Anda terima saat membuat kunci akun layanan, lalu kunci tersebut digunakan untuk mengakses Google Cloud.
Log untuk membuat kunci akun layanan
Jika memiliki peran Service Account Key Admin
(roles/iam.serviceAccountKeyAdmin
) pada akun layanan, Anda dapat membuat
kunci akun layanan, lalu menggunakan kunci tersebut untuk
mengautentikasi permintaan ke Google Cloud.
Contoh berikut menunjukkan entri log untuk membuat kunci akun layanan. Dalam
contoh ini, pengguna sam@example.com
membuat kunci untuk akun layanan
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"
}
}
Log untuk mengautentikasi dengan kunci akun layanan
Setelah membuat kunci akun layanan, Anda dapat menggunakan kunci tersebut untuk meminta token akses OAuth 2.0 untuk akun layanan, lalu menggunakan token akses tersebut untuk mengautentikasi permintaan ke layanan Google Cloud. Secara umum, log audit untuk layanan tersebut menyertakan informasi berikut:
protoPayload.authenticationInfo.principalEmail
: Alamat email akun layanan yang diwakili oleh token akses.protoPayload.authenticationInfo.serviceAccountKeyName
: Kunci akun layanan yang digunakan untuk meminta token akses OAuth 2.0. Kolom ini mengidentifikasi kunci akun layanan berdasarkan nama resource lengkap, yang menggunakan format//iam.googleapis.com/projects/project-id/serviceAccounts/service-account-email/
.keys/key-id
Contoh berikut menunjukkan entri log audit untuk permintaan pembuatan
instance Memorystore for Redis. Permintaan telah diautentikasi dengan
token akses OAuth 2.0 untuk akun layanan. Dalam contoh ini, akun layanan
diberi nama my-service-account@my-project.iam.gserviceaccount.com
, dan ID kunci
akun layanannya adalah 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"
}
}
}
Log untuk meniru identitas akun layanan untuk mengakses Google Cloud
Bagian ini menampilkan entri log yang Anda terima saat membuat kredensial dengan masa aktif singkat untuk akun layanan, lalu menggunakan kredensial tersebut untuk meniru identitas akun layanan dan mengakses Google Cloud.
Log untuk membuat kredensial dengan masa aktif singkat
Jika memiliki peran Service Account Token Creator
(roles/iam.serviceAccountTokenCreator
) untuk akun layanan, Anda dapat
membuat kredensial dengan masa aktif singkat untuk akun
layanan tersebut, lalu gunakan kredensial untuk meniru identitas akun layanan. Misalnya,
Anda dapat membuat kredensial yang memiliki masa aktif singkat untuk memanggil Google Cloud API
dari aplikasi yang tidak berjalan di Google Cloud.
IAM dapat menghasilkan log audit saat akun utama membuat kredensial dengan masa aktif singkat. Untuk menerima log audit ini, Anda harus mengaktifkan log audit IAM untuk aktivitas Akses Data.
Setelah Anda mengaktifkan log audit IAM untuk aktivitas Akses Data, IAM membuat entri log audit setiap kali akun utama membuat kredensial dengan masa aktif singkat. Entri ini mencakup kolom berikut:
protoPayload.authenticationInfo.principalEmail
: Entity utama yang membuat kredensial dengan masa aktif singkat.resource.labels.email_id
: Akun layanan tempat dibuatnya kredensial dengan masa aktif singkat.
Contoh berikut menunjukkan entri log audit untuk permintaan pembuatan
token akses OAuth 2.0 dengan masa aktif singkat. Dalam contoh ini, pengguna
amara@example.com
membuat token akses untuk akun layanan
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"
}
}
Log untuk autentikasi dengan kredensial dengan masa aktif singkat
Setelah membuat kredensial yang memiliki masa aktif singkat untuk akun layanan, Anda dapat menggunakan kredensial tersebut untuk meniru identitas akun layanan saat memanggil Google Cloud API.
Beberapa metode yang Anda panggil mungkin menghasilkan log audit. Secara umum, entri log ini menunjukkan identitas berikut:
- Akun layanan dengan kredensial singkat yang ditiru identitasnya
- Identitas yang membuat kredensial dengan masa aktif singkat
Misalnya, anggaplah pengguna yoon@example.com
membuat kredensial
bermasa aktif singkat untuk akun layanan
my-service-account@my-project.iam.gserviceaccount.com
. Pengguna kemudian membuat
topik Pub/Sub baru, menggunakan kredensial yang memiliki masa aktif singkat untuk meniru identitas
akun layanan. Pub/Sub menghasilkan entri log yang mengidentifikasi
akun layanan, serta pengguna yang meniru identitas
akun layanan:
{
"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"
}
}
Langkah selanjutnya
- Mengonfigurasi dan melihat log audit untuk IAM.
- Dapatkan informasi selengkapnya tentang Cloud Audit Logs.
- Pelajari akun layanan.
- Membuat dan mengelola akun layanan.
- Membuat kredensial dengan masa aktif singkat untuk meniru identitas akun layanan.