Mengumpulkan Log Aliran VPC AWS

Didukung di:

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

  1. Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket.
  2. Simpan Name dan Region bucket untuk referensi di masa mendatang (misalnya, aws-vpc-flowlogs).
  3. Buat Pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
  4. Pilih Pengguna yang dibuat.
  5. Pilih tab Kredensial keamanan.
  6. Klik Create Access Key di bagian Access Keys.
  7. Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
  8. Klik Berikutnya.
  9. Opsional: Tambahkan tag deskripsi.
  10. Klik Create access key.
  11. Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk referensi di masa mendatang.
  12. Klik Selesai.
  13. Pilih tab Izin.
  14. Klik Tambahkan izin di bagian Kebijakan izin.
  15. Pilih Tambahkan izin.
  16. Pilih Lampirkan kebijakan secara langsung.
  17. Cari kebijakan AmazonS3FullAccess.
  18. Pilih kebijakan.
  19. Klik Berikutnya.
  20. Klik Add permissions.

Membuat Log Aliran VPC (tujuan: Amazon S3, format Teks)

  1. Buka AWS Console > VPC > Your VPCs/Subnets/Network interfaces, lalu pilih cakupan yang ingin Anda catat.
  2. Klik Tindakan > Buat log alur.
  3. 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.
  4. Klik Buat log alur.

Mengonfigurasi feed di Google SecOps untuk memproses Log Aliran VPC AWS (Teks S3)

  1. Buka Setelan SIEM > Feed.
  2. Klik + Tambahkan Feed Baru.
  3. Di kolom Nama feed, masukkan nama untuk feed (misalnya, AWS VPC Flow Logs - S3 (Text)).
  4. Pilih Amazon S3 V2 sebagai Jenis sumber.
  5. Pilih AWS VPC Flow sebagai Jenis log.
  6. Klik Berikutnya.
  7. 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.
  8. Klik Berikutnya.
  9. 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)

  1. Buka AWS Console > VPC > Your VPCs/Subnets/Network interfaces.
  2. Klik Tindakan > Buat log alur.
  3. 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).
  4. Klik Buat log alur.

Buat feed di Google SecOps untuk mendapatkan URL Endpoint dan Kunci Rahasia

  1. Buka Setelan SIEM > Feed.
  2. Klik + Tambahkan Feed Baru.
  3. Di kolom Nama feed, masukkan nama untuk feed (misalnya, AWS VPC Flow Logs - CloudWatch via Firehose).
  4. Pilih Amazon Data Firehose sebagai Jenis sumber.
  5. Pilih AWS VPC Flow sebagai Jenis log.
  6. Klik Berikutnya.
  7. 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).
  8. Klik Berikutnya.
  9. Tinjau konfigurasi feed, lalu klik Kirim.
  10. Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
  11. Salin dan simpan kunci rahasia karena Anda tidak dapat melihat rahasia ini lagi.
  12. Buka tab Detail.
  13. Salin URL endpoint feed dari kolom Endpoint Information.
  14. Klik Selesai.

Membuat kunci API untuk feed Amazon Data Firehose

  1. Buka halaman Credentials di konsol Google Cloud.
  2. Klik Buat kredensial, lalu pilih Kunci API.
  3. Salin dan simpan kunci di lokasi yang aman.
  4. Batasi akses kunci API ke Google SecOps API.

Mengonfigurasi izin IAM untuk CloudWatch Logs ke Firehose

  1. Di Konsol AWS, buka IAM > Policies > Create policy > JSON.
  2. 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"
       }
    ]
    }
    
  3. Beri nama kebijakan CWLtoFirehoseWrite, lalu klik Buat kebijakan.

  4. Buka IAM > Roles > Create role.

  5. Pilih Custom trust policy dan tempel:

    {
    "Version": "2012-10-17",
    "Statement": [
       {
          "Effect": "Allow",
          "Principal": {
          "Service": "logs.<region>.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
       }
    ]
    }
    
  6. Lampirkan kebijakan CWLtoFirehoseWrite ke peran.

  7. Beri nama peran CWLtoFirehoseRole, lalu klik Buat peran.

Mengonfigurasi Amazon Kinesis Data Firehose ke Google SecOps

  1. Di AWS Console, buka Kinesis > Data Firehose > Create delivery stream.
  2. 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.
  3. 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.
  4. Klik Buat aliran pengiriman.

Berlangganan grup CloudWatch Logs ke aliran Firehose

  1. Buka CloudWatch > Logs > Log groups.
  2. Pilih grup log target (misalnya, /aws/vpc/flowlogs).
  3. Buka tab Filter langganan, lalu klik Buat.
  4. Pilih Create Amazon Kinesis Data Firehose subscription filter.
  5. 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.
  6. Klik Mulai streaming.

Opsi 3: Konfigurasi Log Aliran VPC AWS dalam format CSV menggunakan Amazon S3

Mengubah log ke format CSV (opsional)

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

  1. Buka Setelan SIEM > Feed.
  2. Klik + Tambahkan Feed Baru.
  3. Di kolom Nama feed, masukkan nama untuk feed (misalnya, AWS VPC Flow Logs - S3 (CSV)).
  4. Pilih Amazon S3 V2 sebagai Jenis sumber.
  5. Pilih AWS VPC Flow (CSV) sebagai Jenis log.
  6. Klik Berikutnya.
  7. 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.
  8. Klik Berikutnya.
  9. 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.