Mengumpulkan Log Aliran VPC AWS
Dokumen ini menjelaskan cara menyerap Log Aliran VPC AWS ke Google Security Operations menggunakan tiga metode berbeda: Amazon S3 (format Teks), Amazon CloudWatch Logs dengan Kinesis Data Firehose, dan format CSV di Amazon S3. AWS VPC Flow Logs adalah fitur yang memungkinkan Anda merekam informasi tentang traffic IP yang menuju ke dan keluar dari antarmuka jaringan di VPC Anda. Integrasi ini memungkinkan Anda mengirimkan log ini ke Google SecOps untuk dianalisis dan dipantau.
Format Log Aliran VPC AWS yang didukung
Google SecOps mendukung penyerapan Log Aliran VPC AWS dalam dua format teks utama:
- Format JSON: Jenis log
AWS_VPC_FLOW
mengurai log dalam format JSON. Dalam format ini, setiap entri log mencakup kunci dan nilai yang sesuai, sehingga data dapat menjelaskan dirinya sendiri. - Format CSV: Google SecOps juga menyediakan parser untuk AWS VPC Flow Logs dalam format CSV. Format ini mencantumkan kunci kolom hanya sekali di baris header, dengan baris berikutnya hanya berisi nilai yang dipisahkan koma.
Karena format CSV tidak menyertakan kunci kolom di setiap entri log, parser AWS_VPC_FLOW_CSV mengandalkan urutan nilai yang ketat dan telah ditentukan sebelumnya. File CSV Anda harus mematuhi urutan kolom berikut agar dapat diuraikan dengan benar:
Version,Account_id,Interface_id,Srcaddr,Dstaddr,Srcport,Dstport,Protocol,Packets,Bytes,Start,End,Action,Log_status,Vpc_id,Subnet_id,Instance_id,Tcp_flags,Type,Pkt_srcaddr,Pkt_dstaddr,Region,Az_id,Sublocation_type,Sublocation_id,Pkt_src_aws_service,Pkt_dst_aws_service,Flow_direction,Traffic_path,Ecs_cluster_arn,Ecs_cluster_name,Ecs_container_instance_arn,Ecs_container_instance_id,Ecs_container_id,Ecs_second_container_id,Ecs_service_name,Ecs_task_definition_arn,Ecs_task_arn,Ecs_task_id
Berikut adalah contoh baris log CSV:
7,369096419186,eni-0520bb5efed19d33a,10.119.32.34,10.119.223.3,51256,16020,6,14,3881,1723542839,1723542871,ACCEPT,OK,vpc-0769a6844ce873a6a,subnet-0cf9b2cb32f49f258,i-088d6080f45f5744f,0,IPv4,10.119.32.34,10.119.223.3,ap-northeast-1,apne1-az4,-,-,-,-,ingress,,-,-,-,-,-,-,-,-,-,-
Untuk kolom yang tidak memiliki nilai, nilai kosong (misalnya, , ,) harus diteruskan untuk mempertahankan urutan posisi yang benar dalam baris CSV.
Sebelum memulai
Pastikan Anda memenuhi prasyarat berikut:
- Instance Google SecOps.
- Akses istimewa ke AWS.
Opsi 1: Mengonfigurasi ekspor Log Aliran VPC AWS menggunakan AWS S3 (Format teks)
Bagian berikut menguraikan cara mengonfigurasi izin Amazon S3 dan Identity and Access Management untuk mengaktifkan ekspor Log Aliran VPC untuk dianalisis oleh Google SecOps.
Mengonfigurasi bucket AWS S3 dan IAM untuk Google SecOps
- Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket.
- Simpan Name dan Region bucket untuk referensi di masa mendatang (misalnya,
aws-vpc-flowlogs
). - Buat Pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
- Pilih Pengguna yang dibuat.
- Pilih tab Kredensial keamanan.
- Klik Create Access Key di bagian Access Keys.
- Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
- Klik Berikutnya.
- Opsional: Tambahkan tag deskripsi.
- Klik Create access key.
- Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk referensi di masa mendatang.
- Klik Selesai.
- Pilih tab Izin.
- Klik Tambahkan izin di bagian Kebijakan izin.
- Pilih Tambahkan izin.
- Pilih Lampirkan kebijakan secara langsung.
- Cari kebijakan AmazonS3FullAccess.
- Pilih kebijakan.
- Klik Berikutnya.
- Klik Add permissions.
Membuat Log Aliran VPC (tujuan: Amazon S3, format Teks)
- Buka AWS Console > VPC > Your VPCs/Subnets/Network interfaces, lalu pilih cakupan yang ingin Anda catat.
- Klik Tindakan > Buat log alur.
- Berikan detail konfigurasi berikut:
- Filter: Pilih Semua (atau Setuju / Tolak) sesuai kebijakan Anda.
- Interval agregasi maksimum: Pilih 1 menit (direkomendasikan) atau 10 menit.
- Tujuan: Kirim ke bucket Amazon S3.
- ARN bucket S3: Masukkan nama bucket yang dibuat di bagian sebelumnya dalam format berikut:
arn:aws:s3:::<your-bucket>
. - Format catatan log: Pilih Format default AWS.
- Format file log: Pilih Teks (Biasa).
- Opsional: Nonaktifkan Awalan yang kompatibel dengan Hive dan Partisi per jam kecuali jika Anda membutuhkannya.
- Klik Buat log alur.
Mengonfigurasi feed di Google SecOps untuk memproses Log Aliran VPC AWS (Teks S3)
- Buka Setelan SIEM > Feed.
- Klik + Tambahkan Feed Baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
AWS VPC Flow Logs - S3 (Text)
). - Pilih Amazon S3 V2 sebagai Jenis sumber.
- Pilih AWS VPC Flow sebagai Jenis log.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- URI S3: Masukkan alamat bucket S3 (misalnya,
s3://<your-bucket>/AWSLogs/<account-id>/vpcflowlogs/<region>/
). - Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda.
- Usia File Maksimum: Default 180 Hari.
- ID Kunci Akses: Kunci akses pengguna dengan akses ke bucket S3.
- Kunci Akses Rahasia: Kunci rahasia pengguna dengan akses ke bucket S3.
- Namespace aset: Namespace aset.
- Label penyerapan: Label yang diterapkan ke peristiwa dari feed ini.
- URI S3: Masukkan alamat bucket S3 (misalnya,
- Klik Berikutnya.
- Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Opsi 2: Konfigurasi ekspor Log Aliran VPC AWS menggunakan Amazon CloudWatch Logs dan Kinesis Data Firehose
Setelah menyiapkan log alur untuk masuk ke CloudWatch, opsi ini memberikan lapisan tambahan ekspor data dengan melakukan streaming data log tersebut ke tujuan pilihan Anda menggunakan Kinesis Data Firehose.
Buat Log Aliran VPC (tujuan: Amazon CloudWatch Logs)
- Buka AWS Console > VPC > Your VPCs/Subnets/Network interfaces.
- Klik Tindakan > Buat log alur.
- Berikan detail konfigurasi berikut:
- Filter: Pilih Semua (atau Setuju/Tolak) sesuai kebijakan Anda.
- Interval agregasi maksimum: Pilih 1 menit (direkomendasikan) atau 10 menit.
- Tujuan: Pilih Kirim ke CloudWatch Logs.
- Grup log tujuan: Pilih atau buat grup log (misalnya,
/aws/vpc/flowlogs
). - Peran IAM: Pilih peran yang dapat menulis ke CloudWatch Logs.
- Format catatan log: Pilih Default AWS (versi 2) atau Kustom (mencakup kolom tambahan).
- Klik Buat log alur.
Buat feed di Google SecOps untuk mendapatkan URL Endpoint dan Kunci Rahasia
- Buka Setelan SIEM > Feed.
- Klik + Tambahkan Feed Baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
AWS VPC Flow Logs - CloudWatch via Firehose
). - Pilih Amazon Data Firehose sebagai Jenis sumber.
- Pilih AWS VPC Flow sebagai Jenis log.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- Pemisah pemisahan: Opsional
n
. - Namespace aset: Namespace aset (misalnya,
aws.vpc.flowlogs.cwl
). - Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini (misalnya,
source=vpc_flow_firehose
).
- Pemisah pemisahan: Opsional
- Klik Berikutnya.
- Tinjau konfigurasi feed, lalu klik Kirim.
- Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
- Salin dan simpan kunci rahasia karena Anda tidak dapat melihat rahasia ini lagi.
- Buka tab Detail.
- Salin URL endpoint feed dari kolom Endpoint Information.
- Klik Selesai.
Membuat kunci API untuk feed Amazon Data Firehose
- Buka halaman Credentials di konsol Google Cloud.
- Klik Buat kredensial, lalu pilih Kunci API.
- Salin dan simpan kunci di lokasi yang aman.
- Batasi akses kunci API ke Google SecOps API.
Mengonfigurasi izin IAM untuk CloudWatch Logs ke Firehose
- Di Konsol AWS, buka IAM > Policies > Create policy > JSON.
Tempelkan JSON kebijakan berikut, dengan mengganti
<region>
dan<account-id>
dengan ID akun dan Region AWS Anda:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops" } ] }
Beri nama kebijakan
CWLtoFirehoseWrite
, lalu klik Buat kebijakan.Buka IAM > Roles > Create role.
Pilih Custom trust policy dan tempel:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Lampirkan kebijakan
CWLtoFirehoseWrite
ke peran.Beri nama peran
CWLtoFirehoseRole
, lalu klik Buat peran.
Mengonfigurasi Amazon Kinesis Data Firehose ke Google SecOps
- Di AWS Console, buka Kinesis > Data Firehose > Create delivery stream.
- Berikan detail konfigurasi berikut:
- Sumber: Pilih PUT langsung atau sumber lainnya.
- Tujuan: Pilih Endpoint HTTP.
- Nama:
cwlogs-to-secops
- URL endpoint HTTP: Masukkan URL endpoint HTTPS Feed dari Google SecOps dengan Kunci API yang ditambahkan:
<ENDPOINT_URL>?key=<API_KEY>
- Metode HTTP: Pilih POST.
- Di bagian Kunci akses:
- Masukkan Secret key yang dibuat di feed Google SecOps (ini akan menjadi header
X-Amz-Firehose-Access-Key
). - Petunjuk buffering: tetapkan Ukuran buffer = 1 MiB, Interval buffer = 60 detik.
- Kompresi: pilih Dinonaktifkan.
- Pencadangan S3: pilih Nonaktif.
- Biarkan setelan coba lagi dan pencatatan aktivitas sebagai default.
- Masukkan Secret key yang dibuat di feed Google SecOps (ini akan menjadi header
- Klik Buat aliran pengiriman.
Berlangganan grup CloudWatch Logs ke aliran Firehose
- Buka CloudWatch > Logs > Log groups.
- Pilih grup log target (misalnya,
/aws/vpc/flowlogs
). - Buka tab Filter langganan, lalu klik Buat.
- Pilih Create Amazon Kinesis Data Firehose subscription filter.
- Berikan detail konfigurasi berikut:
- Tujuan: Pilih aliran pengiriman
cwlogs-to-secops
. - Berikan izin: Pilih peran
CWLtoFirehoseRole
. - Nama filter: Masukkan
all-events
. - Pola filter: Biarkan kosong untuk mengirim semua peristiwa.
- Tujuan: Pilih aliran pengiriman
- Klik Mulai streaming.
Opsi 3: Konfigurasi Log Aliran VPC AWS dalam format CSV menggunakan Amazon S3
Mengubah log ke format CSV (opsional)
- Pastikan baris CSV Anda mengikuti urutan kolom yang ketat dan konsisten yang cocok dengan kolom yang Anda pilih dalam format kustom Log Aliran VPC (misalnya, set kolom kanonis v2, atau set v5/v7). Jangan sertakan baris header dalam file produksi kecuali jika opsi parser Anda mengharapkannya.
- Tulis file CSV ke awalan yang stabil, misalnya:
s3://<your-bucket>/vpcflowlogs-csv/<region>/year=<year>/month=<month>/day=<day>/
.
Mengonfigurasi feed di Google SecOps untuk memproses Log Aliran VPC AWS (CSV)
- Buka Setelan SIEM > Feed.
- Klik + Tambahkan Feed Baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
AWS VPC Flow Logs - S3 (CSV)
). - Pilih Amazon S3 V2 sebagai Jenis sumber.
- Pilih AWS VPC Flow (CSV) sebagai Jenis log.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- URI S3: Masukkan alamat bucket S3 (misalnya,
s3://<your-bucket>/vpcflowlogs-csv/<region>/
). - Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda.
- Usia File Maksimum: Default 180 Hari.
- ID Kunci Akses: Kunci akses pengguna dengan akses ke bucket S3.
- Kunci Akses Rahasia: Kunci rahasia pengguna dengan akses ke bucket S3.
- Namespace aset: Namespace aset.
- Label penyerapan: Label yang diterapkan ke peristiwa dari feed ini.
- URI S3: Masukkan alamat bucket S3 (misalnya,
- Klik Berikutnya.
- Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Tabel pemetaan UDM
Kolom log | Pemetaan UDM | Logika |
---|---|---|
accountId | read_only_udm.metadata.product_log_id | Nilai yang diekstrak dari kolom log mentah accountId . |
tindakan | read_only_udm.security_result.action_details | Nilai yang diekstrak dari kolom log mentah action . |
tindakan | read_only_udm.security_result.action | Dipetakan ke ALLOW jika action adalah ACCEPT, dipetakan ke BLOCK jika action adalah REJECT . |
az_id | read_only_udm.principal.cloud.availability_zone | Nilai yang diekstrak dari kolom log mentah az_id . |
byte | read_only_udm.network.received_bytes | Nilai yang diekstrak dari kolom log mentah bytes . |
dstaddr | read_only_udm.target.ip | Nilai yang diekstrak dari kolom log mentah dstaddr . |
dstport | read_only_udm.target.port | Nilai yang diekstrak dari kolom log mentah dstport . |
end_time | read_only_udm.about.resource.attribute.labels.value | Nilai yang diekstrak dari kolom log mentah end_time . |
end_time | read_only_udm.metadata.ingested_timestamp | Nilai yang diekstrak dari kolom log mentah end_time . |
flow_direction | read_only_udm.network.direction | Dipetakan ke INBOUND jika flow_direction adalah ingress , dipetakan ke OUTBOUND jika flow_direction adalah egress . |
InstanceID | read_only_udm.principal.cloud.project.id | Nilai yang diekstrak dari kolom log mentah InstanceID . |
interfaceId | read_only_udm.about.resource.attribute.labels.value | Nilai yang diekstrak dari kolom log mentah interfaceId . |
logStatus | read_only_udm.about.resource.attribute.labels.value | Nilai yang diekstrak dari kolom log mentah logStatus . |
paket | read_only_udm.about.resource.attribute.labels.value | Nilai yang diekstrak dari kolom log mentah packets . |
pkt_dst_aws_service | read_only_udm.about.resource.attribute.labels.value | Nilai yang diekstrak dari kolom log mentah pkt_dst_aws_service . |
pkt_dstaddr | read_only_udm.intermediary.ip | Nilai yang diekstrak dari kolom log mentah pkt_dstaddr . |
pkt_srcaddr | read_only_udm.intermediary.ip | Nilai yang diekstrak dari kolom log mentah pkt_srcaddr . |
pkt_src_aws_service | read_only_udm.about.resource.attribute.labels.value | Nilai yang diekstrak dari kolom log mentah pkt_src_aws_service . |
protokol | read_only_udm.network.ip_protocol | Dipetakan ke TCP jika protocol adalah 6, dipetakan ke UDP jika protocol adalah 17, atau dipetakan ke UNKNOWN_IP_PROTOCOL. |
Wilayah | read_only_udm.principal.location.country_or_region | Nilai yang diekstrak dari kolom log mentah Region . |
srcaddr | read_only_udm.principal.ip | Nilai yang diekstrak dari kolom log mentah srcaddr . |
srcport | read_only_udm.principal.port | Nilai yang diekstrak dari kolom log mentah srcport . |
start_time | read_only_udm.about.resource.attribute.labels.value | Nilai yang diekstrak dari kolom log mentah start_time . |
start_time | read_only_udm.metadata.event_timestamp | Nilai yang diekstrak dari kolom log mentah start_time . |
SubnetID | read_only_udm.about.resource.attribute.labels.value | Nilai yang diekstrak dari kolom log mentah SubnetID . |
tcp_flags | read_only_udm.about.resource.attribute.labels.value | Nilai yang diekstrak dari kolom log mentah tcp_flags . |
traffic_path | read_only_udm.about.resource.attribute.labels.value | Nilai yang diekstrak dari kolom log mentah traffic_path . |
versi | read_only_udm.metadata.product_version | Nilai yang diekstrak dari kolom log mentah version . |
vpcID | read_only_udm.principal.cloud.vpc.id | Nilai yang diekstrak dari kolom log mentah vpcID . |
read_only_udm.metadata.vendor_name | Hardcode ke AMAZON . |
|
read_only_udm.metadata.product_name | Hardcode ke AWS VPC Flow . |
|
read_only_udm.metadata.log_type | Hardcode ke AWS_VPC_FLOW . |
|
read_only_udm.metadata.event_type | Dipetakan ke NETWORK_CONNECTION jika dstaddr tidak kosong, atau dipetakan ke GENERIC_EVENT . |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.