View a markdown version of this page

Mengenkripsi Amazon RDS sumber daya - Amazon Relational Database Service

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

Mengenkripsi Amazon RDS sumber daya

Amazon RDS dapat mengenkripsi instans Amazon RDS DB Anda. Data yang dienkripsi saat istirahat mencakup penyimpanan yang mendasari untuk instans DB, lognya, pencadangan otomatis, replika baca, dan snapshot.

Instans DB terenkripsi Amazon RDS menggunakan algoritme AES-256 enkripsi standar industri untuk mengenkripsi data Anda di server yang menghosting instans Amazon RDS DB Anda.

Setelah data Anda dienkripsi, Amazon RDS Amazon menangani otentikasi akses dan dekripsi data Anda secara transparan dengan dampak minimal pada kinerja. Anda tidak perlu memodifikasi aplikasi klien basis data untuk menggunakan enkripsi.

catatan

Untuk instans DB terenkripsi dan tidak terenkripsi, data yang sedang transit antara sumber dan replika baca dienkripsi, bahkan saat mereplikasi di seluruh Wilayah. AWS

Ikhtisar mengenkripsi sumber daya Amazon RDS

Instans DB terenkripsi Amazon RDS memberikan lapisan perlindungan data tambahan dengan mengamankan data Anda dari akses yang tidak sah ke penyimpanan yang mendasari. Anda dapat menggunakan enkripsi Amazon RDS untuk meningkatkan perlindungan data di aplikasi Anda yang di-deploy di cloud, dan untuk memenuhi persyaratan kepatuhan enkripsi diam. Untuk instans DB terenkripsi Amazon RDS, semua log, cadangan, dan snapshot akan dienkripsi. Untuk informasi selengkapnya tentang ketersediaan dan keterbatasan enkripsi, lihat Ketersediaan Amazon RDS enkripsi danPembatasan Amazon RDS DB terenkripsi Instans.

Amazon RDS menggunakan AWS Key Management Service kunci untuk mengenkripsi sumber daya ini. AWS KMS menggabungkan perangkat keras dan perangkat lunak yang aman dan sangat tersedia untuk menyediakan sistem manajemen kunci yang diskalakan untuk cloud. Anda dapat menggunakan Kunci yang dikelola AWS, atau Anda dapat membuat kunci yang dikelola pelanggan.

Saat membuat instans DB terenkripsi, Anda bisa memilih kunci yang dikelola pelanggan atau Kunci yang dikelola AWS untuk Amazon RDS untuk mengenkripsi instans DB. Jika Anda tidak menentukan pengenal kunci untuk kunci yang dikelola pelanggan, Amazon RDS menggunakan Kunci yang dikelola AWS untuk instans DB baru Anda. Amazon RDS membuat RDS Kunci yang dikelola AWS untuk Amazon untuk akun Anda AWS . AWS Akun Anda memiliki RDS Amazon yang berbeda Kunci yang dikelola AWS untuk setiap AWS Wilayah.

Untuk mengelola kunci terkelola pelanggan yang digunakan untuk mengenkripsi dan mendekripsi sumber daya Amazon RDS, Anda menggunakan ().AWS Key Management ServiceAWS KMS

Dengan menggunakan AWS KMS, Anda dapat membuat kunci terkelola pelanggan dan menentukan kebijakan yang mengontrol penggunaan kunci yang dikelola pelanggan ini. AWS KMS mendukung CloudTrail, sehingga Anda dapat mengaudit penggunaan kunci KMS untuk memverifikasi bahwa kunci yang dikelola pelanggan digunakan dengan tepat. Anda dapat menggunakan kunci yang dikelola pelanggan dengan Amazon Aurora dan AWS layanan yang didukung seperti Amazon S3, Amazon EBS, dan Amazon Redshift. Untuk daftar layanan yang terintegrasi dengannya AWS KMS, lihat Integrasi AWS Layanan. Beberapa pertimbangan tentang penggunaan kunci KMS:

  • Setelah membuat instans DB terenkripsi, Anda tidak dapat mengubah kunci KMS yang digunakan oleh instans DB tersebut. Oleh karena itu, tentukan persyaratan kunci KMS sebelum membuat instans DB terenkripsi.

    Jika Anda harus mengubah kunci enkripsi untuk instans DB Anda, buat snapshot manual instance Anda dan aktifkan enkripsi saat menyalin snapshot. Untuk informasi lebih lanjut, lihat artikel Re:Post Knowledge.

    Anda juga dapat menggunakan blue/green penerapan untuk membuat lingkungan hijau yang dienkripsi dengan kunci KMS yang berbeda dari lingkungan biru. Gunakan penerapan ini untuk mengenkripsi instans DB yang tidak terenkripsi atau untuk mengubah kunci KMS dari instans DB terenkripsi. Untuk informasi selengkapnya tentang blue/green penerapan, lihat. Keterbatasan dan pertimbangan untuk Amazon RDS blue/green penyebaran

  • Jika Anda menyalin snapshot terenkripsi, Anda dapat menggunakan kunci KMS yang berbeda untuk mengenkripsi snapshot target, bukan yang digunakan untuk mengenkripsi snapshot sumber.

  • Anda dapat mengenkripsi replika baca instans DB terenkripsi Amazon RDS dengan kunci KMS yang sama dengan instans DB sumber atau dengan kunci KMS yang berbeda. Replika baca dapat berada di AWS Wilayah yang sama dengan sumbernya atau di wilayah yang berbeda. Untuk menggunakan kunci KMS yang berbeda, tentukan dengan KmsKeyId parameter operasi CreateDBInstanceReadReplicaAPI, atau --kms-key-id opsi perintah AWS CLI create-db-instance-read-replica. Jika Anda tidak menentukan kunci KMS, replika baca menggunakan kunci KMS yang sama dengan instance DB sumber.

  • Kunci KMS khusus untuk AWS Wilayah tempat mereka dibuat. Untuk replika baca di AWS Wilayah yang berbeda, tentukan kunci KMS di Wilayah tujuan.

  • Anda tidak dapat membagikan snapshot yang telah dienkripsi menggunakan AWS akun Kunci yang dikelola AWS yang membagikan snapshot.

  • Amazon RDS juga mendukung enkripsi instans Oracle atau SQL Server DB dengan Enkripsi Data Transparan (TDE). TDE dapat digunakan dengan enkripsi diam RDS, meski menggunakan enkripsi TDE dan RDS secara bersamaan dapat sedikit memengaruhi performa basis data Anda. Anda harus mengelola kunci yang berbeda untuk setiap metode enkripsi. Untuk informasi selengkapnya tentang TDE, lihat Enkripsi Data Transparan Oracle atau Dukungan untuk Enkripsi Data Transparan di SQL Server.

penting

Amazon RDS kehilangan akses ke kunci KMS untuk instans DB saat Anda menonaktifkan kunci KMS. Jika Anda kehilangan akses ke kunci KMS, instans DB terenkripsi masuk ke inaccessible-encryption-credentials-recoverable status 2 jam setelah deteksi dalam kasus di mana cadangan diaktifkan. Instans DB tetap dalam keadaan ini selama tujuh hari, di mana instance dihentikan. Panggilan API yang dilakukan ke instans DB selama waktu ini mungkin tidak berhasil. Untuk memulihkan instans DB, aktifkan kunci KMS dan restart instance DB ini. Aktifkan kunci KMS dari Konsol Manajemen AWS, AWS CLI, atau RDS API. Mulai ulang instance DB menggunakan AWS CLI perintah start-db-instance atau. Konsol Manajemen AWS

inaccessible-encryption-credentials-recoverableStatus hanya berlaku untuk instans DB yang dapat berhenti. Status yang dapat dipulihkan ini tidak berlaku untuk instance yang tidak dapat berhenti, seperti replika baca dan instance dengan replika baca. Untuk informasi selengkapnya, lihat Batasan untuk menghentikan instans DB Anda.

Jika instans DB tidak dipulihkan dalam waktu tujuh hari, itu masuk ke inaccessible-encryption-credentials status terminal. Dalam keadaan ini, instans DB tidak lagi dapat digunakan dan Anda hanya dapat mengembalikannya dari snapshot atau cadangan DB.

Selama pembuatan instans DB, Amazon RDS memeriksa apakah prinsipal panggilan memiliki akses ke kunci KMS dan menghasilkan hibah dari kunci KMS yang digunakannya selama masa pakai instans DB. Mencabut akses prinsipal panggilan ke kunci KMS tidak mempengaruhi database yang sedang berjalan. Saat menggunakan kunci KMS dalam skenario lintas akun, seperti menyalin snapshot ke akun lain, kunci KMS perlu dibagikan dengan akun lain. Jika Anda membuat instans DB dari snapshot tanpa menentukan kunci KMS yang berbeda, instance baru menggunakan kunci KMS dari akun sumber. Mencabut akses ke kunci setelah Anda membuat instans DB tidak memengaruhi instance. Namun, menonaktifkan kunci memengaruhi semua instans DB yang dienkripsi dengan kunci itu. Untuk mencegah hal ini, tentukan kunci yang berbeda selama operasi penyalinan snapshot.

Instans DB dengan cadangan yang dinonaktifkan tetap tersedia hingga volume terlepas dari host selama modifikasi instans atau pemulihan. RDS memindahkan instance ke inaccessible-encryption-credentials-recoverable status atau inaccessible-encryption-credentials status sebagaimana berlaku.

Instans DB dalam inaccessible-encryption-credentials status tidak dapat dipulihkan di tempatnya, sehingga Amazon RDS secara otomatis membuat snapshot DB akhir saat instans DB bertransisi ke status ini. Ini mirip dengan snapshot akhir yang dapat Anda minta saat Anda menghapus instans DB.

Snapshot menangkap data yang ditulis setelah pencadangan otomatis terbaru Anda. Ini termasuk penulisan yang dibuat sementara kunci KMS tidak dapat diakses. Anda dapat menggunakan snapshot untuk memulihkan data yang jika tidak akan hilang. Amazon RDS membuatnya sebagai snapshot DB manual bernamards-final:db-instance-identifier-resource-id, dan muncul di samping snapshot DB Anda yang lain.

Snapshot terakhir dipertahankan sampai Anda menghapusnya, dan menimbulkan biaya penyimpanan cadangan dengan cara yang sama seperti snapshot DB manual. Karena tagihan berlanjut hingga Anda menghapusnya, hapus snapshot segera setelah Anda tidak lagi membutuhkannya. Untuk informasi selengkapnya, lihat Harga Amazon RDS.

Amazon RDS mencoba membuat snapshot akhir saat instans DB bertransisi ke inaccessible-encryption-credentials status dalam salah satu situasi berikut:

  • Kunci KMS menjadi tidak dapat diakses dan instans DB tidak dapat dihentikan, sehingga bergerak langsung ke status. inaccessible-encryption-credentials Situasi ini mencakup replika baca dan instance DB yang telah membaca replika.

  • Instans DB tetap dalam inaccessible-encryption-credentials-recoverable keadaan selama tujuh hari tanpa dipulihkan.

  • Instans DB memerlukan operasi yang Amazon RDS tidak dapat menyelesaikan karena kunci KMS tidak dapat diakses. Contohnya termasuk mengganti host yang mendasarinya dan penyimpanan penskalaan.

Amazon RDS membuat snapshot akhir hanya jika semua hal berikut benar untuk instans DB:

  • Instans DB memiliki volume data yang terpasang. Instans DB tanpa penyimpanan terlampir, seperti yang gagal selama pembuatan atau sudah dihapus, tidak memiliki data untuk ditangkap.

  • Instans DB bukan anggota cluster Multi-AZ DB atau cluster Aurora DB. Ini menggunakan cadangan tingkat cluster alih-alih snapshot instance individual.

  • Data instans DB lengkap dan tidak berubah. Amazon RDS tidak membuat snapshot akhir saat instans DB berada di salah satu status berikut:

    • Diciptakan

    • Dipulihkan dari snapshot atau cadangan DB

    • Bermigrasi

    • Memiliki log transaksi diputar ulang

    • Ditambal secara offline sebagai bagian dari pemulihan

    • Sedang dipersiapkan atau dikonfigurasi sebagai replika baca

Pencadangan otomatis tidak perlu dihidupkan. Amazon RDS juga membuat snapshot akhir untuk instans DB di AWS Outposts, dan untuk instans DB di status terminal lain selama penyimpanannya utuh.

Untuk memulihkan dari snapshot akhir, pertama-tama aktifkan kembali kunci KMS, karena snapshot dienkripsi dengan kunci yang sama dengan instance DB sumber. Untuk informasi selengkapnya, lihat AWS KMS key manajemen. Kemudian kembalikan snapshot seperti yang Anda lakukan pada snapshot DB lainnya. Untuk daftar lengkap parameter, lihat restore-db-instance-from-db-snapshot di Referensi Perintah.AWS CLI

contoh Kembalikan instans DB dari snapshot DB akhir

Untuk Linux, macOS, atau Unix:

aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier mydb-restored \ --db-snapshot-identifier rds-final:mydb-db-abcdefghijklmnop

Untuk Windows:

aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifier mydb-restored ^ --db-snapshot-identifier rds-final:mydb-db-abcdefghijklmnop

Meskipun pencadangan otomatis tidak diperlukan, nyalakan untuk instans DB terenkripsi sehingga pemulihan point-in-time tersedia selain snapshot akhir.

Untuk informasi selengkapnya tentang kunci KMS, lihat AWS KMS keys di Panduan Developer AWS Key Management Service dan AWS KMS key manajemen.

Mengenkripsi instans DB

Untuk mengenkripsi instans DB baru, pilih Aktifkan enkripsi di konsol Amazon RDS. Untuk informasi tentang pembuatan instans DB, lihat Membuat instans DB Amazon RDS.

Jika Anda menggunakan AWS CLI perintah create-db-instance untuk membuat instance DB terenkripsi, atur parameternya. --storage-encrypted Jika Anda menggunakan operasi API CreateDBInstance, atur parameter StorageEncrypted ke benar.

Jika Anda menggunakan AWS CLI create-db-instance perintah untuk membuat instans DB terenkripsi dengan kunci yang dikelola pelanggan, setel --kms-key-id parameter ke pengidentifikasi kunci apa pun untuk kunci KMS. Jika Anda menggunakan operasi CreateDBInstance Amazon RDS API, atur parameter KmsKeyId ke pengidentifikasi kunci mana pun untuk kunci KMS. Untuk menggunakan kunci yang dikelola pelanggan di AWS akun yang berbeda, tentukan kunci ARN atau alias ARN.

Menentukan apakah enkripsi untuk instans DB diaktifkan

Anda dapat menggunakan Konsol Manajemen AWS, AWS CLI, atau RDS API untuk menentukan apakah enkripsi saat istirahat diaktifkan untuk instans DB.

Untuk menentukan apakah enkripsi diam untuk instans DB diaktifkan
  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  2. Di panel navigasi, pilih Basis data.

  3. Pilih nama instans DB yang ingin Anda periksa untuk melihat detailnya.

  4. Pilih tab Konfigurasi, dan periksa nilai Enkripsi di bagian Penyimpanan.

    Akan muncul Diaktifkan atau Tidak diaktifkan.

    Memeriksa enkripsi saat istirahat untuk instance DB.

Untuk menentukan apakah enkripsi saat istirahat diaktifkan untuk instance DB dengan menggunakan AWS CLI, panggil perintah describe-db-instance dengan opsi berikut:

  • --db-instance-identifier – Nama instans DB.

Contoh berikut ini menggunakan kueri untuk mengembalikan TRUE atau FALSE mengenai enkripsi diam untuk instans DB mydb.

contoh
aws rds describe-db-instances --db-instance-identifier mydb --query "*[].{StorageEncrypted:StorageEncrypted}" --output text

Untuk menentukan apakah enkripsi diam untuk instans DB diaktifkan menggunakan Amazon RDS API, panggil operasi DescribeDBInstances dengan parameter berikut:

  • DBInstanceIdentifier – Nama instans DB.

Ketersediaan Amazon RDS enkripsi

Enkripsi Amazon RDS saat ini tersedia untuk semua jenis mesin basis data dan penyimpanan.

Enkripsi Amazon RDS tersedia untuk sebagian besar kelas instans DB. Tabel berikut mencantumkan kelas instans DB yang tidak mendukung enkripsi Amazon RDS:

Tipe instans Kelas instans

Tujuan umum (M1)

db.m1.small

db.m1.medium

db.m1.large

db.m1.xlarge

Memori dioptimalkan (M2)

db.m2.xlarge

db.m2.2xlarge

db.m2.4xlarge

Burstable (T2)

db.t2.micro

Enkripsi saat bergerak

Enkripsi pada lapisan fisik

Semua data yang mengalir Wilayah AWS melalui jaringan AWS global secara otomatis dienkripsi pada lapisan fisik sebelum meninggalkan fasilitas yang aman. AWS Semua lalu lintas antara AZ akan dienkripsi. Lapisan enkripsi tambahan, termasuk yang tercantum dalam bagian ini dapat memberikan perlindungan tambahan.

Enkripsi disediakan oleh peering VPC Amazon dan pengintipan lintas wilayah Gateway Transit

Semua lalu lintas lintas Wilayah yang menggunakan Amazon VPC dan Transit Gateway peering secara otomatis dienkripsi secara massal saat keluar dari suatu Wilayah. Lapisan enkripsi tambahan secara otomatis disediakan di lapisan fisik untuk semua lalu lintas sebelum meninggalkan fasilitas yang AWS aman.

Enkripsi antar instance

AWS menyediakan konektivitas aman dan pribadi antara instans DB dari semua jenis. Selain itu, beberapa tipe instans menggunakan kemampuan offload dari perangkat keras Nitro System yang mendasarinya untuk secara otomatis mengenkripsi lalu lintas dalam transit antar instans. Enkripsi ini menggunakan algoritma Authenticated Encryption with Associated Data (AEAD), dengan enkripsi 256-bit. Tidak ada dampak terhadap performa jaringan. Untuk mendukung enkripsi lalu lintas dalam transit tambahan ini antara instans, persyaratan-persyaratan berikut harus dipenuhi:

  • Instans-instans tersebut menggunakan tipe instans berikut:

    • Tujuan umum: M6i, M6iD, M6in, M6idn, M7g

    • Memori yang dioptimalkan: R6i, R6id, R6in, R6idn, R7g, X2idn, X2IEDN, X2IEZN

  • Contohnya sama Wilayah AWS.

  • Instans-instans tersebut berada dalam VPC yang sama atau VPC yang di-peering yang sama, dan lalu lintas tidak melewati perangkat atau layanan jaringan virtual, seperti penyeimbang beban atau gateway transit.

Pembatasan Amazon RDS DB terenkripsi Instans

Berikut batasan pada instans DB terenkripsi Amazon RDS:

  • Anda hanya dapat mengenkripsi instans DB Amazon RDS selama proses pembuatannya, bukan setelah instans DB tersebut selesai dibuat.

    Namun, karena Anda dapat mengenkripsi salinan snapshot yang tidak dienkripsi, Anda dapat menambahkan enkripsi secara efektif ke instans DB yang tidak terenkripsi. Artinya, Anda dapat membuat snapshot instans DB, lalu membuat salinan terenkripsi dari snapshot tersebut. Anda kemudian dapat memulihkan instans DB dari snapshot terenkripsi untuk menghasilkan salinan terenkripsi dari instans DB asli. Untuk informasi selengkapnya, lihat Menyalin snapshot DB untuk Amazon RDS.

  • Anda tidak dapat menonaktifkan enkripsi pada instans DB terenkripsi.

  • Anda tidak dapat membuat snapshot terenkripsi dari instans DB yang tidak terenkripsi.

  • Snapshot instans DB terenkripsi harus dienkripsi menggunakan kunci KMS yang sama dengan instans DB.

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

  • Replika baca terenkripsi harus dienkripsi dengan kunci KMS yang sama dengan instans DB sumber ketika keduanya berada di Wilayah AWS yang sama.

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

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

    Tangkapan layar sumber tetap terenkripsi selama proses penyalinan. Amazon RDS menggunakan enkripsi amplop untuk melindungi data selama proses penyalinan. Untuk informasi selengkapnya tentang enkripsi amplop, lihat Enkripsi amplop di Panduan Developer AWS Key Management Service .

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