Share via


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

  1. Azure portal oturum açın, Azure aboneliğinize gidin ve Ayarlar sekmesinde Kaynak sağlayıcıları'nı seçin:

    Kaynak gezinti menüsündeki Kaynak sağlayıcıları seçeneğinin ekran görüntüsü.

  2. 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:

    Microsoft.DocumentDB kaynak sağlayıcısı için Kaydet seçeneğinin ekran görüntüsü.

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