Amankan data sensitif di CloudWatch Log dengan menggunakan Amazon Macie - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Amankan data sensitif di CloudWatch Log dengan menggunakan Amazon Macie

Anisha Salunkhe, Omar Franco, dan David Guardiola, Amazon Web Services

Ringkasan

Pola ini menunjukkan cara menggunakan Amazon Macie untuk mendeteksi data sensitif secara otomatis dalam grup CloudWatch log Amazon Logs dengan menerapkan alur kerja pemantauan keamanan yang komprehensif. Solusinya menggunakan Amazon Data Firehose untuk mengalirkan entri CloudWatch Log ke Amazon Simple Storage Service (Amazon S3). Macie secara berkala memindai bucket ini untuk informasi identitas pribadi (PII), data keuangan, dan konten sensitif lainnya. Infrastruktur digunakan melalui AWS CloudFormation template yang menyediakan semua yang diperlukan Layanan AWS dan konfigurasi.

CloudWatch Log sering berisi data aplikasi yang secara tidak sengaja dapat menyertakan informasi pengguna yang sensitif. Ini dapat menciptakan risiko kepatuhan dan keamanan. Pendekatan pemantauan log tradisional tidak memiliki kemampuan deteksi data sensitif otomatis. Hal ini dapat membuat sulit untuk mengidentifikasi dan menanggapi potensi eksposur data secara real-time.

Pola ini membantu tim keamanan dan petugas kepatuhan menjaga kerahasiaan data dengan menyediakan deteksi dan peringatan otomatis untuk data sensitif dalam sistem logging. Solusi ini memungkinkan respons insiden proaktif melalui notifikasi Amazon Simple Notification Service (Amazon SNS), dan secara otomatis mengisolasi data sensitif ke bucket Amazon S3 yang aman. Anda dapat menyesuaikan pola deteksi dan mengintegrasikan alur kerja dengan proses operasi keamanan yang ada.

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS

  • Izin untuk membuat tumpukan CloudFormation

  • Grup CloudWatch log Log yang ingin Anda pantau

  • Alamat email aktif untuk menerima pemberitahuan dari Amazon SNS

  • Akses ke AWS CloudShell

  • (Opsional) Akses ke AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi

Batasan

Arsitektur

Arsitektur target

Diagram berikut menunjukkan alur kerja untuk menggunakan Macie untuk memeriksa entri CloudWatch log Log untuk data sensitif.

 

Alur kerja menunjukkan langkah-langkah berikut:

  1. Grup CloudWatch log log menghasilkan log, yang tunduk pada filter langganan.

  2. Filter langganan meneruskan log ke Amazon Data Firehose.

  3. Log dienkripsi dengan kunci AWS Key Management Service (AWS KMS) saat melewati aliran pengiriman Amazon Data Firehose.

  4. Aliran pengiriman mengirimkan log ke bucket log yang diekspor di Amazon S3.

  5. Pada pukul 4 pagi setiap hari, Amazon EventBridge memulai AWS Lambda fungsi yang memulai pemindaian Macie untuk data sensitif di bucket log yang diekspor.

  6. Jika Macie mengidentifikasi data sensitif di bucket, fungsi Lambda akan menghapus log dari bucket log yang diekspor dan mengenkripsinya dengan file. AWS KMS key

  7. Fungsi Lambda mengisolasi log yang berisi data sensitif dalam bucket isolasi data.

  8. Identifikasi data sensitif memulai topik Amazon SNS.

  9. Amazon SNS mengirimkan pemberitahuan email ke alamat email yang Anda konfigurasikan dengan informasi tentang log yang berisi data sensitif.

Sumber daya yang digunakan

CloudFormation Template menyebarkan sumber daya berikut di target Anda Akun AWS dan Wilayah AWS:

Alat

Layanan AWS

  • AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS

  • Amazon CloudWatch Logs membantu Anda memusatkan log dari semua sistem, aplikasi, Layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.

  • Amazon Data Firehose membantu Anda mengirimkan data streaming real-time ke titik akhir HTTP kustom lainnya Layanan AWS, dan titik akhir HTTP yang dimiliki oleh penyedia layanan pihak ketiga yang didukung.

  • Amazon EventBridge adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, sumber seperti AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS

  • AWS Key Management Service (AWS KMS) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.

  • AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

  • Amazon Macie membantu Anda menemukan data sensitif, memberikan visibilitas terhadap risiko keamanan data, dan memungkinkan perlindungan otomatis terhadap risiko tersebut.

  • Amazon Simple Notification Service (Amazon SNS) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

Repositori kode

Kode untuk pola ini tersedia di repositori GitHub sample-macie-for-securing-cloudwatch-logs.

Praktik terbaik

Ikuti praktik CloudFormation terbaik dalam CloudFormation dokumentasi.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori kode.

Masukkan perintah berikut untuk mengkloning repositori ke workstation lokal Anda:

git clone https://github.com/aws-samples/sample-macie-for-securing-cloudwatch-logs
Pengembang aplikasi

(Opsional) Edit CloudFormation template.

  1. Buka file main.yaml.

  2. Sesuaikan template dengan melakukan salah satu hal berikut:

    • Anda dapat mengganti nama sumber daya.

    • Di parameter bagian ini, Anda dapat memodifikasi nilai default.

    • Anda dapat mengubah pola filter langganan. Untuk informasi selengkapnya, lihat Log filter langganan tingkat grup dalam dokumentasi CloudWatch Log.

  3. Simpan dan tutup file main.yaml.

Pengembang aplikasi

Opsi 1 — Menyebarkan menggunakan skrip dengan parameter baris perintah.

Masukkan perintah berikut untuk menerapkan solusi dengan menggunakan parameter baris perintah, di mana nilai untuk enable-macie true hanya jika Amazon Macie belum diaktifkan:

./scripts/test-macie-solution.sh --deploy-stack \ --stack-name <stack name> \ --email <email address> \ --enable-macie <true or false> \ --region <region> \ --resource-name <prefix for all resources> \ --bucket-name <bucket name>
AWS Umum

Opsi 2 - Menyebarkan menggunakan skrip dengan variabel lingkungan.

  1. Masukkan perintah berikut untuk menentukan variabel lingkungan, di mana nilai untuk ENABLE_MACIE true hanya jika Amazon Macie belum diaktifkan:

    export STACK_NAME=<stack name> export SNS_EMAIL=<email address> export ENABLE_MACIE=<true or false> export REGION=<region> export RESOURCE_NAME=<prefix for all resources> export BUCKET_NAME=<bucket name>
  2. Masukkan perintah berikut untuk memvalidasi parameter sebelum penerapan:

    ./scripts/test-macie-solution.sh \ --validate-params \ --email <email address> \ --region <region>
  3. Masukkan perintah berikut untuk menyebarkan solusi:

    ./scripts/test-macie-solution.sh --deploy-stack
AWS Umum

Opsi 3 — Menyebarkan menggunakan. AWS CLI

Masukkan perintah berikut untuk menerapkan solusi dengan menggunakan AWS CLI, di mana nilai untuk true hanya EnableMacie jika Amazon Macie belum diaktifkan:

aws cloudformation create-stack \ --region us-east-1 \ --stack-name macie-for-securing-cloudwatch-logs \ --template-body file://app/main.yml \ --capabilities CAPABILITY_IAM \ --parameters \ ParameterKey=ResourceName,ParameterValue=<prefix for all resources> \ ParameterKey=BucketName,ParameterValue=<bucket name> \ ParameterKey=LogGroupName,ParameterValue=<path for log group> \ ParameterKey=SNSTopicEndpointEmail,ParameterValue=<email address> \ ParameterKey=EnableMacie,ParameterValue=<true or false>

Opsi 4 — Menyebarkan melalui. Konsol Manajemen AWS

  1. Buka konsol AWS CloudFormation.

  2. Pada bilah navigasi di bagian atas layar, pilih Wilayah AWS untuk membuat tumpukan.

  3. Pada halaman Stacks, pilih Buat tumpukan di kanan atas, lalu pilih Dengan sumber daya baru (standar).

  4. Pada halaman Buat tumpukan, untuk Prasyarat - Siapkan template, pilih Pilih template yang ada.

  5. Di bawah Tentukan templat, pilih Unggah file templat, lalu unggah template main.yaml dari repositori kloning Anda.

  6. Pilih Berikutnya.

  7. Pada halaman Tentukan detail tumpukan, di kotak Nama tumpukan, masukkan nama tumpukan.

  8. Di bagian Parameter, tentukan nilai untuk parameter template berikut.

    • ResourceName: Awalan untuk semua sumber daya

    • BucketName: Nama unik untuk ember Amazon S3

    • LogGroupName: Nama grup log untuk CloudWatch Log

    • SNSTopicEndpointEmail: Alamat email untuk notifikasi

    • EnableMacie: Setel ke true jika Macie belum diaktifkan

    • (Opsional)Region: Wilayah AWS Tempat Anda ingin menyebarkan tumpukan.

    • (Opsional)TemplatePath: Jalur ke CloudFormation templat

  9. Pilih Berikutnya.

  10. Untuk Kemampuan, pilih Saya mengakui bahwa template ini dapat membuat sumber daya IAM untuk menentukan bahwa Anda ingin menggunakan sumber daya IAM dalam template.

  11. Pilih Berikutnya.

  12. Pada halaman Tinjau dan buat, tinjau detail tumpukan Anda.

  13. Pilih Kirim untuk meluncurkan tumpukan Anda.

AWS Umum

Pantau status penerapan dan konfirmasikan penerapan.

  1. Masukkan perintah berikut untuk memantau status penyebaran:

    ./scripts/test-macie-solution.sh \ --deployment-status \ --stack-name <stack name>
    catatan

    Anda juga dapat memantau kemajuan dan status pembuatan tumpukan pada tab Acara untuk tumpukan baru Anda. Untuk informasi selengkapnya, lihat Memantau kemajuan tumpukan.

  2. Saat status berubah menjadi CREATE_COMPLETE, tinjau output tumpukan untuk informasi sumber daya.

AWS Umum

Konfirmasikan langganan Amazon SNS.

Ikuti petunjuk di Konfirmasikan langganan Amazon SNS Anda di dokumentasi Amazon SNS untuk mengonfirmasi langganan Amazon SNS Anda.

Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Opsi 1 - Uji dengan pelaporan otomatis.

Jika Anda menggunakan nama stack default, masukkan perintah berikut untuk menguji solusinya:

./scripts/test-macie-solution.sh \ --full-test

Jika Anda menggunakan nama tumpukan khusus, masukkan perintah berikut untuk menguji solusinya:

./scripts/test-macie-solution.sh \ --full-test \ --stack-name <stack name>

Jika Anda menggunakan nama tumpukan kustom dan parameter kustom, masukkan perintah berikut untuk menguji solusinya:

./scripts/test-macie-solution.sh --full-test \ --stack-name <stack name> \ --region <region> \ --log-group <log group path>
AWS Umum

Opsi 2 - Uji dengan validasi yang ditargetkan.

  1. Masukkan perintah berikut untuk menghasilkan data uji dengan informasi sensitif:

    ./scripts/test-macie-solution.sh \ --generate-test-data \ --stack-name <stack name>

    Perintah ini melakukan hal berikut:

    • Membuat entri CloudWatch log log yang berisi pola data sensitif realistis, termasuk karyawan IDs, paten IDs, nomor kartu kredit, nomor jaminan sosial, dan alamat email

    • Menghasilkan entri log sensitif dan tidak sensitif untuk pengujian komprehensif

    • Menyediakan pencatatan rinci dari proses pembuatan data pengujian

  2. Masukkan perintah berikut untuk memverifikasi aliran pipa data:

    ./scripts/test-macie-solution.sh \ --verify-pipeline \ --stack-name <stack name>

    Perintah ini melakukan hal berikut:

    • Mengonfirmasi bahwa entri CloudWatch Log dialirkan ke Amazon Data Firehose

    • Memvalidasi bahwa data log dikirim ke bucket Amazon S3 dengan enkripsi yang tepat

    • Memeriksa apakah penyimpanan objek Amazon S3 memiliki struktur awalan yang benar

    • Memverifikasi status enkripsi objek yang disimpan

    • Memantau waktu aliran data dan menyediakan periode tunggu untuk pemrosesan

  3. Masukkan perintah berikut untuk memulai pekerjaan klasifikasi Macie:

    ./scripts/test-macie-solution.sh \ --trigger-macie-job \ --stack-name <stack name>

    Perintah ini melakukan hal berikut:

    • Memicu pekerjaan klasifikasi Macie secara manual melalui fungsi Lambda

    • Memantau status eksekusi pekerjaan dan memberikan umpan balik

    • Memvalidasi ketersediaan layanan Macie sebelum eksekusi

    • Menangani kasus di mana Macie tidak diaktifkan di akun

    • Memberikan hasil eksekusi pekerjaan yang terperinci

  4. Masukkan perintah berikut untuk memvalidasi peringatan dan isolasi data:

    ./scripts/test-macie-solution.sh \ --verify-alerts \ --stack-name <stack name>

    Perintah ini melakukan hal berikut:

    • Mengonfirmasi bahwa EventBridge aturan dikonfigurasi dan aktif dengan benar

    • Memvalidasi konfigurasi topik Amazon SNS dan status langganan

    • Memeriksa pengaturan dan izin bucket isolasi data

    • Memantau pergerakan data sensitif ke bucket isolasi

    • Memverifikasi fungsionalitas alur kerja peringatan lengkap

AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Opsi 1 - Lakukan pembersihan otomatis.

Jika Anda menggunakan nama stack default, masukkan perintah berikut untuk menghapus tumpukan:

./scripts/cleanup-macie-solution.sh \ --full-cleanup

Jika Anda menggunakan nama tumpukan khusus, masukkan perintah berikut untuk menghapus tumpukan:

./scripts/cleanup-macie-solution.sh \ --full-cleanup \ --stack-name <stack name>

Jika Anda menggunakan nama tumpukan kustom dan parameter kustom, masukkan perintah berikut untuk menghapus tumpukan:

./scripts/cleanup-macie-solution.sh \ --full-cleanup \ --stack-name <stack name> \ --region <region> \ --disable-macie <true or false>
AWS Umum

Opsi 2 — Lakukan step-by-step pembersihan.

  1. Masukkan perintah berikut untuk menghentikan proses aktif:

    ./scripts/cleanup-macie-solution.sh \ --stop-processes \ --stack-name <stack name>

    Perintah ini melakukan hal berikut:

    • Mematikan EventBridge aturan untuk mencegah eksekusi pekerjaan baru

    • Menghentikan pekerjaan klasifikasi Macie yang sedang berjalan

    • Membatalkan eksekusi pekerjaan Macie yang tertunda

    • Menghapus semua pesan Amazon SNS yang tertunda dalam antrian

    • Menyediakan pembaruan status untuk setiap proses yang dihentikan

  2. Masukkan perintah berikut untuk mengosongkan bucket Amazon S3:

    ./scripts/cleanup-macie-solution.sh \ --empty-buckets \ --stack-name <stack name>

    Perintah ini melakukan hal berikut:

    • Menghapus semua objek dari ember untuk CloudWatch Log

    • Menghapus semua objek dari bucket Amazon S3 isolasi data

    • Menghapus semua unggahan multipart yang tidak lengkap

    • Menangani objek berversi jika versi Amazon S3 diaktifkan

    • Menyediakan jumlah objek dan pembaruan kemajuan penghapusan

  3. Masukkan perintah berikut untuk menghapus CloudFormation tumpukan:

    ./scripts/cleanup-macie-solution.sh \ --delete-stack \ --stack-name <stack name>

    Perintah ini melakukan hal berikut:

    • Memulai proses penghapusan CloudFormation tumpukan

    • Memantau kemajuan penghapusan dengan pembaruan status waktu nyata

    • Menangani kegagalan penghapusan dengan pelaporan kesalahan terperinci

    • Menunggu penghapusan tumpukan lengkap sebelum melanjutkan

    • Menyediakan riwayat acara tumpukan untuk pemecahan masalah

  4. Masukkan perintah berikut untuk membersihkan sumber daya Macie:

    ./scripts/cleanup-macie-solution.sh \ --cleanup-macie \ --stack-name <stack name>

    Tumpukan ini melakukan hal berikut:

    • Menghapus pengidentifikasi data kustom yang dibuat oleh solusi

    • Membersihkan artefak dan temuan pekerjaan Macie yang tersisa

    • Menonaktifkan sesi Macie jika diaktifkan oleh tumpukan

    • Menangani kasus di mana sumber daya Macie dibagikan dengan aplikasi lain

    • Memberikan status pembersihan terperinci untuk setiap komponen Macie

AWS Umum

Verifikasi membersihkan.

  1. Masukkan perintah berikut untuk memverifikasi bahwa tumpukan telah dihapus:

    aws cloudformation describe-stacks \ --stack-name <stack name> \ --region <region>
  2. Masukkan perintah berikut untuk memverifikasi bahwa bucket Amazon S3 telah dihapus:

    aws s3 ls | grep macie
  3. Masukkan perintah berikut untuk memverifikasi bahwa pengidentifikasi data kustom Macie telah dihapus:

    aws macie2 list-custom-data-identifiers \ --region <region>
  4. Masukkan perintah berikut untuk memeriksa sumber daya yang tersisa:

    ./scripts/cleanup-macie-solution.sh \ --verify-cleanup \ --stack-name <stack name>
AWS Umum

Pemecahan masalah

IsuSolusi

CloudFormation status tumpukan menunjukkan CREATE_FAILED.

CloudFormation Template dikonfigurasi untuk mempublikasikan log ke CloudWatch Log. Anda dapat melihat log di Konsol Manajemen AWS sehingga Anda tidak perlu terhubung ke EC2 instans Amazon Anda. Untuk informasi selengkapnya, lihat Melihat CloudFormation log di konsol (posting AWS blog).

CloudFormation delete-stackperintah gagal.

Beberapa sumber daya harus kosong sebelum dapat dihapus. Misalnya, Anda harus menghapus semua objek di bucket Amazon S3 atau menghapus semua instance di grup EC2 keamanan Amazon sebelum dapat menghapus bucket atau grup keamanan. Untuk informasi selengkapnya, lihat Hapus tumpukan gagal dalam dokumentasi Amazon S3.

Kesalahan saat mengurai parameter.

Saat Anda menggunakan AWS CLI atau CloudFormation konsol untuk memberikan nilai, tambahkan tanda kutip.

Sumber daya terkait