Logging aturan kebijakan firewall memungkinkan Anda mengaudit, memverifikasi, dan menganalisis efek aturan firewall Anda. Misalnya, Anda dapat menentukan apakah aturan firewall yang dirancang untuk menolak traffic berfungsi sebagaimana mestinya. Logging juga berguna jika Anda perlu menentukan jumlah koneksi yang terpengaruh oleh aturan firewall tertentu.
Pelajari cara mengaktifkan dan menonaktifkan logging aturan kebijakan firewall untuk aturan firewall Virtual Private Cloud (VPC). Untuk mengetahui petunjuk tentang logging untuk aturan kebijakan firewall, lihat Menggunakan kebijakan dan aturan firewall hierarkis.
Anda juga dapat mempelajari cara melihat log yang dihasilkan. Untuk mengetahui informasi selengkapnya tentang apa yang dicatat, contoh logging, dan format log, lihat ringkasan logging aturan kebijakan firewall.
Jika mengaktifkan logging pada aturan firewall, Anda dapat melihat insight dan rekomendasi untuk aturan tersebut dari Analisis Firewall. Untuk mengetahui informasi selengkapnya, lihat Analisis Firewall dalam dokumentasi Network Intelligence Center.
Izin
Untuk mengubah aturan firewall atau log akses, principal IAM memerlukan salah satu peran berikut.
| Tugas | Peran yang diperlukan |
|---|---|
| Membuat, menghapus, atau memperbarui aturan firewall | Pemilik atau editor project atau
peran Security Admin (roles/compute.securityAdmin)
|
| Melihat log | Pemilik, editor, atau pelihat project
atau
Peran Logs Viewer (roles/logging.viewer)
Untuk mengetahui detail tentang peran dan izin IAM Logging, lihat Panduan Kontrol Akses Logging. |
Mengaktifkan dan menonaktifkan logging aturan kebijakan firewall
Saat membuat aturan firewall, Anda dapat mengaktifkan logging untuk aturan firewall tersebut. Untuk mengetahui informasi selengkapnya, lihat Membuat aturan firewall.
Untuk mengaktifkan atau menonaktifkan logging aturan kebijakan firewall untuk aturan firewall yang ada, ikuti petunjuk berikut. Saat mengaktifkan logging, Anda dapat mengontrol apakah kolom metadata disertakan. Jika Anda menghilangkannya, Anda dapat menghemat biaya penyimpanan.
Mengaktifkan logging aturan kebijakan firewall
Konsol
Di konsol Google Cloud , buka halaman Firewall policies.
Di kolom Logs, tentukan apakah logging firewall aktif atau nonaktif untuk setiap aturan firewall.
Untuk mengaktifkan logging untuk satu atau beberapa aturan firewall, centang kotak di samping setiap aturan yang ingin Anda perbarui.
Di panel tindakan VPC firewall rules, klik Configure logs.
Pada dialog Konfigurasi log, pilih Aktif.
Untuk menghilangkan kolom metadata, luaskan Tampilkan detail log, lalu hapus centang pada kotak Sertakan metadata.
Klik Simpan konfigurasi.
gcloud
gcloud compute firewall-rules update RULE_NAME \
--enable-logging \
--logging-metadata=LOGGING_METADATA
Ganti kode berikut:
RULE_NAME: nama aturan firewall.LOGGING_METADATA: apakah logging aturan kebijakan firewall mencakup kolom metadata dalam log aturan firewall. Anda dapat mengonfigurasi kolom ini hanya jika logging diaktifkan. Nilainya harus berupaexclude-allatauinclude-all. Secara default, kolom metadata disertakan.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi SDK.
Terraform
Anda dapat menggunakan resource Terraform untuk membuat aturan firewall dengan logging yang diaktifkan.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
API
Aktifkan logging aturan kebijakan firewall untuk aturan firewall yang ada.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
"name": "RULE_NAME",
"logConfig": {
"enable": true,
"metadata": "LOGGING_METADATA"
}
}
Ganti placeholder dengan nilai yang valid:
PROJECT_ID: ID project tempat aturan firewall berada.RULE_NAME: nama aturan firewall.LOGGING_METADATA: apakah logging aturan kebijakan firewall mencakup kolom metadata dalam log aturan firewall. Anda dapat mengonfigurasi kolom ini hanya jika logging diaktifkan. Nilainya harus berupaexclude-allatauinclude-all. Secara default, kolom metadata disertakan.
Untuk informasi selengkapnya, lihat metode firewalls.patch.
Menonaktifkan logging aturan kebijakan firewall
Konsol
Di konsol Google Cloud , buka halaman Firewall policies.
Di kolom Logs, tentukan apakah logging firewall aktif atau nonaktif untuk setiap aturan firewall.
Untuk menonaktifkan logging untuk satu atau beberapa aturan firewall, centang kotak di samping setiap aturan yang ingin Anda perbarui.
Di panel tindakan VPC firewall rules, klik Configure logs.
Dalam dialog Configure logs, pilih Nonaktif, lalu klik Simpan konfigurasi.
gcloud
gcloud compute firewall-rules update RULE_NAME \
--no-enable-logging
Ganti RULE_NAME dengan nama aturan firewall.
API
Nonaktifkan logging aturan kebijakan firewall untuk aturan firewall yang ada.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
"name": "RULE_NAME",
"logConfig": {
"enable": false
}
}
Ganti kode berikut:
PROJECT_ID: ID project tempat aturan firewall berada.RULE_NAME: nama aturan firewall.
Untuk informasi selengkapnya, lihat metode firewalls.patch.
Melihat log
Log aturan firewall dibuat di project yang menghosting jaringan yang berisi instance VM dan aturan firewall. Dengan VPC Bersama, instance VM dibuat dalam project layanan, tetapi menggunakan jaringan VPC Bersama yang berada di project host. Log aturan firewall disimpan dalam project host tersebut.
Untuk melihat log aturan firewall, gunakan bagian Logs Explorer di konsol Google Cloud .
Kueri berikut menunjukkan cara menelusuri peristiwa firewall tertentu.
Melihat semua log firewall
Untuk melihat log firewall, lakukan opsi 1 atau opsi 2.
Opsi 1
Di konsol Google Cloud , buka halaman Logs Explorer.
Klik Resource.
Di daftar Select resource, klik Subnetwork, lalu klik Apply.
Klik Log name, lalu pilih firewall dalam daftar.
Klik Terapkan.
Opsi 2
Di konsol Google Cloud , buka halaman Logs Explorer.
Klik Query.
Jika Anda tidak melihat kolom editor kueri di panel Query, klik tombol Show query.
Tempel perintah berikut ke dalam kolom editor kueri di panel Query. Ganti
PROJECT_IDdengan project ID Anda.resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
Klik Run query.
Melihat log untuk subnet tertentu
Untuk melihat log firewall untuk subnet tertentu, lakukan opsi 1 atau opsi 2.
Opsi 1
Di konsol Google Cloud , buka halaman Logs Explorer.
Klik Resource.
Di daftar Select resource, klik Subnetwork.
Pilih subnetwork yang lognya ingin Anda lihat, lalu klik Terapkan.
Klik Log name, lalu pilih firewall dalam daftar.
Klik Terapkan.
Opsi 2
Di konsol Google Cloud , buka halaman Logs Explorer.
Klik Query.
Jika Anda tidak melihat kolom editor kueri di panel Query, klik tombol Show query.
Tempel perintah berikut ke dalam kolom editor kueri di panel Query. Ganti
PROJECT_IDdengan project ID Anda danSUBNET_NAMEdengan subnetwork Anda.resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall" resource.labels.subnetwork_name="SUBNET_NAME"
Klik Run query.
Melihat log untuk VM tertentu
Untuk melihat log firewall VM tertentu, lakukan opsi 1 atau opsi 2.
Opsi 1
Di konsol Google Cloud , buka halaman Logs Explorer.
Klik Resource.
Di daftar Select resource, klik VM instance.
Pilih instance yang lognya ingin Anda lihat, lalu klik Terapkan.
Klik Log name, lalu pilih firewall dalam daftar.
Klik Terapkan.
Opsi 2
Di konsol Google Cloud , buka halaman Logs Explorer.
Klik Query.
Jika Anda tidak melihat kolom editor kueri di panel Query, klik tombol Show query.
Tempel perintah berikut ke dalam kolom editor kueri di panel Query. Ganti
PROJECT_IDdengan project ID Anda danINSTANCE_IDdengan ID VM yang ingin Anda lihat lognya.resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall" jsonPayload.instance.vm_name="INSTANCE_ID"
Klik Run query.
Melihat log untuk koneksi dari negara tertentu
Untuk melihat log firewall untuk negara tertentu, lakukan hal berikut:
Di konsol Google Cloud , buka halaman Logs Explorer.
Klik Query.
Jika Anda tidak melihat kolom editor kueri di panel Query, klik tombol Show query.
Tempel perintah berikut ke dalam kolom editor kueri di panel Query. Ganti
PROJECT_IDdengan project ID Anda danCOUNTRYdengan kode ISO 3166-1 alpha-3.resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall" jsonPayload.remote_location.country=COUNTRY
Ekspor log
Untuk mengekspor log aturan firewall, lihat Mengonfigurasi dan mengelola sink.
Anda dapat menggunakan contoh kueri untuk mempersempit log yang Anda ekspor.
Tabel interaksi
- Dalam kasus komunikasi VM-ke-VM, catatan log dapat dibuat oleh kedua VM, bergantung pada aturan firewall masing-masing.
- Koneksi yang dicatat dalam log mencakup paket yang mengalir dua arah jika paket awal diizinkan oleh firewall.
- Untuk VM tertentu, koneksi masuk dicocokkan dengan aturan firewall yang dikonfigurasi di VM tersebut dan koneksi keluar dicocokkan dengan aturan firewall keluar yang dikonfigurasi di VM tersebut.
- Koneksi yang diizinkan yang cocok dengan aturan firewall dengan "izinkan dan pencatatan ke log" dicatat ke log hanya sekali. Entri log tidak diulang setiap 5 detik meskipun koneksi tetap ada.
- Koneksi yang ditolak yang cocok dengan aturan firewall dengan "ditolak dan pencatatan" akan mengulangi entri log setiap 5 detik selama ada paket yang diamati dalam koneksi yang ditolak tersebut.
- Jika Anda mengaktifkan logging pada aturan firewall yang cocok dengan koneksi TCP atau UDP yang sudah aktif, entri log baru tidak akan dibuat. Entri log dibuat hanya jika koneksi tetap tidak ada aktivitas selama setidaknya 10 menit dan paket baru dikirim pada koneksi yang sama. Untuk traffic berkelanjutan dengan periode tidak ada aktivitas yang lebih singkat dari 10 menit, hanya satu entri log yang dibuat untuk koneksi.
Tabel ini menunjukkan perilaku logging firewall dari perspektif satu VM.
Dalam skenario saat VM1 memiliki aturan ingress R1 yang cocok dengan paket dan aturan egress R2 yang juga cocok dengan paket, perilaku logging firewall adalah sebagai berikut:
| VM1 memiliki Aturan Masuk R1 (mencocokkan paket) | VM1 memiliki Aturan Keluar R2 (mencocokkan paket) | Arah Koneksi | Tindakan | Log |
|---|---|---|---|---|
| Izinkan + Log | Izinkan | Masuk | Izinkan | Satu entri log: disposition=allow, rule=R1 |
| Tolak | ||||
| Izinkan + Log | ||||
| Tolak + Catat | ||||
| Izinkan | Izinkan | Masuk | Izinkan | Tanpa logging |
| Tolak | ||||
| Izinkan + Log | ||||
| Tolak + Catat | ||||
| Tolak + Catat | T/A | Masuk | Tolak | Satu entri log setiap 5 detik: disposition=deny, rule=R1 |
| Tolak | T/A | Masuk | Tolak | Tanpa logging |
| Izinkan | Izinkan + Log | Keluar | Izinkan | Satu entri log: disposition=allow, rule=R2 |
| Tolak | ||||
| Izinkan + Log | ||||
| Tolak + Catat | ||||
| Izinkan | Izinkan | Keluar | Izinkan | Tanpa logging |
| Tolak | ||||
| Izinkan + Log | ||||
| Tolak + Catat | ||||
| T/A | Tolak + Catat | Keluar | Tolak | Satu entri log setiap 5 detik: disposition=deny, rule=R2 |
| T/A | Tolak | Keluar | Tolak | Tanpa logging |
Perhatikan bahwa ingress dan egress bersifat simetris.
Berikut adalah deskripsi mendetail tentang semantik log firewall:
Izinkan + Log (logging didukung untuk TCP dan UDP)
- Koneksi yang dimulai ke arah yang berlaku untuk aturan akan menyebabkan satu catatan log dibuat.
- Traffic respons diizinkan karena pelacakan koneksi. Traffic respons tidak menyebabkan logging terjadi, terlepas dari aturan firewall di arah tersebut.
- Jika koneksi berakhir dari firewall (tidak aktif selama 10 menit atau TCP RST diterima), maka paket lain di kedua arah dapat memicu logging.
- Pencatatan log didasarkan pada 5-tuple. Flag TCP tidak memengaruhi perilaku logging.
Tolak + Catat (pencatatan didukung untuk TCP dan UDP)
- Paket dibatalkan (tidak ada koneksi yang dimulai).
- Setiap paket yang sesuai dengan 5-tuple unik dicatat sebagai upaya koneksi yang gagal.
- 5-tuple yang sama dicatat lagi setiap 5 detik jika terus menerima paket.