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:

  1. Buat akun layanan dan berikan peran yang diperlukan.

  2. 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:

  1. Di konsol Google Cloud , buka IAM & Admin > Service Accounts.

    Buka Akun Layanan

  2. Klik addBuat akun layanan.

  3. Berikan nama (misalnya, "Integrasi Pencatatan Aktivitas SecOps") dan deskripsi, lalu klik Buat dan lanjutkan.

  4. Pada langkah Grant this service account access to project, tambahkan peran Logs Viewer (roles/logging.viewer).

  5. 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.

  1. Di Google SecOps, buka Content Hub > Integrasi Respons.

  2. Cari dan pilih integrasi Cloud Logging, lalu masukkan email akun layanan Anda di Workload Identity Email.

  3. Masukkan project ID yang valid di Quota Project ID.

  4. Klik Simpan > Uji. Pengujian diperkirakan akan gagal.

  5. Klik close_small di sebelah kanan Test dan telusuri pesan error untuk menemukan email identitas yang diawali dengan gke-init-python@... atau soar-python@....

  6. 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.

  1. Di konsol Google Cloud , buka IAM & Admin > Service Accounts.

    Buka Akun Layanan

  2. Pilih akun layanan target, lalu buka Izin > Beri Akses.

  3. 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.

  1. Di konsol Google Cloud , buka IAM & Admin > IAM, lalu pilih project yang digunakan untuk ID Project Kuota.

    Buka IAM

  2. Temukan akun layanan Anda, lalu klik Edit principal.

  3. Klik Add another role, lalu pilih Service Usage Consumer (roles/serviceusage.serviceUsageConsumer).

  4. 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.

  1. Di konsol Google Cloud , buka IAM & Admin > Service Accounts, lalu pilih akun layanan Anda.

    Buka Akun Layanan

  2. Buka tab Keys, lalu klik Add key > Create new key.

  3. Pilih JSON sebagai jenis kunci dan klik Create.

  4. Salin seluruh konten file yang didownload dan tempelkan ke User's Service Account selama konfigurasi.

Parameter integrasi

Integrasi Logging memerlukan parameter berikut:

Parameter Deskripsi
API Root

Opsional.

URL dasar untuk Cloud Logging API (misalnya, https://logging.googleapis.com).

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 Custom, konfigurasikan juga parameter Start Time.

Kemungkinan nilainya adalah sebagai berikut:

  • Last Hour
  • Last 6 Hours
  • Last 24 Hours
  • Last Week
  • Last Month
  • Custom
Nilai defaultnya adalah Last Hour.
Start Time Opsional

Waktu mulai untuk mengambil hasil.

Parameter ini wajib diisi jika Anda memilih opsi Custom untuk parameter Time Frame.

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 Custom untuk parameter Time Frame, tindakan akan menggunakan waktu saat ini sebagai waktu berakhir.

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

Successfully executed query "QUERY" in Cloud Logging.

No results were found for the provided query.

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.