Secara otomatis memulihkan instans dan klaster Amazon RDS DB yang tidak terenkripsi - AWS Prescriptive Guidance

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

Secara otomatis memulihkan instans dan klaster Amazon RDS DB yang tidak terenkripsi

Ajay Rawat dan Josh Joy, Amazon Web Services

Ringkasan

Pola ini menjelaskan cara memulihkan instans dan kluster DB Amazon Relational Database Service (Amazon RDS) yang tidak terenkripsi secara otomatis di Amazon Web Services () AWS Systems Manager dengan menggunakan,AWS runbook, dan ( AWS Config) key. AWS Key Management Service AWS KMS

Instans RDS DB terenkripsi memberikan lapisan perlindungan data tambahan dengan mengamankan data Anda dari akses tidak sah ke penyimpanan yang mendasarinya. Anda dapat menggunakan enkripsi Amazon RDS untuk meningkatkan perlindungan data aplikasi Anda yang digunakan di AWS Cloud, dan untuk memenuhi persyaratan kepatuhan untuk enkripsi saat istirahat. Anda dapat mengaktifkan enkripsi untuk instans RDS DB saat Anda membuatnya, tetapi tidak setelah dibuat. Namun, Anda dapat menambahkan enkripsi ke instans RDS DB yang tidak terenkripsi dengan membuat snapshot dari instans DB Anda, dan kemudian membuat salinan terenkripsi dari snapshot itu. Anda kemudian dapat memulihkan instans DB dari snapshot terenkripsi untuk mendapatkan salinan terenkripsi dari instans DB asli Anda.

Pola ini digunakan Aturan AWS Config untuk mengevaluasi instans dan cluster RDS DB. Ini menerapkan remediasi dengan menggunakan AWS Systems Manager runbook, yang menentukan tindakan yang akan dilakukan pada sumber daya Amazon RDS yang tidak sesuai, AWS KMS dan kunci untuk mengenkripsi snapshot DB. Kemudian memberlakukan kebijakan kontrol layanan (SCPs) untuk mencegah pembuatan instance dan cluster DB baru tanpa enkripsi.

Kode untuk pola ini disediakan di GitHub.

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS

  • File dari repositori kode GitHub sumber untuk pola ini diunduh ke komputer Anda

  • Instans atau cluster RDS DB yang tidak terenkripsi

  • AWS KMS Kunci yang ada untuk mengenkripsi instans dan cluster RDS DB

  • Akses untuk memperbarui kebijakan sumber daya kunci KMS

  • AWS Config diaktifkan di Anda Akun AWS (lihat Memulai dengan AWS Config dalam AWS dokumentasi)

Batasan

  • Anda dapat mengaktifkan enkripsi untuk instans RDS DB hanya ketika Anda membuatnya, bukan setelah dibuat.

  • Anda tidak dapat memiliki replika baca terenkripsi dari instans DB yang tidak dienkripsi atau replika baca yang tidak dienkripsi dari instans DB terenkripsi.

  • Anda tidak dapat memulihkan cadangan atau snapshot yang tidak terenkripsi ke instans DB terenkripsi.

  • Enkripsi Amazon RDS tersedia untuk sebagian besar kelas instans DB. Untuk daftar pengecualian, lihat Mengenkripsi sumber daya Amazon RDS di dokumentasi Amazon RDS.

  • Untuk menyalin snapshot terenkripsi dari satu Wilayah AWS ke yang lain, Anda harus menentukan kunci KMS di tujuan. Wilayah AWS Ini karena kunci KMS khusus untuk tempat Wilayah AWS mereka dibuat.

  • Snapshot sumber tetap terenkripsi selama proses penyalinan. Amazon RDS menggunakan enkripsi amplop untuk melindungi data selama proses penyalinan. Untuk informasi selengkapnya, lihat Enkripsi amplop dalam AWS KMS dokumentasi.

  • Anda tidak dapat menghapus enkripsi instans DB terenkripsi. Namun, Anda dapat mengekspor data dari instans DB terenkripsi dan mengimpor data ke instans DB yang tidak terenkripsi.

  • Anda harus menghapus kunci KMS hanya ketika Anda yakin bahwa Anda tidak perlu menggunakannya lagi. Jika Anda tidak yakin, pertimbangkan untuk menonaktifkan kunci KMS alih-alih menghapusnya. Anda dapat mengaktifkan kembali kunci KMS yang dinonaktifkan jika Anda perlu menggunakannya lagi nanti, tetapi Anda tidak dapat memulihkan kunci KMS yang dihapus. 

  • Jika Anda tidak memilih untuk mempertahankan cadangan otomatis, cadangan otomatis Anda yang Wilayah AWS sama dengan instans DB akan dihapus. Cadangan tersebut tidak dapat dipulihkan setelah Anda menghapus instans DB.

  • Pencadangan otomatis Anda dipertahankan untuk periode retensi yang ditetapkan pada instans DB pada saat Anda menghapusnya. Periode retensi yang ditetapkan ini terjadi baik ketika Anda memilih untuk membuat snapshot DB akhir maupun tidak.

  • Jika remediasi otomatis diaktifkan, solusi ini mengenkripsi semua database yang memiliki kunci KMS yang sama.

Arsitektur

Diagram berikut menggambarkan arsitektur untuk AWS CloudFormation implementasi. Perhatikan bahwa Anda juga dapat menerapkan pola ini dengan menggunakan AWS Cloud Development Kit (AWS CDK).

CloudFormation Implementasi AWS untuk memulihkan instans Amazon RDS yang tidak terenkripsi.

Alat

Alat

  • AWS CloudFormationmembantu Anda mengatur AWS sumber daya secara otomatis. Ini memungkinkan Anda untuk menggunakan file template untuk membuat dan menghapus koleksi sumber daya bersama-sama sebagai satu unit (tumpukan).

  • AWS Cloud Development Kit (AWS CDK)adalah kerangka pengembangan perangkat lunak untuk mendefinisikan infrastruktur cloud Anda dalam kode dan menyediakannya dengan menggunakan bahasa pemrograman yang sudah dikenal.

Layanan dan fitur AWS

  • AWS Configmelacak konfigurasi AWS sumber daya Anda dan hubungannya dengan sumber daya Anda yang lain. Itu juga dapat mengevaluasi AWS sumber daya tersebut untuk kepatuhan. Layanan ini menggunakan aturan yang dapat dikonfigurasi untuk mengevaluasi AWS sumber daya terhadap konfigurasi yang diinginkan. Anda dapat menggunakan seperangkat aturan AWS Config terkelola untuk skenario kepatuhan umum, atau Anda dapat membuat aturan sendiri untuk skenario kustom. Jika AWS sumber daya ditemukan tidak sesuai, Anda dapat menentukan tindakan remediasi melalui AWS Systems Manager runbook dan secara opsional mengirim peringatan melalui topik Amazon Simple Notification Service (Amazon SNS). Dengan kata lain, Anda dapat mengaitkan tindakan remediasi dengan Aturan AWS Config dan memilih untuk menjalankannya secara otomatis untuk mengatasi sumber daya yang tidak sesuai tanpa intervensi manual. Jika sumber daya masih tidak sesuai setelah remediasi otomatis, Anda dapat mengatur aturan untuk mencoba remediasi otomatis lagi.

  • Amazon Relational Database Service (Amazon RDS) memudahkan pengaturan, pengoperasian, dan skala database relasional di cloud. Blok bangunan dasar Amazon RDS adalah instans DB, yang merupakan lingkungan database terisolasi di AWS Cloud. Amazon RDS menyediakan pilihan jenis instans yang dioptimalkan agar sesuai dengan kasus penggunaan database relasional yang berbeda. Jenis instans terdiri dari berbagai kombinasi CPU, memori, penyimpanan, dan kapasitas jaringan dan memberi Anda fleksibilitas untuk memilih campuran sumber daya yang tepat untuk database Anda. Setiap jenis instans mencakup beberapa ukuran instans, memungkinkan Anda untuk menskalakan basis data sesuai dengan persyaratan beban kerja target Anda.

  • AWS Key Management Service (AWS KMS) adalah layanan terkelola yang memudahkan Anda membuat dan mengontrol AWS KMS keys, yang mengenkripsi data Anda. Kunci KMS adalah representasi logis dari kunci root. Kunci KMS mencakup metadata, seperti ID kunci, tanggal pembuatan, deskripsi, dan status kunci.

  • AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

  • Kebijakan kontrol layanan (SCPs) menawarkan kontrol pusat atas izin maksimum yang tersedia untuk semua akun di organisasi Anda. SCPs membantu Anda memastikan bahwa akun Anda tetap berada dalam pedoman kontrol akses organisasi Anda. SCPs tidak memengaruhi pengguna atau peran di akun manajemen. SCP tersebut hanya mempengaruhi akun anggota di organisasi Anda. Kami sangat menyarankan agar Anda tidak melampirkan SCPs ke akar organisasi Anda tanpa menguji secara menyeluruh dampak kebijakan terhadap akun. Sebagai gantinya, buat unit organisasi (OU) yang dapat Anda pindahkan akun Anda menjadi satu per satu, atau setidaknya dalam jumlah kecil, untuk memastikan bahwa Anda tidak secara tidak sengaja mengunci pengguna dari layanan utama.

Kode

Kode sumber dan template untuk pola ini tersedia di GitHub repositori. Pola ini menyediakan dua opsi implementasi: Anda dapat menerapkan AWS CloudFormation template untuk membuat peran remediasi yang mengenkripsi instans dan cluster RDS DB, atau menggunakan. AWS CDK Repositori memiliki folder terpisah untuk dua opsi ini.

Bagian Epics memberikan step-by-step instruksi untuk menyebarkan template. CloudFormation Jika Anda ingin menggunakan AWS CDK, ikuti instruksi dalam README.md file di GitHub repositori.

Praktik terbaik

  • Aktifkan enkripsi data baik saat istirahat maupun dalam perjalanan.

  • Aktifkan AWS Config di semua akun dan Wilayah AWS.

  • Rekam perubahan konfigurasi ke semua jenis sumber daya.

  • Putar kredensial IAM Anda secara rutin.

  • Manfaatkan penandaan AWS Config, yang membuat lebih mudah untuk mengelola, mencari, dan memfilter sumber daya.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Unduh CloudFormation template.

Unduh unencrypted-to-encrypted-rds.template.json file dari GitHub repositori.

DevOps insinyur

Buat CloudFormation tumpukan.

  1. Masuk ke AWS Management Console dan buka CloudFormation konsol

  2. Luncurkan unencrypted-to-encrypted-rds.template.json template untuk membuat tumpukan baru.

Untuk informasi selengkapnya tentang penerapan templat, lihat AWS CloudFormation dokumentasi.

DevOps insinyur

Tinjau CloudFormation parameter dan nilai.

  1. Tinjau detail tumpukan dan perbarui nilai berdasarkan persyaratan lingkungan Anda.

  2. Pilih Buat tumpukan untuk menyebarkan template.

DevOps insinyur

Tinjau sumber daya.

Ketika tumpukan telah dibuat, statusnya berubah menjadi CREATE_COMPLETE. Tinjau sumber daya yang dibuat (peran IAM, runbook Systems Manager) di konsol. CloudFormation

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Perbarui kebijakan kunci KMS Anda.

  1. Pastikan bahwa alias kunci alias/RDSEncryptionAtRestKMSAlias ada. 

  2. Pernyataan kebijakan utama harus mencakup peran remediasi IAM. (Periksa sumber daya yang dibuat oleh CloudFormation template yang Anda gunakan di epik sebelumnya.) 

  3. Dalam kebijakan utama berikut, perbarui bagian yang dicetak tebal agar sesuai dengan akun Anda dan peran IAM yang dibuat.

{ "Sid": "Allow access through RDS for all principals in the account that are authorized to use RDS", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:: <your-AWS-account-ID>":role/<your-IAM-remediation-role>" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:ListGrants", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "rds.us-east-1.amazonaws.com", "kms:CallerAccount": "<your-AWS-account-ID>" } } }
DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Lihat sumber daya yang tidak sesuai.

  1. Untuk melihat daftar sumber daya yang tidak sesuai, buka konsol.AWS Config 

  2. Di panel navigasi, pilih Aturan, lalu pilih rds-storage-encrypted aturan.

Sumber daya yang tidak sesuai yang tercantum di AWS Config konsol adalah instance, bukan cluster. Otomatisasi remediasi mengenkripsi instance dan cluster, dan membuat instance yang baru dienkripsi atau cluster yang baru dibuat. Namun, pastikan untuk tidak secara bersamaan memulihkan beberapa instance yang termasuk dalam cluster yang sama.

Sebelum Anda memulihkan instans atau volume RDS DB apa pun, pastikan instans RDS DB tidak digunakan. Konfirmasikan bahwa tidak ada operasi penulisan yang terjadi saat snapshot sedang dibuat, untuk memastikan bahwa snapshot berisi data asli. Pertimbangkan untuk menerapkan jendela pemeliharaan di mana remediasi akan berjalan.

DevOps insinyur

Memulihkan sumber daya yang tidak patuh.

  1. Ketika Anda siap dan jendela pemeliharaan berlaku, pilih sumber daya untuk diperbaiki, dan kemudian pilih Remediate.

    Kolom status Action sekarang harus menampilkan eksekusi Action antrian.

  2. Lihat kemajuan dan status remediasi di Systems Manager. Buka konsol System Manager. Di panel navigasi, pilih Otomasi, lalu pilih ID eksekusi otomatisasi yang sesuai untuk melihat detail lebih lanjut.

DevOps insinyur

Verifikasi bahwa instans RDS DB tersedia.

Setelah otomatisasi selesai, instans RDS DB yang baru dienkripsi akan tersedia. Instans RDS DB terenkripsi akan memiliki awalan encrypted diikuti dengan nama aslinya. Misalnya, jika nama instans RDS DB yang tidak terenkripsi adalahdatabase-1, instans RDS DB yang baru dienkripsi akan menjadi. encrypted-database-1

DevOps insinyur

Mengakhiri instance yang tidak terenkripsi.

Setelah remediasi selesai dan sumber daya yang baru dienkripsi telah divalidasi, Anda dapat menghentikan instance yang tidak terenkripsi. Pastikan untuk mengonfirmasi bahwa sumber daya yang baru dienkripsi cocok dengan sumber daya yang tidak terenkripsi sebelum Anda menghentikan sumber daya apa pun.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Menegakkan SCPs.

Menegakkan SCPs untuk mencegah instans dan cluster DB dibuat tanpa enkripsi di masa depan. Gunakan rds_encrypted.json file yang disediakan di GitHub repositori untuk tujuan ini, dan ikuti instruksi dalam dokumentasi.AWS 

Insinyur keamanan

Sumber daya terkait

Referensi

Alat

Panduan dan pola

Informasi tambahan

Bagaimana cara AWS Config kerjanya?

Saat Anda menggunakan AWS Config, pertama kali menemukan AWS sumber daya yang didukung yang ada di akun Anda dan menghasilkan item konfigurasi untuk setiap sumber daya. AWS Config juga menghasilkan item konfigurasi saat konfigurasi sumber daya berubah, dan menyimpan catatan historis item konfigurasi sumber daya Anda sejak Anda memulai perekam konfigurasi. Secara default, AWS Config membuat item konfigurasi untuk setiap sumber daya yang didukung di file Wilayah AWS. Jika Anda tidak AWS Config ingin membuat item konfigurasi untuk semua sumber daya yang didukung, Anda dapat menentukan jenis sumber daya yang ingin dilacak.

Bagaimana AWS Config dan Aturan AWS Config terkait dengan AWS Security Hub?

AWS Security Hub adalah layanan keamanan dan kepatuhan yang menyediakan manajemen postur keamanan dan kepatuhan sebagai layanan. Ia menggunakan AWS Config dan Aturan AWS Config sebagai mekanisme utamanya untuk mengevaluasi konfigurasi sumber AWS daya. Aturan AWS Config juga dapat digunakan untuk mengevaluasi konfigurasi sumber daya secara langsung. Lainnya Layanan AWS, seperti AWS Control Tower dan AWS Firewall Manager, juga digunakan Aturan AWS Config.