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 diam mencakup penyimpanan yang mendasari untuk instans DB, lognya, pencadangan otomatis, replika baca, dan snapshot.

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

Setelah data Anda dienkripsi, Amazon RDS 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 DB terenkripsi dan tidak terenkripsi contoh, data yang sedang transit antara sumber dan replika baca dienkripsi, bahkan saat mereplikasi di seluruh AWS Wilayah.

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 batasan enkripsi, lihat Ketersediaan Amazon RDS enkripsi dan Pembatasan 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 pengidentifikasi kunci untuk kunci yang dikelola pelanggan, Amazon RDS menggunakan Kunci yang dikelola AWS untuk instance DB baru Anda. Amazon RDS membuat Kunci yang dikelola AWS untuk Amazon RDS untuk Anda AWS akun. Anda AWS akun memiliki yang berbeda Kunci yang dikelola AWS untuk Amazon RDS untuk masing-masing AWS Wilayah.

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

Menggunakan AWS KMS, Anda dapat membuat kunci yang dikelola 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 Anda dengan Amazon Aurora dan didukung AWS layanan seperti Amazon S3, Amazon EBS, dan Amazon Redshift. Untuk daftar layanan yang terintegrasi dengan AWS KMS, lihat AWS Integrasi Layanan. Beberapa pertimbangan tentang menggunakan 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, buat snapshot manual instans Anda dan aktifkan enkripsi saat menyalin snapshot. Untuk informasi lebih lanjut, lihat Re:post Artikel Pengetahuan.

    Anda juga dapat menggunakan a blue/green penyebaran untuk membuat lingkungan hijau yang dienkripsi dengan kunci KMS yang berbeda dari lingkungan biru. Gunakan penerapan ini untuk mengenkripsi instance DB yang tidak dienkripsi atau untuk mengubah kunci KMS dari instans DB terenkripsi. Untuk informasi lebih lanjut 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 instance DB sumber atau dengan kunci KMS yang berbeda. Replika baca bisa sama AWS Wilayah sebagai sumber atau yang berbeda. Untuk menggunakan kunci KMS yang berbeda, tentukan dengan KmsKeyId parameter dari CreateDBInstanceReadReplica Operasi API, atau --kms-key-id pilihan dari buat-db-instance-baca-replika AWS CLI perintah. 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 diciptakan. Untuk replika baca dalam bentuk yang berbeda AWS Wilayah, tentukan kunci KMS di Wilayah tujuan.

  • Anda tidak dapat membagikan snapshot yang telah dienkripsi menggunakan Kunci yang dikelola AWS dari AWS akun 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 instance DB saat Anda menonaktifkan kunci KMS. Jika Anda kehilangan akses ke kunci KMS, instance DB terenkripsi masuk ke inaccessible-encryption-credentials-recoverable menyatakan 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 instance DB selama waktu ini mungkin tidak berhasil. Untuk memulihkan instance DB, aktifkan kunci KMS dan mulai ulang instance DB ini. Aktifkan kunci KMS dari Konsol Manajemen AWS, AWS CLI, atau API RDS. Mulai ulang instance DB menggunakan AWS CLI komando start-db-instance atau Konsol Manajemen AWS.

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

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

Selama pembuatan instance DB, Amazon RDS memeriksa apakah kepala pemanggil memiliki akses ke kunci KMS dan menghasilkan hibah dari kunci KMS yang digunakan untuk seluruh masa pakai instance DB. Mencabut akses kepala pemanggil 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 instance DB dari snapshot tanpa menentukan kunci KMS yang berbeda, instance baru menggunakan kunci KMS dari akun sumber. Mencabut akses ke kunci setelah Anda membuat instance DB tidak memengaruhi instance. Namun, menonaktifkan kunci berdampak pada semua instans DB yang dienkripsi dengan kunci tersebut. Untuk mencegah hal ini, tentukan kunci yang berbeda selama operasi penyalinan snapshot.

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

Sebuah instance DB di inaccessible-encryption-credentials status tidak dapat dipulihkan di tempat, jadi Amazon RDS secara otomatis membuat snapshot DB akhir saat instance DB beralih ke status ini. Ini mirip dengan snapshot akhir yang dapat Anda minta saat menghapus instans DB.

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

Snapshot akhir dipertahankan sampai Anda menghapusnya, dan dikenakan biaya penyimpanan cadangan dengan cara yang sama seperti snapshot DB manual. Karena biaya terus 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 instance DB bertransisi ke inaccessible-encryption-credentials menyatakan dalam salah satu situasi berikut:

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

  • Instans DB tetap berada di inaccessible-encryption-credentials-recoverable keadaan selama tujuh hari tanpa pulih.

  • Instans DB memerlukan operasi yang tidak dapat diselesaikan oleh Amazon RDS 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 terlampir. Instans DB tanpa penyimpanan terlampir, seperti yang gagal selama pembuatan atau sudah dihapus, tidak memiliki data untuk diambil.

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

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

    • Sedang diciptakan

    • Dipulihkan dari snapshot atau cadangan DB

    • Sedang bermigrasi

    • Memiliki log transaksi diputar ulang

    • Ditambal secara offline sebagai bagian dari pemulihan

    • Dipersiapkan atau dikonfigurasi sebagai replika baca

Pencadangan otomatis tidak perlu diaktifkan. Amazon RDS juga membuat snapshot akhir untuk instans DB di AWS Pos terdepan, 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 pulihkan snapshot seperti yang Anda lakukan pada snapshot DB lainnya. Untuk daftar lengkap parameter, lihat pulihkan instance-db-dari-db-snapshot di AWS CLI Referensi Perintah.

contoh Memulihkan instance 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, aktifkan 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 buat-db-instance AWS CLI perintah untuk membuat instance DB terenkripsi, atur --storage-encrypted parameter. Jika Anda menggunakan operasi API CreateDBInstance, atur parameter StorageEncrypted ke benar.

Jika Anda menggunakan AWS CLI create-db-instance perintah untuk membuat instance DB terenkripsi dengan kunci yang dikelola pelanggan, atur --kms-key-id parameter untuk 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 tempat lain AWS akun, tentukan kunci ARN atau alias ARN.

Menentukan apakah enkripsi untuk instans DB diaktifkan

Anda dapat menggunakan Konsol Manajemen AWS, AWS CLI, atau API RDS untuk menentukan apakah enkripsi saat diam diaktifkan untuk instance 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 diam untuk instance DB.

Untuk menentukan apakah enkripsi saat diam diaktifkan untuk instans DB dengan menggunakan AWS CLI, panggil deskripsi-db-instance perintah 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 mengalir melintasi Wilayah AWS di atas AWS jaringan global secara otomatis dienkripsi pada lapisan fisik sebelum pergi AWS fasilitas yang aman. Semua lalu lintas antara AZ akan dienkripsi. Lapisan enkripsi tambahan, termasuk yang tercantum di bagian ini dapat memberikan perlindungan tambahan.

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

Semua lalu lintas lintas Wilayah yang menggunakan Amazon VPC dan Transit Gateway peering secara otomatis dienkripsi secara massal saat keluar dari suatu Wilayah. Lapisan tambahan enkripsi secara otomatis disediakan di lapisan fisik untuk semua lalu lintas sebelum pergi AWS fasilitas yang 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 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 yang lain, Anda harus menentukan kunci KMS di tujuan AWS Wilayah. Ini karena kunci KMS khusus untuk AWS Wilayah tempat mereka diciptakan.

    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.