Pantau ElastiCache kluster Amazon untuk enkripsi saat istirahat - AWS Prescriptive Guidance

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

Pantau ElastiCache kluster Amazon untuk enkripsi saat istirahat

Abhishek Adawane, Amazon Web Services

Ringkasan

Amazon ElastiCache adalah layanan Amazon Web Services (AWS) yang menyediakan solusi caching berkinerja tinggi, terukur, dan hemat biaya untuk mendistribusikan penyimpanan data dalam memori atau lingkungan cache di cloud. Ini mengambil data dari throughput tinggi dan latensi rendah, penyimpanan data dalam memori. Fungsionalitas ini menjadikannya pilihan populer untuk kasus penggunaan real-time seperti caching, toko sesi, game, layanan geo-spasial, analitik real-time, dan antrian. ElastiCache menawarkan penyimpanan data Redis dan Memcached, yang keduanya menyediakan waktu respons sub-milidetik.

Enkripsi data membantu mencegah pengguna yang tidak sah membaca data sensitif yang tersedia di kluster Redis Anda dan sistem penyimpanan cache terkait mereka. Ini termasuk data yang disimpan ke media persisten, yang dikenal sebagai data saat istirahat, dan data yang dapat dicegat saat melakukan perjalanan melalui jaringan antara klien dan server cache, yang dikenal sebagai data dalam perjalanan.

Anda dapat mengaktifkan enkripsi saat istirahat untuk ElastiCache (Redis OSS) saat Anda membuat grup replikasi, dengan menyetel parameter ke. AtRestEncryptionEnabled true Ketika parameter ini diaktifkan, parameter ini mengenkripsi disk selama operasi sinkronisasi, pencadangan, dan swap, dan mengenkripsi cadangan yang disimpan di Amazon Simple Storage Service (Amazon S3). Anda tidak dapat mengaktifkan enkripsi saat istirahat pada grup replikasi yang ada. Saat Anda membuat grup replikasi, Anda dapat mengaktifkan enkripsi saat istirahat dengan dua cara berikut:

  • Dengan memilih opsi Default, yang menggunakan enkripsi yang dikelola layanan saat istirahat.

  • Dengan menggunakan kunci yang dikelola pelanggan dan memberikan ID kunci atau Nama Sumber Daya Amazon (ARN) dari AWS Key Management Service (AWS KMS).

Pola ini menyediakan kontrol keamanan yang memantau panggilan API dan menghasilkan EventBridge peristiwa Amazon Events pada CreateReplicationGroup operasi. Acara ini memanggil AWS Lambda fungsi, yang menjalankan skrip Python. Fungsi mendapatkan ID grup replikasi dari input JSON peristiwa, dan melakukan pemeriksaan berikut untuk menentukan apakah ada cluster yang tidak terenkripsi:

  • Memeriksa apakah AtRestEncryptionEnabled kuncinya ada.

  • Jika AtRestEncryptionEnabled ada, periksa nilainya untuk melihat apakah itutrue.

  • Jika AtRestEncryptionEnabled nilai disetel kefalse, tetapkan variabel yang melacak pelanggaran dan mengirimkan pesan pelanggaran ke alamat email yang Anda berikan, dengan menggunakan notifikasi Amazon Simple Notification Service (Amazon SNS).

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS.

  • Bucket S3 untuk mengunggah kode Lambda yang disediakan.

  • Alamat email tempat Anda ingin menerima pemberitahuan pelanggaran.

  • ElastiCache logging diaktifkan, untuk akses ke semua log API.

Batasan

  • Kontrol detektif ini bersifat regional dan harus digunakan di setiap Wilayah AWS yang ingin Anda pantau.

  • Kontrol mendukung grup replikasi yang berjalan di cloud pribadi virtual (VPC).

  • Kontrol mendukung grup replikasi yang menjalankan jenis node berikut:

    • R7g, R6gd, R6g, R5, R4, R3

    • M7g, M6g, M5, M4, M3

    • T4g, T3, T2

    • C7gN

Versi produk

  • Mendukung ElastiCache (Redis OSS) versi 3.2.6 atau yang lebih baru, dan Valkey 7.2 atau yang lebih baru

Arsitektur

Arsitektur alur kerja

Alur kerja untuk memantau ElastiCache cluster.
  1. Pengguna meluncurkan grup ElastiCache replikasi melalui panggilan Konsol Manajemen AWS, the AWS Command Line Interface (AWS CLI), atau API.

  2. ElastiCache menghasilkan EventBridge peristiwa saat CreateReplicationGroup API dipanggil.

  3. EventBridge Aturan memicu dan memanggil fungsi Lambda untuk pemeriksaan kepatuhan.

  4. Fungsi Lambda memproses peristiwa dan memeriksa apakah enkripsi saat istirahat diaktifkan di cluster. ElastiCache

  5. Jika pelanggaran enkripsi terdeteksi, fungsi Lambda menerbitkan pesan notifikasi ke topik SNS.

  6. Amazon SNS mengirimkan pemberitahuan email kepada administrator tentang pelanggaran kepatuhan enkripsi.

Otomatisasi dan skala

  • Jika Anda menggunakan AWS Organizations, Anda dapat menggunakan AWS CloudFormation StackSetsuntuk menyebarkan template ini di beberapa akun yang ingin Anda pantau.

Alat

Layanan AWS

  • Amazon ElastiCache memudahkan untuk mengatur, mengelola, dan menskalakan lingkungan cache dalam memori terdistribusi di AWS Cloud. Ini menyediakan cache dalam memori berkinerja tinggi, dapat diubah ukurannya, dan hemat biaya sambil menghilangkan kompleksitas yang terkait dengan penerapan dan pengelolaan lingkungan cache terdistribusi. ElastiCache bekerja dengan mesin Redis dan Memcached.

  • AWS CloudFormationmembantu Anda memodelkan dan menyiapkan AWS sumber daya Anda, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya. Anda dapat menggunakan template untuk mendeskripsikan sumber daya Anda dan dependensinya, dan meluncurkan dan mengonfigurasinya bersama-sama sebagai tumpukan, alih-alih mengelola sumber daya secara individual. Anda dapat mengelola dan menyediakan tumpukan di beberapa Akun AWS dan Wilayah AWS.

  • Amazon EventBridge memberikan aliran peristiwa sistem yang mendekati real-time yang menggambarkan perubahan AWS sumber daya. EventBridge menyadari perubahan operasional saat terjadi dan mengambil tindakan korektif seperlunya, dengan mengirim pesan untuk merespons lingkungan, mengaktifkan fungsi, membuat perubahan, dan menangkap informasi negara.

  • AWS Lambdaadalah layanan komputasi yang mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya bila diperlukan dan menskalakan secara otomatis dari beberapa permintaan per hari menjadi ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda gunakan—tidak ada biaya saat kode Anda tidak berjalan. 

  • Amazon SNS mengkoordinasikan dan mengelola pengiriman pesan antara penerbit dan klien, termasuk server web dan alamat email. Pelanggan menerima semua pesan yang dipublikasikan ke topik tempat mereka berlangganan, dan semua pelanggan topik menerima pesan yang sama.

Kode

Kode untuk pola ini tersedia di ElastiCache cluster GitHub Monitor Amazon untuk repositori enkripsi saat istirahat. Lihat bagian Epics untuk informasi tentang cara menggunakan file di repositori.

Praktik terbaik

Deployment

  • Pastikan bahwa AWS CloudTrail mencatat panggilan ElastiCache API sebelum Anda menerapkan kontrol ini.

  • Ini adalah kontrol regional; menyebarkan kontrol di setiap Wilayah AWS tempat yang Anda gunakan ElastiCache.

  • Validasi solusi di dev/test lingkungan sebelum Anda menerapkannya ke produksi.

Keamanan

  • Untuk meningkatkan kontrol atas kunci enkripsi, gunakan kunci KMS yang dikelola pelanggan.

  • Tinjau izin AWS Identity and Access Management (IAM) untuk memastikan akses hak istimewa paling sedikit untuk peran eksekusi Lambda.

  • Siapkan peringatan untuk pesan dalam antrian surat mati.

Operasi

  • Tetapkan retensi log yang sesuai untuk menyeimbangkan kebutuhan kepatuhan dengan biaya.

  • Setel konkurensi Lambda yang dicadangkan untuk menyesuaikan berdasarkan frekuensi pembuatan ElastiCache Anda.

  • Berlangganan beberapa alamat email ke Amazon SNS untuk pemberitahuan tim.

Pemantauan

  • Tinjau CloudWatch alarm Amazon untuk memastikan bahwa ambang alarm sesuai dengan kebutuhan operasional Anda.

  • Pantau durasi eksekusi metrik Lambda dan tingkat kesalahan secara teratur.

  • Audit pelanggaran secara teratur untuk meninjau pemberitahuan kepatuhan enkripsi.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Unduh kode dari GitHub.

Kloning atau unduh repositori kode dari. GitHub Repositori berisi file dan fileindex.py. elasticache_encryption_at_rest.yml

Arsitek awan

Buat paket penyebaran Lambda.

Buat dua file.zip dari kode Python:

  • BuatElastiCache-EncryptionAtRest.zip, yang berisiindex.py.

  • Gunakan perintah berikut ini.

    zip ElastiCache-EncryptionAtRest.zip index.py
Arsitek awan

Unggah kode ke bucket S3.

  1. Buat bucket S3 baru atau gunakan bucket S3 yang ada untuk mengunggah kode Lambda.

  2. Zip kode Lambda (index.py) dan beri nama. ElastiCache-EncryptionAtRest.zip

  3. Unggah file.zip ke bucket S3. Bucket ini harus Wilayah AWS sama dengan sumber daya yang ingin Anda evaluasi.

Arsitek awan

Menyebarkan CloudFormation template.

Buka CloudFormation konsol Wilayah AWS sama dengan bucket S3, dan terapkan elasticache_encryption_at_rest.yml file yang disediakan di repositori kode. Dalam epik berikutnya, berikan nilai untuk parameter template.

Arsitek awan
TugasDeskripsiKeterampilan yang dibutuhkan

Berikan nama bucket S3.

Masukkan nama bucket S3 yang Anda buat atau pilih di epik pertama. Bucket S3 ini berisi file.zip untuk kode Lambda dan harus Wilayah AWS sama dengan CloudFormation template dan sumber daya yang akan dievaluasi. 

Arsitek awan

Berikan kunci S3.

Berikan lokasi file kode Lambda .zip di bucket S3 Anda, tanpa garis miring (misalnya, atau). ElasticCache-EncryptionAtRest.zip controls/ElasticCache-EncryptionAtRest.zip

Arsitek awan

Berikan alamat email.

Berikan alamat email aktif tempat Anda ingin menerima pemberitahuan pelanggaran. 

Arsitek awan

Tentukan tingkat logging.

Tentukan tingkat logging dan verbositas.

  • Infomenunjuk pesan informasi rinci tentang kemajuan aplikasi dan harus digunakan hanya untuk debugging.

  • Errormenunjuk peristiwa kesalahan yang masih memungkinkan aplikasi untuk terus berjalan.

  • Warningmenunjuk situasi yang berpotensi berbahaya.

Arsitek awan
TugasDeskripsiKeterampilan yang dibutuhkan

Konfirmasikan langganan email.

Ketika CloudFormation template berhasil digunakan, ia mengirimkan pesan berlangganan ke alamat email yang Anda berikan. Untuk menerima pemberitahuan, Anda harus mengonfirmasi langganan email ini.

Arsitek awan

Pemecahan masalah

IsuSolusi

Fungsi Lambda tidak dipicu

Gejala: Tidak ada log masuk CloudWatch setelah Anda membuat atau memodifikasi ElastiCache cluster.

Solusi:

  • Verifikasi status EventBridge aturan: 

    aws events describe-rule --name <rule-name>
  • Konfirmasikan bahwa kebijakan berbasis sumber daya Lambda mengizinkan pemanggilan. EventBridge

  • Konfirmasikan bahwa pola EventBridge acara cocok dengan panggilan ElastiCache API.

Tidak ada pemberitahuan email

Gejala: Fungsi Lambda berhasil berjalan, tetapi Anda tidak menerima pemberitahuan email apa pun.

Solusi:

  • Konfirmasikan langganan Amazon SNS Anda melalui tautan konfirmasi email.

  • Periksa folder spam atau sampah untuk email Amazon SNS.

  • Verifikasi Nama Sumber Daya Amazon (ARN) untuk topik Amazon SNS di variabel lingkungan Lambda: OUTBOUND_TOPIC_ARN

  • Uji Amazon SNS secara manual: 

    aws sns publish --topic-arn <arn> --message "Test"

Masalah izin

Gejala: Akses ditolak kesalahan dalam log fungsi CloudWatch Lambda.

Solusi:

  • Verifikasi bahwa peran eksekusi Lambda memiliki izin ElastiCache baca yang diperlukan.

  • Konfirmasikan bahwa kebijakan AWS KMS kunci menyertakan peran eksekusi Lambda.

  • Pastikan bahwa kebijakan topik Amazon SNS memungkinkan Lambda untuk mempublikasikan.

Sumber daya terkait