Mengumpulkan log Metrik AWS ECS
Versi Parser: 1.0
Dokumen ini menjelaskan cara menyerap log Metrik AWS ECS ke Google Security Operations menggunakan Amazon S3.
Amazon Elastic Container Service (Amazon ECS) adalah layanan orkestrasi container terkelola sepenuhnya yang membantu Anda men-deploy, mengelola, dan menskalakan aplikasi dalam container. CloudWatch Container Insights mengumpulkan, menggabungkan, dan meringkas metrik dan log dari cluster, layanan, tugas, dan container ECS, termasuk pemakaian CPU, penggunaan memori, traffic jaringan, dan I/O penyimpanan. Integrasi ini menggunakan Amazon Data Firehose untuk melakukan streaming peristiwa log performa Container Insights dari CloudWatch Logs ke bucket S3, yang kemudian di-ingest oleh Google SecOps menggunakan feed Amazon S3 V2.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Akses istimewa ke AWS Management Console dengan izin untuk mengelola:
- Amazon ECS (cluster, setelan akun)
- Amazon CloudWatch Logs (grup log, filter langganan)
- Amazon Data Firehose (aliran pengiriman)
- Amazon S3 (bucket)
- AWS IAM (peran, kebijakan, pengguna)
Mengaktifkan Container Insights di Amazon ECS
Container Insights harus diaktifkan untuk membuat peristiwa log performa di CloudWatch Logs untuk cluster ECS Anda.
Mengaktifkan Container Insights di tingkat akun
- Login ke konsol Amazon ECS di https://console.aws.amazon.com/ecs/v2.
- Di panel navigasi, pilih Setelan Akun.
- Klik Update.
- Pilih Container Insights dengan kemampuan observasi yang ditingkatkan.
- Klik Simpan perubahan.
Di layar konfirmasi, klik Konfirmasi.
Mengaktifkan Container Insights di cluster yang ada
Untuk memperbarui cluster ECS yang ada, jalankan perintah AWS CLI berikut (ganti
your-cluster-namedengan nama cluster Anda):aws ecs update-cluster-settings --cluster your-cluster-name --settings name=containerInsights,value=enhanced
Memverifikasi grup log CloudWatch
Setelah mengaktifkan Container Insights, Amazon ECS akan otomatis membuat grup log CloudWatch Logs dengan konvensi penamaan berikut:
/aws/ecs/containerinsights/your-cluster-name/performance
Untuk memverifikasi:
- Di Konsol AWS, buka CloudWatch > Logs > Log groups.
- Telusuri
/aws/ecs/containerinsights/. - Pastikan bahwa grup log ada untuk setiap cluster ECS dengan Container Insights yang diaktifkan.
Mengonfigurasi bucket AWS S3
- Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket.
- Simpan Name dan Region bucket untuk referensi di masa mendatang (misalnya,
ecs-metrics-to-secops).
Mengonfigurasi peran IAM untuk Amazon Data Firehose
Amazon Data Firehose memerlukan peran IAM untuk menulis log ke bucket S3 Anda.
Buat kebijakan IAM
- Di AWS Console, buka IAM > Policies > Create policy.
- Pilih tab JSON.
Tempel kebijakan berikut (ganti
ecs-metrics-to-secopsdengan nama bucket Anda yang sebenarnya):{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3Delivery", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ecs-metrics-to-secops", "arn:aws:s3:::ecs-metrics-to-secops/*" ] }, { "Sid": "CloudWatchLogging", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/kinesisfirehose/ecs-metrics-to-secops:log-stream:*" } ] }Klik Berikutnya.
Di kolom Nama kebijakan, masukkan
ECSMetricsFirehoseS3Policy.Klik Create policy.
Buat peran IAM
- Buka IAM > Roles > Create role.
- Pilih Kebijakan kepercayaan kustom.
Tempel kebijakan kepercayaan berikut:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Klik Berikutnya.
Telusuri dan pilih ECSMetricsFirehoseS3Policy.
Klik Berikutnya.
Di kolom Nama peran, masukkan
ECSMetricsFirehoseToS3Role.Klik Buat peran.
Buat aliran Amazon Data Firehose
- Buka konsol Kinesis di https://console.aws.amazon.com/kinesis.
- Di panel navigasi, pilih Amazon Data Firehose.
- Klik Create Firehose stream.
- Di bagian Choose source and destination, berikan konfigurasi berikut:
- Sumber: Pilih PUT Langsung.
- Tujuan: Pilih Amazon S3.
- Di kolom Firehose stream name, masukkan
ecs-metrics-to-secops. Di bagian Transform records, di bagian Decompress source records from Amazon CloudWatch Logs:
- Pilih Aktifkan dekompresi.
- Jangan pilih Aktifkan ekstraksi pesan.
Di bagian Setelan tujuan:
- Bucket S3: Pilih bucket S3
ecs-metrics-to-secops. - Awalan bucket S3 (opsional): Masukkan
ecs-metrics/. - Awalan output error bucket S3 (opsional): Masukkan
firehose-errors/.
- Bucket S3: Pilih bucket S3
Di bagian Buffer hints:
- Ukuran buffer:
5MiB (default). - Interval buffer:
300detik (default).
- Ukuran buffer:
Di bagian Setelan lanjutan:
- Enkripsi sisi server: Opsional. Aktifkan jika enkripsi diperlukan.
- Logging error: Pilih Diaktifkan (direkomendasikan).
- Izin: Pilih Pilih peran IAM yang ada, lalu pilih
ECSMetricsFirehoseToS3Role.
Klik Create Firehose stream.
Tunggu hingga Status aliran data menampilkan Aktif.
Mengonfigurasi peran IAM untuk CloudWatch Logs
CloudWatch Logs memerlukan peran IAM untuk mengirim data log ke aliran Firehose.
Buat kebijakan IAM
- Buka IAM > Policies > Create policy.
- Pilih tab JSON.
Tempel kebijakan berikut (ganti
<region>dan<account-id>dengan region AWS dan ID akun Anda):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/ecs-metrics-to-secops" } ] }Klik Berikutnya.
Di kolom Nama kebijakan, masukkan
ECSMetricsCWLtoFirehosePolicy.Klik Create policy.
Buat peran IAM
- Buka IAM > Roles > Create role.
- Pilih Kebijakan kepercayaan kustom.
Tempel kebijakan kepercayaan berikut (ganti
<region>dengan region AWS Anda):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Klik Berikutnya.
Telusuri dan pilih ECSMetricsCWLtoFirehosePolicy.
Klik Berikutnya.
Di kolom Nama peran, masukkan
ECSMetricsCWLtoFirehoseRole.Klik Buat peran.
Membuat filter langganan CloudWatch Logs
- Di Konsol AWS, buka CloudWatch > Logs > Log groups.
- Pilih grup log
/aws/ecs/containerinsights/your-cluster-name/performance. - Pilih tab Filter langganan.
- Klik Buat > Buat filter langganan Amazon Data Firehose.
- Berikan detail konfigurasi berikut:
- Tujuan: Pilih aliran Firehose
ecs-metrics-to-secops. - Berikan izin: Pilih peran
ECSMetricsCWLtoFirehoseRole. - Nama filter langganan: Masukkan nama deskriptif (misalnya,
ecs-metrics-to-secops-filter). - Format log: Pilih Lainnya.
- Pola filter langganan: Biarkan kosong untuk mengirim semua peristiwa performa Container Insights.
- Tujuan: Pilih aliran Firehose
Klik Mulai streaming.
Mengonfigurasi pengguna IAM untuk Google SecOps
Google SecOps memerlukan pengguna IAM dengan akses ke bucket S3 untuk menyerap log yang dikirim.
- 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 file .csv untuk menyimpan Kunci Akses dan Kunci Akses Rahasia untuk referensi di masa mendatang.
- Klik Done.
- Pilih tab Permissions.
- 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.
Mengonfigurasi feed di Google SecOps untuk menyerap log Metrik AWS ECS
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Masukkan nama unik untuk Nama feed.
- Pilih Amazon S3 V2 sebagai Jenis sumber.
- Pilih AWS ECS Metrics sebagai Jenis log.
- Klik Berikutnya, lalu klik Kirim.
- Tentukan nilai untuk kolom berikut:
- URI S3:
s3://ecs-metrics-to-secops/ecs-metrics/ - Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda
- Usia File Maksimum: Menyertakan file yang diubah dalam beberapa hari terakhir (defaultnya adalah 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 akan diterapkan ke peristiwa dari feed ini
- URI S3:
- Klik Berikutnya, lalu klik Kirim.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
cluster_rtt_ClusterId_label |
additional.fields |
Digabung |
cluster_rtt_description_label |
additional.fields |
Digabung |
compressed_label |
additional.fields |
Digabung |
connectionID_localvalue_label |
additional.fields |
Digabung |
connectionID_serverValue_label |
additional.fields |
Digabung |
request_id_label |
additional.fields |
Digabung |
source_label |
additional.fields |
Digabung |
Time |
metadata.event_timestamp |
Diurai sebagai RFC 3339 |
has_principal |
metadata.event_type |
Dipetakan: true → STATUS_UPDATE, true → NETWORK_CONNECTION |
connection |
metadata.product_event_type |
Dipetakan secara langsung |
sent_bytes |
network.sent_bytes |
Dipetakan secara langsung |
hostname |
principal.asset.hostname |
Dipetakan secara langsung |
principal_ip |
principal.asset.ip |
Digabung |
hostname |
principal.hostname |
Dipetakan secara langsung |
principal_ip |
principal.ip |
Digabung |
principal_port |
principal.port |
Dipetakan secara langsung |
action |
security_result.action |
Digabung |
severity |
security_result.severity |
Dipetakan: "ALERT", "EMERGENCY" → HIGH, "INFO", "NOTICE" → INFORMATIONAL, DEBUG → `LO... |
target_port |
target.port |
Dipetakan secara langsung |
url |
target.url |
Dipetakan secara langsung |
| T/A | metadata.event_type |
Konstanta: STATUS_UPDATE |
| T/A | security_result.severity |
Konstanta: CRITICAL |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.