Mengintegrasikan Logging dengan Google SecOps
Dokumen ini menjelaskan cara mengintegrasikan Cloud Logging dengan Google Security Operations.
Kasus penggunaan
Integrasi Logging menggunakan kemampuan Google SecOps untuk mendukung kasus penggunaan berikut:
Pengambilan log forensik: Jalankan kueri lanjutan untuk menemukan peristiwa keamanan tertentu di seluruh lingkungan Google Cloud Anda selama investigasi.
Perburuan ancaman otomatis: Gunakan playbook untuk membuat kueri log secara berkala untuk indikator gangguan (IoC) yang diketahui atau pola yang mencurigakan.
Sebelum memulai
Sebelum mengonfigurasi integrasi Logging di Google SecOps, selesaikan langkah-langkah prasyarat berikut:
Buat akun layanan dan berikan peran yang diperlukan.
Pilih dan konfigurasi salah satu metode autentikasi berikut:
Opsi 1: Workload Identity (direkomendasikan): Metode ini menggunakan token akses sementara berjangka pendek melalui peniruan akun layanan, sehingga Anda tidak perlu menyimpan secret.
Opsi 2: Kunci JSON akun layanan: Metode ini mengandalkan file kunci rahasia statis yang berlaku lama. Gunakan metode ini hanya jika autentikasi Workload Identity tidak tersedia di lingkungan Anda.
Membuat akun layanan
Untuk membuat akun layanan bagi integrasi, selesaikan langkah-langkah berikut:
Di konsol Google Cloud , buka IAM & Admin > Service Accounts.
Klik addBuat akun layanan.
Berikan nama (misalnya, "Integrasi Pencatatan Aktivitas SecOps") dan deskripsi, lalu klik Buat dan lanjutkan.
Pada langkah Grant this service account access to project, tambahkan peran Logs Viewer (
roles/logging.viewer).Klik Done. Alamat email akun layanan ini digunakan selama konfigurasi.
Mengonfigurasi kredensial Workload Identity
Pilih metode ini atau metode kunci JSON untuk mengautentikasi integrasi. Menggunakan Workload Identity adalah pendekatan yang direkomendasikan karena menggunakan
token akses sementara berumur pendek menggunakan peniruan akun layanan.
Mengidentifikasi identitas instance yang unik
Memberikan izin pada instance Google SecOps Anda untuk meniru identitas akun layanan Anda adalah langkah terakhir untuk mengamankan akses.
Di Google SecOps, buka Content Hub > Integrasi Respons.
Cari dan pilih integrasi Cloud Logging, lalu masukkan email akun layanan Anda di Workload Identity Email.
Masukkan project ID yang valid di Quota Project ID.
Klik Simpan > Uji. Pengujian diperkirakan akan gagal.
Klik close_small di sebelah kanan Test dan telusuri pesan error untuk menemukan email identitas yang diawali dengan
gke-init-python@...atausoar-python@....Salin alamat email unik ini.
Memberi otorisasi identitas instance di Google Cloud
Mengizinkan identitas unik yang diambil memungkinkan peniruan akun layanan, sehingga platform dapat bertindak atas nama Anda tanpa kunci statis.
Di konsol Google Cloud , buka IAM & Admin > Service Accounts.
Pilih akun layanan target, lalu buka Izin > Beri Akses.
Tempelkan alamat email unik ke kolom New principals dan tetapkan peran Service Account Token Creator (
roles/iam.serviceAccountTokenCreator).
Memberikan akses project kuota
Melakukan autentikasi dengan Workload Identity memerlukan Quota Project ID untuk melacak penggunaan dan penagihan API.
Di konsol Google Cloud , buka IAM & Admin > IAM, lalu pilih project yang digunakan untuk ID Project Kuota.
Temukan akun layanan Anda, lalu klik Edit principal.
Klik Add another role, lalu pilih Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer).Klik Simpan.
Mengonfigurasi kunci JSON
File kunci rahasia statis yang dapat digunakan untuk jangka waktu lama memerlukan pengelolaan manual. Metode ini hanya boleh digunakan jika kredensial Workload Identity tidak tersedia.
Di konsol Google Cloud , buka IAM & Admin > Service Accounts, lalu pilih akun layanan Anda.
Buka tab Keys, lalu klik Add key > Create new key.
Pilih JSON sebagai jenis kunci dan klik Create.
Salin seluruh konten file yang didownload dan tempelkan ke
User's Service Accountselama konfigurasi.
Parameter integrasi
Integrasi Logging memerlukan parameter berikut:
| Parameter | Deskripsi |
|---|---|
API Root |
Opsional. URL dasar untuk Cloud Logging API (misalnya,
|
User's Service Account |
Opsional. Konten lengkap file JSON kunci akun layanan. Gunakan parameter ini hanya jika Anda melakukan autentikasi menggunakan kunci JSON. |
Workload Identity Email |
Opsional. Alamat email klien akun layanan Anda. Gunakan parameter ini hanya jika Anda melakukan autentikasi menggunakan kredensial Workload Identity. |
Project ID |
Opsional. Project ID yang akan digunakan dalam integrasi. Jika tidak ada nilai yang diberikan, integrasi akan mengambil ID dari kredensial akun layanan. |
Quota Project ID |
Opsional. Project ID yang digunakan untuk penggunaan dan penagihan API. Parameter ini wajib ada saat melakukan autentikasi menggunakan kredensial Workload Identity. |
Organization ID |
Opsional. ID organisasi yang digunakan untuk menentukan cakupan kueri. |
Verify SSL |
Opsional. Jika dipilih, integrasi akan memvalidasi sertifikat SSL saat terhubung ke server Logging. Diaktifkan secara default. |
Untuk mengetahui petunjuk tentang cara mengonfigurasi integrasi di Google SecOps, lihat Mengonfigurasi integrasi.
Anda dapat melakukan perubahan di tahap selanjutnya, jika diperlukan. Setelah mengonfigurasi instance integrasi, Anda dapat menggunakannya dalam playbook. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi dan mendukung beberapa instance, lihat Mendukung beberapa instance.
Tindakan
Untuk mengetahui informasi selengkapnya tentang tindakan, lihat Merespons tindakan tertunda dari Ruang Kerja Anda dan Melakukan tindakan manual.
Jalankan Kueri
Gunakan tindakan Execute Query untuk menjalankan kueri kustom di Logging.
Tindakan ini tidak dijalankan pada entity Google SecOps.
Input tindakan
Tindakan Execute Query memerlukan parameter berikut:
| Parameter | Deskripsi |
|---|---|
Project ID |
Opsional Project ID yang akan digunakan dalam integrasi. Jika Anda tidak menetapkan nilai untuk parameter ini, integrasi akan mengambil project ID dari akun layanan Google Cloud Anda. |
Organization ID |
Opsional ID organisasi yang akan digunakan dalam integrasi. Jika Anda tidak menetapkan nilai untuk parameter ini, integrasi akan mengambil project ID dari akun layanan Google Cloud Anda. |
Query |
Wajib Kueri untuk menemukan log. |
Time Frame |
Opsional Periode untuk mengambil hasil. Jika Anda
memilih Kemungkinan nilainya adalah sebagai berikut:
Last Hour. |
Start Time |
Opsional Waktu mulai untuk mengambil hasil. Parameter ini wajib diisi jika Anda memilih opsi Untuk mengonfigurasi parameter ini, gunakan format ISO 8601. |
End Time |
Opsional Waktu berakhir untuk mengambil hasil. Jika Anda tidak menetapkan nilai untuk parameter ini dan memilih opsi
Untuk mengonfigurasi parameter ini, gunakan format ISO 8601. |
Max Results To Return |
Opsional Jumlah hasil maksimum yang akan ditampilkan. Nilai defaultnya adalah 50. |
Output tindakan
Tindakan Execute Query memberikan output berikut:
| Jenis output tindakan | Ketersediaan |
|---|---|
| Lampiran repositori kasus | Tidak tersedia |
| Link repositori kasus | Tidak tersedia |
| Tabel repositori kasus | Tidak tersedia |
| Tabel pengayaan | Tidak tersedia |
| Hasil JSON | Tersedia |
| Pesan output | Tersedia |
| Hasil skrip | Tersedia |
Hasil JSON
Contoh berikut menjelaskan output hasil JSON yang diterima saat menggunakan tindakan Execute Query:
[{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"principalEmail": "system:clouddns"
},
"authorizationInfo": [
{
"granted": true,
"permission": "io.k8s.coordination.v1.leases.update",
"resource": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock"
}
],
"methodName": "io.k8s.coordination.v1.leases.update",
"requestMetadata": {
"callerIp": "192.0.2.6",
"callerSuppliedUserAgent": "clouddns-leader-election"
},
"resourceName": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock",
"serviceName": "k8s.io",
"status": {
"code": 0
}
},
"insertId": "ID",
"resource": {
"type": "k8s_cluster",
"labels": {
"cluster_name": "CLUSTER_NAME",
"project_id": "PROJECT_ID",
"location": "us-central1"
}
},
"timestamp": "2024-09-18T09:46:38.647428Z",
"labels": {
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"system:clouddns\" of ClusterRole \"system:clouddns-role\" to User \"system:clouddns\"",
"authorization.k8s.io/decision": "allow"
},
"logName": "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity",
"operation": {
"id": "ID",
"producer": "k8s.io",
"first": true,
"last": true
},
"receiveTimestamp": "2024-09-18T09:46:39.063264993Z"
}]
Pesan output
Tindakan Execute Query memberikan pesan output berikut:
| Pesan output | Deskripsi pesan |
|---|---|
|
Tindakan berhasil. |
Error executing action "Execute Query". Reason:
ERROR_REASON |
Tindakan gagal. Periksa koneksi ke server, parameter input, atau kredensial. |
Hasil skrip
Tabel berikut menjelaskan nilai untuk output hasil skrip saat menggunakan tindakan Jalankan Kueri:
| Nama hasil skrip | Nilai |
|---|---|
is_success |
True atau False |
Ping
Gunakan tindakan Ping untuk menguji konektivitas ke Logging.
Tindakan ini tidak dijalankan pada entity Google SecOps.
Input tindakan
Tidak ada.
Output tindakan
Tindakan Ping memberikan output berikut:
| Jenis output tindakan | Ketersediaan |
|---|---|
| Lampiran repositori kasus | Tidak tersedia |
| Link repositori kasus | Tidak tersedia |
| Tabel repositori kasus | Tidak tersedia |
| Tabel pengayaan | Tidak tersedia |
| Hasil JSON | Tidak tersedia |
| Pesan output | Tersedia |
| Hasil skrip | Tersedia |
Pesan output
Tindakan Ping memberikan pesan output berikut:
| Pesan output | Deskripsi pesan |
|---|---|
Successfully connected to the Cloud Logging server with
the provided connection parameters! |
Tindakan berhasil. |
Failed to connect to the Cloud Logging server! Error is
ERROR_REASON |
Tindakan gagal. Periksa koneksi ke server, parameter input, atau kredensial. |
Hasil skrip
Tabel berikut menjelaskan nilai untuk output hasil skrip saat menggunakan tindakan Ping:
| Nama hasil skrip | Nilai |
|---|---|
is_success |
True atau False |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.