Mengonfigurasi kunci yang dikelola pelanggan untuk akun Azure Cosmos DB Anda dengan Azure Managed HSM Key Vault

BERLAKU UNTUK: Nosql MongoDB Cassandra Gremlin Meja

Silakan lihat tautan Mengonfigurasi kunci yang dikelola pelanggan dengan Azure Key Vault

Catatan

Saat ini, kunci yang dikelola pelanggan hanya tersedia untuk akun Azure Cosmos DB baru. Anda harus mengonfigurasinya selama pembuatan akun.

Mendaftarkan penyedia sumber daya Azure Cosmos DB untuk langganan Azure Anda

  1. Masuk ke portal Microsoft Azure, masuk ke langganan Azure Anda, dan pilih Penyedia sumber daya pada tab Pengaturan:

    Cuplikan layar opsi Penyedia sumber daya di menu navigasi sumber daya.

  2. Cari penyedia sumber daya Microsoft.DocumentDB. Pastikan bahwa penyedia sumber daya sudah ditandai sebagai terdaftar. Jika tidak, pilih penyedia sumber daya dan pilih Daftar:

    Cuplikan layar opsi Daftar untuk penyedia sumber Microsoft.DocumentDB.

Mengonfigurasi Key Vault Azure Managed HSM Anda

Menggunakan kunci yang dikelola pelanggan dengan Azure Cosmos DB mengharuskan Anda untuk mengatur dua properti pada instans Azure Key Vault yang anda rencanakan untuk digunakan guna menghosting kunci enkripsi Anda: Penghapusan Sementara dan Perlindungan Penghapusan Menyeluruh.

Karena penghapusan sementara diaktifkan secara default, hanya perlindungan penghapusan menyeluruh yang harus diaktifkan. Saat membuat HSM terkelola Anda, gunakan perintah CLI berikut:

objectId = az ad signed-in-user show --query id -o tsv
az keyvault create --hsm-name $hsmName --resource-group $rgName --location $location --enable-purge-protection true --administrators $objectId --retention-days 7

Jika Anda menggunakan instans Key Vault Azure Managed HSM yang sudah ada, Anda dapat memverifikasi bahwa properti ini diaktifkan dengan melihat bagian Properti dengan perintah berikut:

az keyvault show $hsmName $rgName

Jika perlindungan penghapusan menyeluruh tidak diaktifkan, perintah berikut dapat digunakan:

az keyvault update-hsm --enable-purge-protection true --hsm-name $hsmName --resource-group $rgName

Untuk informasi selengkapnya tentang perintah CLI yang tersedia untuk HSM terkelola, lihat Key Vault Azure berikut ini

Membuat kunci enkripsi dan menetapkan peran terkait

Setelah HSM Terkelola diaktifkan, kunci yang akan digunakan untuk akun CMK perlu dibuat. Untuk ini, peran "Pengguna Kripto HSM Terkelola" ditetapkan ke administrator. Untuk membaca selengkapnya tentang cara kerja RBAC (kontrol akses berbasis peran) dengan HSM Terkelola, lihat artikel berikut: Peran bawaan RBAC lokal HSM terkelola - Azure Key Vault | Kontrol akses Microsoft Learn dan Azure Managed HSM | Microsoft Learn

objectId = az ad signed-in-user show --query id -o tsv
$keyName = "Name of your key"
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto User" --assignee $objectId --scope /keys
az keyvault key create --hsm-name $hsmName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 3072

Sekarang setelah kunci dibuat, peran koresponden perlu ditetapkan ke ID Utama Cosmos DB atau Identitas Terkelola Azure untuk memprovisikan akun. Peran "Pengguna Enkripsi Layanan Kripto HSM Terkelola" digunakan karena hanya memiliki tiga izin yang diperlukan untuk bekerja dengan akun CMK, yaitu: get, wrap dan unwrap. Izin ini juga dilingkup agar hanya berguna pada kunci yang disimpan di Azure Managed HSM.

Tanpa identitas terkelola Azure:

$cosmosPrincipal = az ad sp show --id a232010e-820c-4083-83bb-3ace5fc29d0b --query id -o tsv
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys
$keyURI = "https://{0}.managedhsm.azure.net/keys/{1}" -f $hsmName, $keyName
az cosmosdb create -n $cosmosName -g $rgName --key-uri $keyURI

Dengan identitas terkelola Azure:

$identityResourceID = az identity show -g $rgName -n $identityName --query id -o tsv
$identityPrincipal = az identity show -g $rgName -n $identityName --query principalId -o tsv
$defaultIdentity = "UserAssignedIdentity={0}" -f $identityResourceID
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys
$keyURI = "https://{0}.managedhsm.azure.net/keys/{1}" -f $hsmName, $keyName
az cosmosdb create -n $cosmosName -g $rgName --key-uri $keyURI --assign-identity $identityResourceID --default-identity $defaultIdentity

Ini akan memprovisikan akun CmK Cosmos DB dengan kunci yang disimpan di Key Vault Azure Managed HSM.

Beralih ke identitas terkelola yang ditetapkan sistem.

Cosmos DB mendukung penggunaan sistem yang ditetapkan identitas terkelola untuk akun CMK Cosmos DB. Untuk informasi selengkapnya tentang CMK identitas terkelola yang ditetapkan sistem, lihat: Mengonfigurasi kunci yang dikelola pelanggan untuk akun Azure Cosmos DB Anda

Jalankan perintah berikut untuk beralih dari identitas default ke identitas terkelola yang ditetapkan sistem:

az cosmosdb identity assign -n $cosmosName -g $rgName
$principalMSIId = az cosmosdb identity show -n $cosmosName -g $rgName --query principalId -o tsv
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $principalMSIId --scope /keys
az cosmosdb update --resource-group $rgName --name $cosmosName --default-identity "SystemAssignedIdentity"

Sebagai catatan opsional, penetapan peran asli ke ID utama Cosmos DB atau Azure Managed Identity dapat dihapus.

az keyvault role assignment delete --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys

Langkah berikutnya