Mengintegrasikan BigQuery dengan Google SecOps

Dokumen ini menjelaskan cara mengintegrasikan BigQuery dengan Google Security Operations.

Kasus penggunaan

Integrasi BigQuery menggunakan kemampuan Google SecOps untuk mendukung kasus penggunaan berikut:

  • Pengayaan threat intelligence: Otomatis memperkaya notifikasi keamanan dengan data threat intelligence yang disimpan di BigQuery untuk menilai tingkat keparahan dan kredibilitas potensi ancaman.

  • Analisis perilaku pengguna: Identifikasi aktivitas pengguna yang tidak normal dengan menganalisis log historis yang disimpan di BigQuery untuk mendeteksi ancaman dari dalam dan akun yang disusupi.

  • Analisis data lake keamanan: Gunakan kapabilitas pembuatan kueri BigQuery untuk menganalisis data keamanan dalam volume besar yang digabungkan dari berbagai sumber untuk meningkatkan perburuan ancaman.

  • Analisis ML/AI tingkat lanjut: Buat model kustom untuk pertahanan prediktif dan penilaian risiko otomatis menggunakan data keamanan historis dan BigQuery ML.

  • Retensi data jangka panjang: Arsipkan data insiden yang telah diselesaikan ke BigQuery untuk penyimpanan jangka panjang yang hemat biaya, yang mendukung kepatuhan dan audit forensik.

Sebelum memulai

Sebelum mengonfigurasi integrasi BigQuery di Google SecOps, selesaikan langkah-langkah prasyarat berikut:

  1. Berikan peran Identity and Access Management yang diperlukan ke akun layanan Anda.

  2. Membuat akun layanan:

  3. Pilih dan konfigurasi salah satu metode autentikasi berikut:

    • Opsi 1: Workload Identity (direkomendasikan): Metode ini menggunakan token akses sementara yang berjangka pendek menggunakan peniruan identitas akun layanan.

    • Opsi 2: Kunci JSON akun layanan: Metode ini mengandalkan file kunci rahasia statis yang berlaku lama.

Memberikan peran IAM

Dengan memberikan izin yang diperlukan ke akun layanan, integrasi dapat menjalankan tugas dan mengakses data Anda. Peran standar berikut dikelola oleh Google Cloud dan diperbarui secara otomatis jika persyaratan API berubah. Untuk menetapkan peran ini ke akun layanan Anda, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka IAM.

    Buka IAM

  2. Cari akun layanan Anda dalam daftar principal, lalu klik Edit principal (edit).

  3. Klik Tambahkan peran lain, lalu pilih opsi berikut:

    • Pengguna BigQuery (roles/bigquery.user): Memungkinkan integrasi menjalankan tugas, termasuk kueri, dalam project.

    • BigQuery Data Viewer (roles/bigquery.dataViewer): Memungkinkan integrasi membaca data dan metadata dari set data dan tabel.

    • Service Usage Consumer (roles/serviceusage.serviceUsageConsumer): Parameter ini wajib diisi jika Anda mengonfigurasi Quota Project ID di setelan integrasi.

  4. Klik Simpan.

Membuat akun layanan

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

    Buka Akun Layanan

  2. Klik addBuat akun layanan.

  3. Berikan nama dan deskripsi, lalu klik Buat dan lanjutkan.

  4. Pada langkah Grant this service account access to project, tambahkan peran yang diidentifikasi pada langkah sebelumnya.

  5. Klik Done. Catat Alamat email akun layanan.

Mengonfigurasi kredensial Workload Identity

Workload Identity adalah pendekatan yang direkomendasikan karena menggunakan token akses berumur pendek menggunakan peniruan akun layanan.

Mengidentifikasi identitas instance yang unik

Untuk membuat koneksi, Anda harus memberikan izin kepada instance Google SecOps Anda untuk meniru identitas akun layanan Anda.

  1. Di Google SecOps, buka Content Hub > Response Integrations.

  2. Pilih integrasi BigQuery dan masukkan email akun layanan Anda di kolom Workload Identity Email.

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

  4. Klik tombol close_small di samping Uji dan temukan email identitas yang diawali dengan gke-init-python@... atau soar-python@....

  5. Salin alamat email unik ini.

Memberikan otorisasi identitas instance di Google Cloud

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

Mengonfigurasi kunci JSON

File kunci rahasia statis yang dapat digunakan untuk jangka waktu lama memerlukan rotasi manual. Gunakan metode ini hanya jika autentikasi 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, lalu klik Create. File akan otomatis didownload ke komputer Anda.

Mengonfigurasi parameter individual manual

Jika Anda memilih untuk memasukkan kredensial secara manual, biarkan file kunci JSON yang didownload tetap terbuka di editor teks untuk menyalin setiap nilai yang diperlukan dalam setelan integrasi.

Parameter integrasi

Untuk membuat koneksi antara Google SecOps dan BigQuery, Anda harus mengonfigurasi parameter berikut. Integrasi mendukung tiga jalur autentikasi yang berbeda. Pilih salah satu metode berikut untuk memberikan kredensial.

  • Workload Identity: Menggunakan Workload Identity Email dan Quota Project ID.

  • File JSON akun layanan: Menggunakan Service Account Json File Content untuk memberikan seluruh kunci sekaligus.

  • Parameter individual manual: Menggunakan kolom terpisah yang disalin secara manual dari kunci JSON.

Parameter Deskripsi
API Root

Opsional.

Root API instance BigQuery (misalnya, https://bigquery.googleapis.com).

Workload Identity Email

Opsional.

Alamat email klien akun layanan Anda. Gunakan ini untuk autentikasi Workload Identity.

Service Account Json File Content

Opsional.

Konten lengkap file JSON kunci akun layanan.

Jika Anda mengonfigurasi parameter ini, integrasi akan mengabaikan parameter kredensial individual.

Quota Project ID

Opsional.

Project ID yang digunakan untuk penggunaan dan penagihan API. Parameter ini diperlukan saat menggunakan autentikasi Workload Identity.

Project ID

Opsional.

ID project yang akan ditargetkan di BigQuery.

Verify SSL

Wajib.

Memvalidasi sertifikat SSL untuk koneksi. Diaktifkan secara default.

Parameter kredensial individual

Gunakan hanya parameter berikut jika Anda memasukkan kredensial secara manual, bukan menggunakan konten file JSON lengkap atau Workload Identity.

Parameter Deskripsi
Account Type

Opsional.

Nilai yang ditemukan di kolom type dari kunci JSON Anda (biasanya service_account).

Private Key ID

Opsional.

Nilai yang ditemukan di kolom private_key_id kunci JSON Anda.

Private Key

Opsional.

Nilai yang ditemukan di kolom private_key kunci JSON Anda.

Client Email

Opsional.

Nilai yang ditemukan di kolom client_email kunci JSON Anda.

Client ID

Opsional.

Nilai yang ditemukan di kolom client_id kunci JSON Anda.

Auth URI

Opsional.

Nilai yang ditemukan di kolom auth_uri dari kunci JSON Anda.

Nilai defaultnya adalah https://accounts.google.com/o/oauth2/auth.

Token URI

Opsional.

Nilai yang ditemukan di kolom token_uri kunci JSON Anda.

Nilai defaultnya adalah https://oauth2.googleapis.com/token.

Auth Provider X509 URL

Opsional.

Nilai yang ditemukan di kolom auth_provider_x509_cert_url kunci JSON Anda.

Client X509 URL

Opsional.

Nilai yang ditemukan di kolom client_x509_cert_url kunci JSON Anda.

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.

Ping

Gunakan tindakan Ping untuk menguji konektivitas ke BigQuery.

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 dapat menampilkan pesan output berikut:

Pesan output Deskripsi pesan
Successfully connected to the Google BigQuery server with the provided connection parameters! Tindakan berhasil.
Failed to connect to the Google BigQuery server! Error is ERROR_REASON

Tindakan gagal.

Periksa koneksi ke server, parameter input, atau kredensial.

Hasil skrip

Tabel berikut mencantumkan nilai untuk output hasil skrip saat menggunakan tindakan Ping:

Nama hasil skrip Nilai
is_success True atau False

Menjalankan Kueri Kustom

Gunakan tindakan Jalankan Kueri Kustom untuk menjalankan kueri kustom di BigQuery.

Tindakan ini tidak dijalankan pada entity Google SecOps.

Input tindakan

Tindakan Jalankan Kueri Kustom memerlukan parameter berikut:

Parameter Deskripsi
Query

Wajib.

Kueri SQL yang akan dijalankan.

Max Results To Return

Opsional.

Jumlah hasil yang akan ditampilkan untuk setiap respons.

Nilai defaultnya adalah 50.

Output tindakan

Tindakan Run Custom 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 menunjukkan output hasil JSON yang diterima saat menggunakan tindakan Run Custom Query:

{
    "Airport_Code": "CODE",
    "Airport_Name": "NAME",
    "Time_Label": "2015/05",
    "Time_Month": 5,
    "Time_Month_Name": "May",
    "Time_Year": 2015,
    "Statistics___of_Delays_Carrier": 351,
    "Statistics___of_Delays_Late_Aircraft": 546,
    "Statistics___of_Delays_National_Aviation_System": 292,
    "Statistics___of_Delays_Security": 2,
    "Statistics___of_Delays_Weather": 100,
    "Statistics_Carriers_Names": "Example Air Lines Inc., Example Airlines Co.",
    "Statistics_Carriers_Total": 3,
    "Statistics_Flights_Cancelled": 88,
    "Statistics_Flights_Delayed": 1289,
    "Statistics_Flights_Diverted": 32,
    "Statistics_Flights_On_Time": 6182,
    "Statistics_Flights_Total": 7591,
    "Statistics_Minutes_Delayed_Carrier": 19332,
    "Statistics_Minutes_Delayed_Late_Aircraft": 34376,
    "Statistics_Minutes_Delayed_National_Aviation_System": 12346,
    "Statistics_Minutes_Delayed_Security": 48,
    "Statistics_Minutes_Delayed_Total": 76163,
    "Statistics_Minutes_Delayed_Weather": 100061
}
Pesan output

Tindakan Jalankan Kueri Kustom dapat menampilkan pesan output berikut:

Pesan output Deskripsi pesan
Successfully executed query in Google BigQuery! Tindakan berhasil.
Error executing action "Run Custom Query". Reason: ERROR_REASON

Tindakan gagal.

Periksa koneksi ke server, parameter input, atau kredensial.

Hasil skrip

Tabel berikut mencantumkan nilai untuk output hasil skrip saat menggunakan tindakan Jalankan Kueri Kustom:

Nama hasil skrip Nilai
is_success True atau False

Menjalankan Kueri SQL

Gunakan tindakan Jalankan Kueri SQL untuk menjalankan kueri di BigQuery.

Tindakan ini tidak dijalankan pada entity Google SecOps.

Input tindakan

Tindakan Jalankan Kueri SQL memerlukan parameter berikut:

Parameter Deskripsi
Dataset Name

Wajib.

Nama set data yang akan digunakan saat menjalankan kueri.

Query

Wajib.

Kueri SQL yang akan dijalankan.

Max Results To Return

Opsional.

Jumlah hasil yang akan ditampilkan untuk setiap respons.

Nilai defaultnya adalah 50.

Output tindakan

Tindakan Run SQL 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 Tidak tersedia
Pesan output Tersedia
Hasil skrip Tersedia
Hasil JSON

Contoh berikut menjelaskan output hasil JSON yang diterima saat menggunakan tindakan Jalankan Kueri SQL:

{
    "Airport_Code": "CODE",
    "Airport_Name": "NAME",
    "Time_Label": "2015/05",
    "Time_Month": 5,
    "Time_Month_Name": "May",
    "Time_Year": 2015,
    "Statistics___of_Delays_Carrier": 351,
    "Statistics___of_Delays_Late_Aircraft": 546,
    "Statistics___of_Delays_National_Aviation_System": 292,
    "Statistics___of_Delays_Security": 2,
    "Statistics___of_Delays_Weather": 100,
    "Statistics_Carriers_Names": "Example Airlines Inc.,Example Airlines Co.",
    "Statistics_Carriers_Total": 3,
    "Statistics_Flights_Cancelled": 88,
    "Statistics_Flights_Delayed": 1289,
    "Statistics_Flights_Diverted": 32,
    "Statistics_Flights_On_Time": 6182,
    "Statistics_Flights_Total": 7591,
    "Statistics_Minutes_Delayed_Carrier": 19332,
    "Statistics_Minutes_Delayed_Late_Aircraft": 34376,
    "Statistics_Minutes_Delayed_National_Aviation_System": 12346,
    "Statistics_Minutes_Delayed_Security": 48,
    "Statistics_Minutes_Delayed_Total": 76163,
    "Statistics_Minutes_Delayed_Weather": 100061
}
Pesan output

Tindakan Jalankan Kueri SQL dapat menampilkan pesan output berikut:

Pesan output Deskripsi pesan
Successfully executed query in the BigQuery dataset DATASET_NAME. Tindakan berhasil.
Error executing action "Run SQL Query". Reason: ERROR_REASON

Tindakan gagal.

Periksa koneksi ke server, parameter input, atau kredensial.

Hasil skrip

Tabel berikut mencantumkan nilai untuk output hasil skrip saat menggunakan tindakan Jalankan Kueri SQL:

Nama hasil skrip Nilai
is_success True atau False

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.