Azure Yönetilen HSM Key Vault ile Azure Cosmos DB hesabınız için müşteri tarafından yönetilen anahtarları yapılandırma
ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Cassandra Gremlin Tablo
Lütfen Azure Key Vault ile müşteri tarafından yönetilen anahtarları yapılandırma bağlantısına bakın
Not
Şu anda müşteri tarafından yönetilen anahtarlar yalnızca yeni Azure Cosmos DB hesapları için kullanılabilir. Bunları hesap oluşturma sırasında yapılandırmanız gerekir.
Azure aboneliğiniz için Azure Cosmos DB kaynak sağlayıcısını kaydetme
Azure portal oturum açın, Azure aboneliğinize gidin ve Ayarlar sekmesinde Kaynak sağlayıcıları'nı seçin:
Microsoft.DocumentDB kaynak sağlayıcısını arayın. Kaynak sağlayıcısının zaten kayıtlı olarak işaretlenip işaretlenmediğini doğrulayın. Aksi takdirde kaynak sağlayıcısını seçin ve Kaydet'i seçin:
Azure Yönetilen HSM Key Vault yapılandırma
Azure Cosmos DB ile müşteri tarafından yönetilen anahtarları kullanmak için Azure Key Vault örneğinde şifreleme anahtarlarınızı barındırmak için kullanmayı planladığınız iki özellik ayarlamanız gerekir: Geçici Silme ve Temizleme Koruması.
Geçici silme varsayılan olarak açık olduğundan yalnızca temizleme koruması etkinleştirilmelidir. Yönetilen HSM'nizi oluştururken aşağıdaki CLI komutunu kullanın:
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
Mevcut bir Azure Yönetilen HSM Key Vault örneği kullanıyorsanız, aşağıdaki komutu kullanarak Özellikler bölümüne bakarak bu özelliklerin etkinleştirildiğini doğrulayabilirsiniz:
az keyvault show $hsmName $rgName
Temizleme koruması etkin değilse aşağıdaki komut kullanılabilir:
az keyvault update-hsm --enable-purge-protection true --hsm-name $hsmName --resource-group $rgName
Yönetilen HSM için kullanılabilen CLI komutları hakkında daha fazla bilgi için aşağıdaki Azure Key Vault
Şifreleme anahtarını oluşturma ve ilgili rolleri atama
Yönetilen HSM etkinleştirildikten sonra, CMK hesabı için kullanılacak anahtarın oluşturulması gerekir. Bunun için yöneticiye "Yönetilen HSM Şifreleme Kullanıcısı" rolü atanır. RBAC'nin (rol tabanlı erişim denetimi) Yönetilen HSM ile nasıl çalıştığı hakkında daha fazla bilgi edinmek için şu makalelere bakın: Yönetilen HSM yerel RBAC yerleşik rolleri - Azure Key Vault | Microsoft Learn ve Azure Yönetilen HSM erişim denetimi | 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
Anahtar oluşturulduğuna göre, hesabın sağlanması için ilgili rolün Cosmos DB Sorumlu Kimliğine veya Azure Yönetilen Kimliğine atanması gerekir. "Yönetilen HSM Şifreleme Hizmeti Şifreleme Kullanıcısı" rolü, bir CMK hesabıyla çalışmak için gereken tek üç izne sahip olduğundan kullanılır: alma, sarmalama ve sarmayı kaldırma. Bu izinlerin kapsamı yalnızca Azure Yönetilen HSM'de depolanan anahtarlarda yararlı olacak şekilde de belirlenmiştir.
Azure yönetilen kimliği olmadan:
$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
Azure yönetilen kimliği ile:
$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
Bu işlem, Azure Yönetilen HSM Key Vault depolanan bir anahtara sahip bir Cosmos DB CMK hesabı sağlar.
Sistem tarafından atanan yönetilen kimliğe geçiş yapma.
Cosmos DB, CMK Cosmos DB hesabı için sistem tarafından atanan yönetilen kimlik kullanımını destekler. Sistem tarafından atanan yönetilen kimlik CMK'sı hakkında daha fazla bilgi için bkz. Azure Cosmos DB hesabınız için müşteri tarafından yönetilen anahtarları yapılandırma
Varsayılan kimlikten sistem tarafından atanan yönetilen kimliğe geçmek için aşağıdaki komutları yürütür:
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"
İsteğe bağlı bir not olarak, Cosmos DB'nin asıl kimliğine veya Azure Yönetilen Kimliğine özgün rol ataması kaldırılabilir.
az keyvault role assignment delete --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys
Sonraki adımlar
- Azure Cosmos DB'de veri şifreleme hakkında daha fazla bilgi edinin.
- Azure Cosmos DB'deki verilere güvenli erişime genel bir bakış elde edin.