Mengumpulkan log Metrik AWS ECS

Versi Parser: 1.0

Didukung di:

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

  1. Login ke konsol Amazon ECS di https://console.aws.amazon.com/ecs/v2.
  2. Di panel navigasi, pilih Setelan Akun.
  3. Klik Update.
  4. Pilih Container Insights dengan kemampuan observasi yang ditingkatkan.
  5. Klik Simpan perubahan.
  6. 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-name dengan 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:

  1. Di Konsol AWS, buka CloudWatch > Logs > Log groups.
  2. Telusuri /aws/ecs/containerinsights/.
  3. Pastikan bahwa grup log ada untuk setiap cluster ECS dengan Container Insights yang diaktifkan.

Mengonfigurasi bucket AWS S3

  1. Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket.
  2. 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

  1. Di AWS Console, buka IAM > Policies > Create policy.
  2. Pilih tab JSON.
  3. Tempel kebijakan berikut (ganti ecs-metrics-to-secops dengan 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:*"
            }
        ]
    }
    
  4. Klik Berikutnya.

  5. Di kolom Nama kebijakan, masukkan ECSMetricsFirehoseS3Policy.

  6. Klik Create policy.

Buat peran IAM

  1. Buka IAM > Roles > Create role.
  2. Pilih Kebijakan kepercayaan kustom.
  3. Tempel kebijakan kepercayaan berikut:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "firehose.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    
  4. Klik Berikutnya.

  5. Telusuri dan pilih ECSMetricsFirehoseS3Policy.

  6. Klik Berikutnya.

  7. Di kolom Nama peran, masukkan ECSMetricsFirehoseToS3Role.

  8. Klik Buat peran.

Buat aliran Amazon Data Firehose

  1. Buka konsol Kinesis di https://console.aws.amazon.com/kinesis.
  2. Di panel navigasi, pilih Amazon Data Firehose.
  3. Klik Create Firehose stream.
  4. Di bagian Choose source and destination, berikan konfigurasi berikut:
    • Sumber: Pilih PUT Langsung.
    • Tujuan: Pilih Amazon S3.
  5. Di kolom Firehose stream name, masukkan ecs-metrics-to-secops.
  6. Di bagian Transform records, di bagian Decompress source records from Amazon CloudWatch Logs:

    1. Pilih Aktifkan dekompresi.
    2. Jangan pilih Aktifkan ekstraksi pesan.
  7. 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/.
  8. Di bagian Buffer hints:

    • Ukuran buffer: 5 MiB (default).
    • Interval buffer: 300 detik (default).
  9. 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.
  10. Klik Create Firehose stream.

  11. 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

  1. Buka IAM > Policies > Create policy.
  2. Pilih tab JSON.
  3. 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"
            }
        ]
    }
    
  4. Klik Berikutnya.

  5. Di kolom Nama kebijakan, masukkan ECSMetricsCWLtoFirehosePolicy.

  6. Klik Create policy.

Buat peran IAM

  1. Buka IAM > Roles > Create role.
  2. Pilih Kebijakan kepercayaan kustom.
  3. 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"
            }
        ]
    }
    
  4. Klik Berikutnya.

  5. Telusuri dan pilih ECSMetricsCWLtoFirehosePolicy.

  6. Klik Berikutnya.

  7. Di kolom Nama peran, masukkan ECSMetricsCWLtoFirehoseRole.

  8. Klik Buat peran.

Membuat filter langganan CloudWatch Logs

  1. Di Konsol AWS, buka CloudWatch > Logs > Log groups.
  2. Pilih grup log /aws/ecs/containerinsights/your-cluster-name/performance.
  3. Pilih tab Filter langganan.
  4. Klik Buat > Buat filter langganan Amazon Data Firehose.
  5. 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.
  6. Klik Mulai streaming.

Mengonfigurasi pengguna IAM untuk Google SecOps

Google SecOps memerlukan pengguna IAM dengan akses ke bucket S3 untuk menyerap log yang dikirim.

  1. Buat Pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
  2. Pilih Pengguna yang dibuat.
  3. Pilih tab Kredensial keamanan.
  4. Klik Create Access Key di bagian Access Keys.
  5. Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
  6. Klik Berikutnya.
    • Opsional: Tambahkan tag deskripsi.
  7. Klik Create access key.
  8. Klik Download file .csv untuk menyimpan Kunci Akses dan Kunci Akses Rahasia untuk referensi di masa mendatang.
  9. Klik Done.
  10. Pilih tab Permissions.
  11. Klik Tambahkan izin di bagian Kebijakan izin.
  12. Pilih Tambahkan izin.
  13. Pilih Lampirkan kebijakan secara langsung.
  14. Cari kebijakan AmazonS3FullAccess.
  15. Pilih kebijakan.
  16. Klik Berikutnya.
  17. Klik Add permissions.

Mengonfigurasi feed di Google SecOps untuk menyerap log Metrik AWS ECS

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Masukkan nama unik untuk Nama feed.
  5. Pilih Amazon S3 V2 sebagai Jenis sumber.
  6. Pilih AWS ECS Metrics sebagai Jenis log.
  7. Klik Berikutnya, lalu klik Kirim.
  8. 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
  9. 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: trueSTATUS_UPDATE, trueNETWORK_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.