Keselamatan RDS: Penyulitan dan Kumpulan Parameter
Sulitkan RDS semasa disimpan dengan KMS, kawal penyulitan pada tahap sambungan menggunakan kumpulan parameter dan lindunginya dengan pengesahan IAM.
Keselamatan RDS: Penyulitan dan Kumpulan Parameter ialah pelajaran AWS Solutions Architect percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran AWS Solutions Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Penyulitan RDS Semasa Rehat
RDS menyokong penyulitan semasa rehat menggunakan AWS Key Management Service (KMS). Apabila anda mendayakan penyulitan semasa penciptaan instans DB, semua data pada volum EBS asas, sandaran automatik, petikan dan Read Replicas akan disulitkan menggunakan kunci KMS yang ditentukan.
Penyulitan mesti didayakan semasa penciptaan—anda tidak boleh menyulitkan instans tidak disulitkan yang sedia ada di tempatnya. Penyelesaiannya ialah mengambil petikan tidak disulitkan, menyalinnya dengan penyulitan didayakan dan memulihkannya daripada petikan yang disulitkan. Kunci KMS boleh berupa kunci terurus AWS atau Customer-Managed Key (CMK) untuk kawalan dan audit tambahan.
# Create an encrypted RDS instance
aws rds create-db-instance \
--db-instance-identifier mydb-encrypted \
--engine mysql \
--db-instance-class db.t3.micro \
--master-username admin \
--master-user-password MyPass123! \
--allocated-storage 20 \
--storage-encrypted \
--kms-key-id arn:aws:kms:us-east-1:123456789:key/my-key-idMenyulitkan Instance RDS Sedia Ada yang Tidak Disulitkan
Memandangkan anda tidak boleh mengaktifkan penyulitan pada instance sedia ada, ikuti laluan migrasi ini:
- Cipta petikan manual bagi instance yang tidak disulitkan
- Salin petikan tersebut dan aktifkan penyulitan semasa penyalinan, dengan menyatakan kunci KMS
- Pulihkan instance DB baharu daripada petikan yang disulitkan
- Kemas kini titik akhir aplikasi anda kepada instance baharu
- Padamkan instance lama yang tidak disulitkan
Pendekatan ini menyebabkan sedikit masa henti melainkan anda menggunakan DMS untuk memastikan instance baharu yang disulitkan disegerakkan sebelum pertukaran dibuat.
# Copy snapshot with encryption enabled
aws rds copy-db-snapshot \
--source-db-snapshot-identifier mydb-unencrypted-snap \
--target-db-snapshot-identifier mydb-encrypted-snap \
--kms-key-id alias/aws/rdsPenyulitan Data dalam Transit dengan SSL/TLS
RDS menyulitkan data dalam transit menggunakan SSL/TLS. Setiap enjin menyediakan sijil CA yang boleh dimuat turun, yang digunakan oleh pemacu klien anda untuk mengesahkan identiti pelayan. Untuk menguatkuasakan sambungan SSL, konfigurasikan enjin pangkalan data supaya menolak sambungan yang tidak disulitkan.
Untuk MySQL, tetapkan parameter require_secure_transport = ON dalam kumpulan parameter. Untuk PostgreSQL, tetapkan ssl = 1 dan secara pilihan rds.force_ssl = 1 untuk menolak semua sambungan bukan SSL sepenuhnya. Banyak pemacu pangkalan data Java dan Python juga menerima parameter rentetan sambungan sslmode=require.
# Connect to RDS MySQL over SSL
mysql -h mydb.abcd1234.us-east-1.rds.amazonaws.com \
-u admin -p \
--ssl-ca=rds-ca-2019-root.pem \
--ssl-verify-server-certKumpulan Parameter: Apakah Fungsinya?
Kumpulan parameter ialah koleksi bernama yang mengandungi tetapan konfigurasi enjin dan dilampirkan pada instance RDS. Kumpulan ini setara dengan menyunting my.cnf pada MySQL atau postgresql.conf pada PostgreSQL, tetapi diurus oleh AWS dan mempunyai versi mengikut keluarga enjin.
AWS menyediakan kumpulan parameter lalai untuk setiap versi enjin, tetapi tetapan di dalamnya tidak boleh disunting. Untuk menyesuaikan parameter, cipta kumpulan parameter tersuai, ubah parameter yang dikehendaki dan kaitkannya dengan instance DB anda. Perubahan pada parameter statik memerlukan mula semula; parameter dinamik berkuat kuasa serta-merta.
# Create a custom parameter group
aws rds create-db-parameter-group \
--db-parameter-group-name my-mysql8-params \
--db-parameter-group-family mysql8.0 \
--description 'Custom MySQL 8.0 parameters'Mengubah Tetapan Kumpulan Parameter
Selepas mencipta kumpulan parameter tersuai, anda mengubah parameter individu menggunakan perintah CLI modify-db-parameter-group atau konsol. Parameter mempunyai kaedah penggunaan: immediate (berkuat kuasa tanpa mula semula) atau pending-reboot (hanya berkuat kuasa selepas instance dimulakan semula).
Parameter penting yang perlu diketahui untuk peperiksaan: max_connections (mengehadkan sambungan serentak), innodb_buffer_pool_size (saiz cache dalam memori MySQL), log_bin_trust_function_creators (membenarkan fungsi tersimpan yang menulis ke log binari) dan rds.force_ssl (memaksa SSL untuk PostgreSQL).
# Force SSL in a PostgreSQL parameter group
aws rds modify-db-parameter-group \
--db-parameter-group-name my-postgres-params \
--parameters 'ParameterName=rds.force_ssl,ParameterValue=1,ApplyMethod=immediate'Kumpulan Pilihan untuk Ciri Tambahan
Kumpulan pilihan serupa dengan kumpulan parameter, tetapi mengawal ciri tambahan untuk enjin pangkalan data dan bukannya penalaan konfigurasi. Kumpulan ini digunakan terutamanya dengan Oracle dan SQL Server untuk mengaktifkan ciri seperti Oracle Application Express (APEX), SQL Server Transparent Data Encryption (TDE) atau pengesahan Active Directory SQL Server.
Setiap pilihan dalam kumpulan pilihan mungkin mempunyai tetapan tersendiri. Kumpulan pilihan mempunyai versi mengikut keluarga enjin dan mesti dikaitkan dengan instance DB. Kebanyakan enjin sumber terbuka (MySQL, PostgreSQL, MariaDB) jarang memerlukan kumpulan pilihan tersuai.
Pengesahan Pangkalan Data IAM
RDS menyokong pengesahan pangkalan data IAM untuk enjin MySQL dan PostgreSQL. Daripada menggunakan nama pengguna/kata laluan statik, aplikasi anda mengambil alih peranan IAM dan menjana token pengesahan sementara (sah selama 15 minit) menggunakan perintah AWS CLI generate-db-auth-token atau panggilan SDK.
Faedahnya termasuk tiada kata laluan pangkalan data jangka panjang, penggiliran kelayakan secara automatik melalui dasar IAM dan kawalan akses berpusat. Ciri ini memerlukan --enable-iam-database-authentication diaktifkan pada instance serta penciptaan pengguna pangkalan data yang dipetakan kepada peranan IAM.
# Generate an RDS IAM auth token
aws rds generate-db-auth-token \
--hostname mydb.abcd1234.us-east-1.rds.amazonaws.com \
--port 3306 \
--username mydbuser \
--region us-east-1Integrasi Secrets Manager dengan RDS
AWS Secrets Manager boleh menyimpan dan menggilrkan kata laluan utama RDS serta kelayakan aplikasi anda secara automatik. Apabila penggiliran diaktifkan, Secrets Manager memanggil fungsi Lambda yang mengemas kini kata laluan pangkalan data dan menyimpan nilai baharu dalam rahsia tersebut—aplikasi anda mendapatkan nilai rahsia terkini melalui API Secrets Manager, jadi kelayakannya sentiasa sah.
Semasa mencipta instance RDS dalam konsol, anda boleh memilih pengurusan kelayakan utama oleh Secrets Manager. Ini menghapuskan kata laluan yang dikodkan secara keras dalam kod atau pemboleh ubah persekitaran.
# Retrieve RDS credentials from Secrets Manager
aws secretsmanager get-secret-value \
--secret-id rds!db-1234abcd-5678-efgh-ijkl-mnopqrstuvwx \
--query SecretString \
--output text | python3 -m json.toolKawalan VPC dan Kumpulan Keselamatan
Instance RDS berjalan dalam VPC dan menggunakan kumpulan subnet DB untuk menentukan subnet (merentasi beberapa AZ) yang boleh menempatkan instance tersebut. Amalan terbaik ialah menempatkan RDS dalam subnet persendirian tanpa akses Internet secara langsung.
Kumpulan keselamatan mengawal alamat IP dan kumpulan keselamatan lain yang boleh mencapai port DB (contohnya, TCP 3306 untuk MySQL). Kumpulan keselamatan peringkat aplikasi hendaklah menjadi satu-satunya sumber yang dibenarkan pada kumpulan keselamatan RDS, sekali gus menguatkuasakan keistimewaan minimum pada peringkat rangkaian. Jangan sekali-kali konfigurasikan 0.0.0.0/0 (semua trafik) sebagai peraturan masuk pada kumpulan keselamatan RDS.
Pemantauan Dipertingkat dan Log Audit
Pemantauan Dipertingkat menerbitkan metrik peringkat OS (CPU, memori, sistem fail, I/O cakera) ke CloudWatch Logs setiap 1–60 saat, lalu memberikan perincian yang lebih halus berbanding metrik CloudWatch lalai setiap 60 saat. Ciri ini menggunakan ejen yang berjalan pada hos DB dan tersedia untuk semua enjin kecuali mod pencerminan SQL Server.
Log audit pangkalan data (log pertanyaan umum, log pertanyaan perlahan untuk MySQL; pgaudit untuk PostgreSQL) boleh diterbitkan ke CloudWatch Logs untuk analisis pematuhan. Aktifkan ciri ini melalui kumpulan parameter, kemudian konfigurasikan eksport log dalam konsol RDS di bawah Log exports.
# Enable PostgreSQL logs export to CloudWatch
aws rds modify-db-instance \
--db-instance-identifier mydb \
--cloudwatch-logs-export-configuration 'EnableLogTypes=[postgresql,upgrade]' \
--apply-immediatelyRingkasan Amalan Terbaik Keselamatan
Amalan terbaik keselamatan RDS utama untuk peperiksaan SAA-C03:
- Aktifkan penyulitan semasa rehat dengan CMK KMS semasa mencipta instance
- Paksa SSL/TLS dalam transit melalui tetapan kumpulan parameter
- Tempatkan instance dalam subnet persendirian dengan kumpulan keselamatan yang ketat
- Gunakan pengesahan pangkalan data IAM atau Secrets Manager untuk mengelakkan kata laluan statik
- Aktifkan CloudTrail untuk merekod panggilan API RDS dan CloudWatch Logs untuk log audit pangkalan data
- Gunakan peraturan AWS Config (contohnya,
rds-instance-public-access-check) untuk mengesan salah konfigurasi
Semakan Pantas
Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.
Rumusan Pelajaran
Dalam pelajaran ini anda telah mempelajari bahawa: penyulitan RDS semasa rehat menggunakan KMS dan mesti diaktifkan semasa penciptaan, kumpulan parameter mengawal konfigurasi enjin termasuk penguatkuasaan SSL/TLS dalam transit, dan pengesahan pangkalan data IAM serta Secrets Manager menghapuskan keperluan untuk kata laluan pangkalan data statik. Seterusnya kita akan meneroka jadual, item dan reka bentuk kunci utama DynamoDB.
Pelajari AWS Solutions Architect dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Keselamatan RDS: Penyulitan dan Kumpulan Parameter” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran AWS Solutions Architect, termasuk “Keselamatan RDS: Penyulitan dan Kumpulan Parameter”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Keselamatan RDS: Penyulitan dan Kumpulan Parameter”?
Sulitkan RDS semasa disimpan dengan KMS, kawal penyulitan pada tahap sambungan menggunakan kumpulan parameter dan lindunginya dengan pengesahan IAM. Anda berlatih AWS Solutions Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan AWS Solutions Architect?
Tiada pengalaman terdahulu diperlukan. Pembelajaran AWS Solutions Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Keselamatan RDS: Penyulitan dan Kumpulan Parameter” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran AWS Solutions Architect ini?
Ya. Setiap pelajaran AWS Solutions Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Enjin RDS dan Kelas Instance
- Multi-AZ dan Sandaran Automatik
- Replika Bacaan untuk Penskalaan Bacaan
- Keselamatan RDS: Penyulitan dan Kumpulan Parameter