Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Data yang disimpan di akun Azure Cosmos DB Anda dienkripsi secara otomatis dan lancar dengan kunci yang dikelola oleh Microsoft (kunci yang dikelola layanan). Secara opsional, Anda dapat memilih untuk menambahkan enkripsi lapisan kedua dengan kunci yang Anda kelola (kunci yang dikelola pelanggan atau CMK).
Anda harus menyimpan kunci yang dikelola pelanggan di Azure Key Vault dan menyediakan kunci untuk setiap akun Azure Cosmos DB yang diaktifkan dengan kunci yang dikelola pelanggan. Kunci ini digunakan untuk mengenkripsi semua data yang tersimpan di akun tersebut.
Catatan
Jika Anda ingin mengaktifkan kunci yang dikelola pelanggan di akun Azure Cosmos DB yang ada, lihat Mengonfigurasi kunci yang dikelola pelanggan untuk akun Azure Cosmos DB yang ada dengan Azure Key Vault.
Peringatan
Nama kolom berikut dicadangkan pada tabel Cassandra API di akun yang menggunakan Kunci yang dikelola oleh pelanggan:
idttl_ts_etag_rid_self_attachments_epk
Saat kunci yang dikelola pelanggan tidak diaktifkan, hanya nama bidang yang dimulai dengan __sys_ yang dicadangkan.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
Mendaftarkan penyedia sumber daya Azure Cosmos DB
Jika penyedia sumber daya Microsoft.DocumentDB belum terdaftar, Anda harus mendaftarkan penyedia ini sebagai langkah pertama.
Masuk ke portal Microsoft Azure, buka langganan Azure Anda, dan pilih Penyedia sumber daya di bawah tab Pengaturan :
Cari penyedia sumber daya Microsoft.DocumentDB . Pastikan bahwa penyedia sumber daya sudah ditandai sebagai terdaftar. Jika tidak, pilih penyedia sumber daya dan pilih Daftar:
Konfigurasi Instans Azure Key Vault
Penting
Instans Azure Key Vault Anda harus dapat diakses melalui akses jaringan publik atau mengizinkan layanan Microsoft tepercaya untuk melewati firewallnya. Instans yang dapat diakses secara eksklusif melalui titik akhir privat tidak dapat digunakan untuk menghosting kunci yang dikelola pelanggan Anda.
Sangat disarankan agar Sumber Daya Azure Key Vault yang dibuat memiliki replikasi data yang diaktifkan untuk memastikan ketersediaan berkelanjutan selama pemadaman regional yang tidak terduga.
Menggunakan kunci yang dikelola pelanggan dengan Azure Cosmos DB mengharuskan Anda mengatur dua properti pada instans Azure Key Vault yang Anda rencanakan untuk digunakan untuk menghosting kunci enkripsi Anda: Penghapusan Sementara dan Perlindungan Penghapusan Menyeluruh.
- Jika Anda membuat instans Azure Key Vault baru, aktifkan properti ini selama pembuatan:
- Jika Anda menggunakan instans Azure Key Vault yang sudah ada, Anda dapat memverifikasi bahwa properti ini diaktifkan dengan melihat bagian Properti di portal Microsoft Azure. Jika salah satu properti ini tidak diaktifkan, lihat bagian Mengaktifkan penghapusan lunak dan Mengaktifkan Perlindungan Penghapusan di salah satu artikel berikut ini:
- Cara menggunakan penghapusan sementara dengan PowerShell
- Cara menggunakan penghapusan sementara dengan Azure CLI
Pilih model keamanan pilihan
Setelah perlindungan penghapusan menyeluruh dan penghapusan sementara diaktifkan, pada tab kebijakan akses, Anda dapat memilih model izin pilihan Anda untuk digunakan. Kebijakan akses diatur secara default, tetapi kontrol akses berbasis peran Azure juga didukung.
Izin yang diperlukan harus diberikan agar Cosmos DB dapat menggunakan kunci enkripsi Anda. Langkah ini bervariasi tergantung pada apakah Azure Key Vault menggunakan kebijakan Akses atau kontrol akses berbasis peran.
Catatan
Penting untuk dicatat bahwa hanya satu model keamanan yang dapat aktif pada satu waktu, jadi tidak perlu menginisiasi kontrol akses berbasis peran jika Azure Key Vault diatur untuk menggunakan kebijakan akses dan sebaliknya.
Menambahkan kebijakan akses
Dalam variasi ini, gunakan prinsipal Azure Cosmos DB untuk membuat kebijakan akses dengan izin yang sesuai.
- Dari portal Microsoft Azure, buka instans Azure Key Vault yang Anda rencanakan untuk digunakan guna menghosting kunci enkripsi Anda. Pilih Kebijakan Akses dari menu sebelah kiri:
Pilih + Tambahkan Kebijakan Akses.
Pada menu drop-down Izin Kunci, pilih izin Get, Unwrap Key, dan Wrap Key:
Pada Pilih prinsipal, pilih Tidak dipilih.
Cari prinsipal Azure Cosmos DB dan pilih.
Tips
Ini mendaftarkan identitas pihak pertama Azure Cosmos DB dalam kebijakan akses Azure Key Vault Anda. Jika perwakilan Azure Cosmos DB tidak ada dalam daftar, Anda mungkin perlu mendaftarkan ulang penyedia sumber daya Microsoft.DocumentDB.
Pilih Pilih di bagian bawah.
Pilih Tambahkan untuk menambahkan kebijakan akses baru.
Pilih Simpan pada instans Key Vault untuk menyimpan semua perubahan.
Menambahkan peran kontrol akses berbasis peran
Dari portal Microsoft Azure, buka instans Azure Key Vault yang Anda rencanakan untuk digunakan guna menghosting kunci enkripsi Anda. Pilih Kontrol akses (IAM) dari menu sebelah kiri dan pilih Berikan akses ke sumber daya ini.
Cari peran Administrator Key Vault dan tetapkan sendiri. Penugasan ini dilakukan dengan terlebih dahulu mencari nama peran dari daftar lalu mengklik tab Anggota . Setelah berada di tab, pilih opsi Pengguna, grup, atau perwakilan layanan dari radio lalu cari akun Azure Anda. Setelah akun dipilih, peran dapat ditetapkan.
Kemudian, izin yang diperlukan harus ditetapkan ke perwakilan Cosmos DB. Sama seperti langkah-langkah penetapan peran terakhir, buka halaman penugasan, tetapi kali ini cari peran Pengguna Enkripsi Layanan Kripto Key Vault dan pada tab anggota cari prinsipal Cosmos DB. Untuk menemukan prinsipal, cari prinsipal Azure Cosmos DB dan pilih.
Pilih Tinjau dan tetapkan dan peran ditetapkan ke Cosmos DB.
Validasi bahwa peran diatur dengan benar
Selanjutnya, gunakan halaman kontrol akses untuk mengonfirmasi bahwa semua peran dikonfigurasi dengan benar.
Setelah peran ditetapkan, pilih Tampilkan akses ke sumber daya ini di halaman IAM Kontrol Akses untuk memverifikasi bahwa semuanya diatur dengan benar.
Pada halaman, atur cakupan ke sumber daya ini dan verifikasi bahwa Anda memiliki peran Administrator Key Vault, dan perwakilan Cosmos DB memiliki peran Pengguna Enkripsi Kripto Key Vault.
Membuat kunci di Azure Key Vault
Di sini, buat kunci baru menggunakan Azure Key Vault dan ambil pengidentifikasi unik.
Dari portal Microsoft Azure, buka instans Azure Key Vault yang Anda rencanakan untuk digunakan guna menghosting kunci enkripsi Anda. Kemudian, pilih Kunci dari menu sebelah kiri:
Pilih Buat/Impor, berikan nama untuk kunci baru, dan pilih ukuran kunci RSA. Minimal 3072 direkomendasikan untuk keamanan terbaik. Lalu pilih Buat:
Tips
Atau, Anda dapat menggunakan Azure CLI untuk menghasilkan kunci dengan:
az keyvault key create \ --vault-name <name-of-key-vault> \ --name <name-of-key>Untuk informasi selengkapnya tentang mengelola brankas kunci dengan Azure CLI, lihat mengelola Azure Key Vault dengan Azure CLI.
Setelah kunci dibuat, pilih kunci yang baru dibuat lalu versi saat ini.
Salin Pengidentifikasi Kunci dari kunci tersebut, kecuali bagian setelah garis miring terakhir:
Membuat akun Azure Cosmos DB baru
Buat akun Azure Cosmos DB baru menggunakan portal Azure atau Azure CLI.
Saat Anda membuat akun Azure Cosmos DB baru dari portal Microsoft Azure, pilih Kunci yang dikelola pelanggan di langkah Enkripsi . Di bidang URI Kunci , tempelkan pengidentifikasi URI/kunci kunci Azure Key Vault yang Anda salin dari langkah sebelumnya:
Penting
Bergantung pada konfigurasi jaringan, Anda mungkin perlu mengizinkan akses ke Azure Cosmos DB dari layanan Azure lainnya.
Menggunakan identitas terkelola dalam kebijakan akses Azure Key Vault
Kebijakan akses ini memastikan bahwa kunci enkripsi Anda dapat diakses oleh akun Azure Cosmos DB Anda. Kebijakan akses diterapkan dengan memberikan akses ke identitas Microsoft Entra tertentu. Dua jenis identitas didukung:
- Identitas pihak pertama Azure Cosmos DB dapat digunakan untuk memberikan akses ke layanan Azure Cosmos DB.
- Identitas terkelola akun Azure Cosmos DB Anda dapat digunakan untuk memberikan akses ke akun Anda secara khusus.
Tidak tersedia
Menggunakan kunci yang dikelola oleh pelanggan dengan pencadangan berkelanjutan.
Anda dapat membuat akun cadangan berkelanjutan dengan menggunakan Azure CLI atau templat ARM.
Saat ini, hanya identitas terkelola yang ditetapkan pengguna yang didukung untuk membuat akun cadangan berkala.
Setelah akun dibuat, Anda dapat memperbarui identitas ke identitas terkelola yang ditetapkan sistem.
Atau, pengguna juga dapat membuat identitas sistem dengan mode pencadangan berkala terlebih dahulu, lalu memigrasikan akun ke mode pencadangan berkelanjutan. Untuk langkah-langkah mendetail, lihat Memigrasikan akun Azure Cosmos DB dari mode pencadangan berkala ke berkelanjutan.
Tidak tersedia
Memulihkan akun berkelanjutan yang dikonfigurasi dengan identitas terkelola
Identitas yang ditetapkan pengguna diperlukan dalam permintaan pemulihan karena identitas terkelola akun sumber (identitas yang ditetapkan pengguna dan ditetapkan sistem) tidak dapat dibawa secara otomatis ke akun database target.
Kunci yang dikelola pelanggan dan enkripsi ganda
Data yang Anda simpan di akun Azure Cosmos DB Anda saat menggunakan kunci yang dikelola pelanggan pada akhirnya dienkripsi dua kali:
- Setelah melalui enkripsi default yang dilakukan dengan kunci yang dikelola Microsoft.
- Setelah melalui enkripsi tambahan yang dilakukan dengan kunci yang dikelola oleh pelanggan.
Enkripsi ganda hanya berlaku untuk penyimpanan transaksional Azure Cosmos DB utama. Beberapa fitur melibatkan replikasi internal data Anda ke penyimpanan tingkat kedua tempat enkripsi ganda tidak disediakan, bahkan dengan kunci yang dikelola pelanggan. Fitur ini mencakup:
Rotasi kunci
Memutar kunci yang dikelola pelanggan yang digunakan oleh akun Azure Cosmos DB Anda dapat dilakukan dengan dua cara.
Buat versi baru kunci yang saat ini digunakan dari Azure Key Vault:
Tukar kunci yang saat ini digunakan dengan kunci yang berbeda dengan memperbarui URI kunci di akun Anda. Dari portal Microsoft Azure, buka akun Azure Cosmos DB Anda dan pilih Enkripsi Data dari menu sebelah kiri:
Kemudian, ganti URI Kunci dengan kunci baru yang ingin Anda gunakan dan pilih Simpan:
Berikut cara mencapai hasil yang sama di PowerShell:
# Variable for resource group name $RESOURCE_GROUP_NAME = "<resource-group-name>" # Variable for account name $ACCOUNT_NAME = "<globally-unique-account-name>" # Variable for new key URI in the key vault $NEW_KEY_VAULT_KEY_URI="https://<key-vault-name>.vault.azure.net/keys/<new-key-name>" $parameters = @{ ResourceGroupName = $RESOURCE_GROUP_NAME Name = $ACCOUNT_NAME ResourceType = "Microsoft.DocumentDb/databaseAccounts" } $ACCOUNT = Get-AzResource @parameters $ACCOUNT.Properties.keyVaultKeyUri = $NEW_KEY_VAULT_KEY_URI $ACCOUNT | Set-AzResource -Force
Kunci atau versi kunci sebelumnya dapat dinonaktifkan setelah log audit Azure Key Vault tidak menampilkan aktivitas dari Azure Cosmos DB pada kunci atau versi kunci tersebut lagi. Tidak ada lagi aktivitas yang terjadi pada kunci atau versi kunci sebelumnya setelah 24 jam setelah rotasi kunci.
Autorotasi kunci di Azure Key Vault didukung selama kunci sebelumnya tidak dinonaktifkan atau dihapus. Sistem internal membutuhkan waktu untuk menyesuaikan dengan versi baru kunci setelah memvalidasi bahwa akun tidak dalam status dicabut atau dalam transisi untuk mengaktifkan kunci yang dikelola oleh pelanggan.
Penanganan kesalahan
Jika ada kesalahan dengan kunci yang dikelola pelanggan di Azure Cosmos DB, Azure Cosmos DB menampilkan detail kesalahan bersama dengan kode substatus HTTP dalam respons. Anda dapat menggunakan kode substatus HTTP untuk mendebug penyebab utama masalah. Untuk mendapatkan daftar kode substatus HTTP yang didukung, lihat Kode Status HTTP untuk Azure Cosmos DB.
Tanya jawab umum
Disertakan di sini adalah pertanyaan umum tentang menyiapkan kunci yang dikelola pelanggan di Azure Cosmos DB.
Apakah ada biaya tambahan untuk mengaktifkan kunci yang dikelola pelanggan?
Tidak, tidak ada biaya untuk mengaktifkan fitur ini.
Bagaimana kunci yang dikelola pelanggan memengaruhi perencanaan kapasitas?
Unit Permintaan (RU) yang digunakan oleh operasi database Anda melihat peningkatan untuk mencerminkan pemrosesan tambahan yang diperlukan untuk melakukan enkripsi dan dekripsi data Anda saat menggunakan kunci yang dikelola pelanggan. Konsumsi RU tambahan dapat menyebabkan pemanfaatan kapasitas yang disediakan sedikit lebih tinggi. Gunakan tabel ini untuk panduan:
| Jenis operasi | Permintaan Peningkatan Unit |
|---|---|
| Point-read (mengambil item-item berdasarkan ID mereka) | + 5% per operasi |
| Setiap operasi penulisan | + 6% per operasi | Sekitar + 0,06 RU per properti terindeks |
| Kueri, membaca umpan perubahan, atau umpan konflik | + 15% setiap operasi |
Data apa yang dienkripsi dengan kunci yang dikelola pelanggan?
Semua data yang disimpan di akun Azure Cosmos DB Anda dienkripsi dengan kunci yang dikelola pelanggan, kecuali untuk metadata berikut:
Nama akun, database, dan kontainer Azure Cosmos DB
Nama-nama prosedur tersimpan Anda
Jalur properti yang Anda deklarasikan dalam kebijakan pengindeksan
Nilai dari kunci partisi kontainer Anda
Apakah kunci yang dikelola pelanggan didukung untuk akun Azure Cosmos DB yang ada?
Ya. Untuk mempelajari selengkapnya, lihat Mengonfigurasi kunci yang dikelola pelanggan untuk akun Azure Cosmos DB yang sudah ada dengan Azure Key Vault.
Apakah ada rencana untuk mendukung pemerincian yang lebih halus daripada kunci tingkat akun?
Belum saat ini, tetapi kunci pada tingkat kontainer sedang dipertimbangkan.
Bagaimana cara mengetahui apakah kunci yang dikelola pelanggan diaktifkan di akun Azure Cosmos DB saya?
Dari portal Microsoft Azure, buka akun Azure Cosmos DB Anda dan perhatikan entri Enkripsi Data di menu sebelah kiri. Jika entri ini ada, kunci yang dikelola pelanggan diaktifkan di akun Anda:
Anda juga dapat dengan program mengambil detail akun Azure Cosmos DB Anda dan memeriksa keberadaan properti keyVaultKeyUri.
Bagaimana kunci yang dikelola pelanggan memengaruhi backup berkala?
Azure Cosmos DB mengambil cadangan data reguler dan otomatis yang disimpan di akun Anda. Operasi ini mencadangkan data yang terenkripsi.
Kondisi berikut diperlukan untuk berhasil memulihkan cadangan berkala:
- Kunci enkripsi yang Anda gunakan pada saat pencadangan diperlukan dan harus tersedia di Azure Key Vault. Kondisi ini mengharuskan tidak ada pencabutan yang dilakukan dan versi kunci yang digunakan pada saat pencadangan masih diaktifkan.
- Jika Anda menggunakan identitas terkelola yang ditetapkan sistem dalam kebijakan akses, beri akses sementara ke identitas pihak pertama Azure Cosmos DB sebelum memulihkan data Anda. Persyaratan ini ada karena identitas terkelola yang ditetapkan sistem khusus untuk akun dan tidak dapat digunakan kembali di akun target. Setelah data sepenuhnya dipulihkan ke akun target, Anda dapat mengatur konfigurasi identitas yang diinginkan dan menghapus identitas pihak pertama dari kebijakan akses Key Vault.
Bagaimana kunci yang dikelola pelanggan memengaruhi pencadangan berkala?
Azure Cosmos DB memberi Anda opsi untuk mengonfigurasi cadangan berkelanjutan di akun Anda. Dengan cadangan berkala, Anda dapat memulihkan data Anda ke titik waktu apa pun dalam 30 hari terakhir. Untuk menggunakan pencadangan berkelanjutan pada akun yang mengaktifkan kunci yang dikelola pelanggan, Anda harus menggunakan identitas terkelola yang ditetapkan oleh sistem atau pengguna dalam kebijakan akses Key Vault. Azure Cosmos DB identitas pihak pertama belum didukung saat ini pada akun yang menggunakan cadangan berkelanjutan.
Langkah-langkah prasyarat untuk akun yang menggunakan kunci yang dikelola oleh pelanggan dalam memperbarui identitas yang ditetapkan untuk pengguna.
- Tambahkan identitas yang ditetapkan pengguna ke akun Cosmos DB, dan berikan izin pada kebijakan akses key vault.
- Atur pengguna yang ditetapkan sebagai identitas default melalui Azure CLI atau Azure Resource Manager (ARM).
az cosmosdb update --resource-group MyResourceGroup --name MyAccountName --default-identity UserAssignedIdentity=/subscriptions/MySubscriptionId/resourcegroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyUserAssignedIdentity
Kondisi berikut diperlukan untuk berhasil melakukan pemulihan pada titik waktu tertentu.
Akses ke kunci yang dikelola pelanggan harus tersedia untuk identitas bawaan akun. Jika kunci telah diputar, proses rotasi harus sepenuhnya selesai, atau akun harus memiliki akses ke versi kunci lama dan baru.
Anda harus memastikan bahwa identitas terkelola yang ditetapkan pengguna yang awalnya digunakan pada akun sumber masih dinyatakan dalam kebijakan akses Key Vault.
Penting
Jika Anda mencabut kunci enkripsi sebelum menghapus akun, cadangan akun Anda mungkin melewatkan data yang ditulis hingga satu jam sebelum pencabutan dilakukan.
Bagaimana cara mencabut kunci enkripsi?
Pencabutan kunci dilakukan dengan menonaktifkan versi terbaru kunci:
Atau, untuk mencabut semua kunci dari instans Azure Key Vault, Anda dapat menghapus kebijakan akses yang diberikan kepada prinsipal Azure Cosmos DB:
Operasi apa yang tersedia setelah kunci yang dikelola pelanggan dicabut?
Penghapusan akun adalah satu-satunya operasi yang mungkin ketika kunci enkripsi telah dicabut.
Tetapkan identitas terkelola baru ke akun database yang dipulihkan untuk terus mengakses atau memulihkan akses ke akun database
Identitas yang ditetapkan pengguna terkait dengan akun Cosmos DB tertentu, setiap kali kami menetapkan identitas yang ditetapkan pengguna ke akun, ARM meneruskan permintaan ke identitas layanan terkelola untuk membuat koneksi ini. Saat ini kami membawa informasi identitas pengguna dari akun database sumber ke akun database target selama pemulihan (untuk pemulihan cadangan Berkelanjutan dan Berkala) dari CMK + identitas yang ditetapkan pengguna,
Metadata identitas terikat dengan akun database sumber dan alur kerja pemulihan tidak mencakup identitas ke akun database target. Hal ini menyebabkan akun database yang dipulihkan berada dalam status buruk, dan menjadi tidak dapat diakses setelah akun sumber dihapus dan waktu perpanjangan identitas kedaluwarsa.
Langkah-langkah untuk menetapkan identitas terkelola baru:
- Membuat identitas terkelola baru yang ditetapkan pengguna
- Berikan akses kunci Key Vault ke identitas ini
- Tetapkan identitas baru ini ke akun database anda yang dipulihkan