Mengumpulkan log konteks Cloud Compute
Dokumen ini menjelaskan cara mengekspor dan menyerap Google Cloud log konteks Compute ke Google Security Operations menggunakan Cloud Storage. Parser mengekstrak informasi dari log dalam format JSON. Kemudian, alat ini akan melakukan normalisasi dan menyusun data yang diekstrak ke dalam format UDM Google SecOps, yang berfokus pada detail tentang virtual machine seperti spesifikasi hardware, konfigurasi jaringan, setelan keamanan, dan hubungan dengan entitas lain.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Compute disiapkan dan aktif di lingkungan Google Cloud Anda.
- Pastikan Anda memiliki akses dengan hak istimewa ke Google Cloud dan izin yang sesuai.
Membuat bucket Cloud Storage
- Login ke konsol Google Cloud.
Buka halaman Cloud Storage Buckets.
Klik Buat.
Di halaman Buat bucket, masukkan informasi bucket Anda. Setelah menyelesaikan setiap langkah berikut, klik Lanjutkan untuk melanjutkan ke langkah berikutnya:
Di bagian Mulai, lakukan tindakan berikut:
- Masukkan nama unik yang memenuhi persyaratan nama bucket; misalnya, compute-context-logs.
Untuk mengaktifkan namespace hierarkis, klik panah peluas untuk meluaskan bagian Optimalkan untuk beban kerja yang berorientasi pada file dan intensif data, lalu pilih Aktifkan Namespace hierarkis di bucket ini.
Untuk menambahkan label bucket, klik panah peluas untuk meluaskan bagian Labels.
Klik Tambahkan label, lalu tentukan kunci dan nilai untuk label Anda.
Di bagian Pilih tempat untuk menyimpan data, lakukan hal berikut:
- Pilih Jenis lokasi.
Gunakan menu jenis lokasi untuk memilih Location tempat data objek dalam bucket Anda akan disimpan secara permanen.
Untuk menyiapkan replikasi lintas bucket, luaskan bagian Menyiapkan replikasi lintas bucket.
Di bagian Pilih kelas penyimpanan untuk data Anda, pilih kelas penyimpanan default untuk bucket, atau pilih Autoclass untuk pengelolaan kelas penyimpanan otomatis untuk data bucket Anda.
Di bagian Choose how to control access to objects, pilih not untuk menerapkan public access prevention, dan pilih access control model untuk objek bucket Anda.
Di bagian Pilih cara melindungi data objek, lakukan hal berikut:
- Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket.
- Untuk memilih cara enkripsi data objek, klik panah peluas berlabel Enkripsi data, lalu pilih Metode enkripsi data.
Klik Buat.
Mengonfigurasi Google Cloud ekspor log Compute
- Login ke konsol Google Cloud.
- Buka Logging > Router Log.
- Klik Create Sink.
Berikan parameter konfigurasi berikut:
- Sink Name: masukkan nama yang bermakna; misalnya,
Compute-Context-Sink
. - Sink Destination: pilih Cloud Storage Storage dan masukkan URI untuk bucket Anda; misalnya,
gs://compute-context-logs
. Filter Log:
logName="*compute*" resource.type="gce_instance"
- Sink Name: masukkan nama yang bermakna; misalnya,
Klik Buat.
Mengonfigurasi izin untuk Cloud Storage
- Buka IAM & Admin > IAM.
- Temukan akun layanan Cloud Logging.
- Berikan roles/storage.admin di bucket.
Mengonfigurasi feed di Google SecOps untuk menyerap Google Cloud log konteks Compute
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Feed name, masukkan nama untuk feed; misalnya, Google Cloud Compute Context Logs.
- Pilih Google Cloud Storage sebagai Source type.
- Pilih Konteks Komputasi GCP sebagai Jenis log.
- Klik Dapatkan Akun Layanan di samping kolom Chronicle Service Account.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
- Storage Bucket URI: URL bucket Cloud Storage; misalnya,
gs://compute-context-logs
. - URI Adalah: pilih Direktori yang menyertakan subdirektori.
Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.
Namespace aset: namespace aset.
Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
- Storage Bucket URI: URL bucket Cloud Storage; misalnya,
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Finalize, lalu klik Submit.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
ancestor | event.idm.entity.entity.asset.attribute.labels.value | Setiap nilai ancestor dalam array ancestor dipetakan ke label terpisah dengan kunci ancestors . |
assetType | event.idm.entity.entity.asset.category | Dipetakan langsung dari kolom assetType. |
asset_type | event.idm.entity.entity.asset.category | Dipetakan langsung dari kolom asset_type. |
nama | event.idm.entity.entity.resource.name | Dipetakan langsung dari kolom nama. |
resource.data.cpuPlatform | event.idm.entity.entity.asset.hardware.cpu_platform | Dipetakan langsung dari kolom resource.data.cpuPlatform. |
resource.data.creationTimestamp | event.idm.entity.entity.asset.attribute.creation_time | Diurai ke format stempel waktu dari kolom resource.data.creationTimestamp. |
resource.data.id | event.idm.entity.entity.asset.product_object_id | Dipetakan langsung dari kolom resource.data.id. |
resource.data.labels.business_function | event.idm.entity.entity.asset.attribute.labels.value | Dipetakan langsung dari kolom resource.data.labels.business_function, dengan kunci ditetapkan ke business_function . |
resource.data.labels.environment | event.idm.entity.entity.asset.attribute.labels.value | Dipetakan langsung dari kolom resource.data.labels.environment, dengan kunci ditetapkan ke environment . |
resource.data.labels.infra_location | event.idm.entity.entity.asset.attribute.labels.value | Dipetakan langsung dari kolom resource.data.labels.infra_location, dengan kunci ditetapkan ke infra_location . |
resource.data.labels.instance_group | event.idm.entity.user.group_identifiers | Dipetakan langsung dari kolom resource.data.labels.instance_group. |
resource.data.labels.os | event.idm.entity.entity.asset.platform_software.platform_version | Dipetakan langsung dari kolom resource.data.labels.os. |
resource.data.labels.primary_application | event.idm.entity.entity.asset.attribute.labels.value | Dipetakan langsung dari kolom resource.data.labels.primary_application, dengan kunci ditetapkan ke primary_application . |
resource.data.labels.project_code | event.idm.entity.entity.asset.attribute.labels.value | Dipetakan langsung dari kolom resource.data.labels.project_code, dengan kunci ditetapkan ke project_code . |
resource.data.lastStartTimestamp | event.idm.entity.entity.asset.last_boot_time | Diurai ke format stempel waktu dari kolom resource.data.lastStartTimestamp. |
resource.data.machineType | event.idm.entity.entity.asset.hardware.model | Jenis mesin diekstrak dari kolom resource.data.machineType menggunakan ekspresi reguler. |
resource.data.name | event.idm.entity.entity.asset.hostname | Dipetakan langsung dari kolom resource.data.name. |
resource.data.networkInterfaces.0.accessConfigs.0.natIP | event.idm.entity.entity.asset.nat_ip | Alamat IP NAT pertama dari antarmuka jaringan pertama dipetakan. |
resource.data.networkInterfaces.0.network | event.idm.entity.entity.asset.attribute.cloud.vpc.name | ID jaringan diekstrak dari kolom resource.data.networkInterfaces.0.network menggunakan ekspresi reguler. |
resource.data.networkInterfaces.0.networkIP | event.idm.entity.entity.asset.ip | Alamat IP antarmuka jaringan pertama dipetakan. |
resource.data.networkInterfaces.1.networkIP | event.idm.entity.entity.asset.ip | Alamat IP antarmuka jaringan kedua dipetakan. |
resource.data.selfLink | event.idm.entity.entity.url | Dipetakan langsung dari kolom resource.data.selfLink. |
resource.data.serviceAccounts.0.email | event.idm.entity.relations.entity.user.email_addresses | Alamat email akun layanan pertama dipetakan. |
resource.data.status | event.idm.entity.entity.asset.deployment_status | Dipetakan ke ACTIVE jika statusnya adalah salah satu dari RUNNING , PROVISIONING , STAGING , STOPPING , SUSPENDING , SUSPENDED , REPAIRING , TERMINATED . Jika tidak, dipetakan ke DEPLOYMENT_STATUS_UNSPECIFIED . |
event.idm.entity.entity.asset.attribute.cloud.availability_zone | Zona ketersediaan dibuat dengan menggabungkan kolom region dan zone_suffix. | |
event.idm.entity.entity.asset.attribute.cloud.environment | Tetapkan ke GOOGLE_CLOUD_PLATFORM . |
|
event.idm.entity.entity.asset.attribute.cloud.project.name | Project ID diekstrak dari kolom nama menggunakan ekspresi reguler. | |
event.idm.entity.entity.asset.attribute.cloud.project.resource_type | Tetapkan ke CLOUD_PROJECT . |
|
event.idm.entity.entity.asset.attribute.cloud.vpc.resource_type | Tetapkan ke VPC_NETWORK . |
|
event.idm.entity.entity.resource.resource_type | Tetapkan ke VIRTUAL_MACHINE jika asset_type atau assetType berisi Instance . |
|
event.idm.entity.entity.resource.type | Tetapkan ke VIRTUAL_MACHINE jika asset_type atau assetType berisi Instance . |
|
event.idm.entity.metadata.collected_timestamp | Tetapkan ke stempel waktu peristiwa Logstash. | |
event.idm.entity.metadata.entity_type | Tetapkan ke ASSET . |
|
event.idm.entity.metadata.product_name | Tetapkan ke GCP Compute Context . |
|
event.idm.entity.metadata.vendor_name | Tetapkan ke Google Cloud Platform . |
|
event.idm.entity.relations.entity.user.attribute.cloud.environment | Tetapkan ke GOOGLE_CLOUD_PLATFORM . |
|
event.idm.entity.relations.entity_type | Tetapkan ke USER . |
|
event.idm.entity.relations.relationship | Tetapkan ke ADMINISTERS . |
Perubahan
2024-01-27
Perbaikan bug:
- Memisahkan pemetaan
name
,resource.data.id
,resource.data.name
,region
,resource.data.selfLink
,project_id
,asset_network_id
, dan{region}-%{zone_suffix}
ke dalam blok mutasi terpisah.
2024-01-05
Peningkatan:
- Menghapus pemetaan
event.idm.entity.entity.namespace
. - Menambahkan dukungan untuk mengurai semua
networkIP
dariresource.data.networkInterfaces
.
2022-07-29
- Menambahkan pemeriksaan bersyarat untuk
resource.data.lastStartTimestamp
dan dipetakan keentity.asset.last_boot_time
. - Menambahkan pemeriksaan bersyarat untuk
resource.data.networkInterfaces.0.networkIP
dan dipetakan keentity.asset.ip
.
2022-04-04
- Memperbarui nama vendor.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.