Door de klant beheerde sleutels configureren voor uw Azure Cosmos DB-account met Azure Managed HSM Key Vault
VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin Tafel
Raadpleeg de koppeling Door de klant beheerde sleutels configureren met Azure Key Vault
Notitie
Momenteel zijn door de klant beheerde sleutels alleen beschikbaar voor nieuwe Azure Cosmos DB-accounts. U moet deze configureren tijdens het maken van het account.
De Azure Cosmos DB-resourceprovider registreren voor uw Azure-abonnement
Meld u aan bij Azure Portal, ga naar uw Azure-abonnement en selecteer Resourceproviders op het tabblad Instellingen :
Zoek naar de Microsoft.DocumentDB-resourceprovider . Controleer of de resourceprovider al is gemarkeerd als geregistreerd. Als dat niet het is, kiest u de resourceprovider en selecteert u Registreren:
Azure Managed HSM Key Vault configureren
Als u door de klant beheerde sleutels gebruikt met Azure Cosmos DB, moet u twee eigenschappen instellen op het Azure Key Vault-exemplaar dat u wilt gebruiken om uw versleutelingssleutels te hosten: Voorlopig verwijderen en Beveiliging opschonen.
Omdat voorlopig verwijderen standaard is ingeschakeld, moet alleen beveiliging tegen opschonen zijn ingeschakeld. Gebruik de volgende CLI-opdracht bij het maken van uw beheerde HSM:
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
Als u een bestaand Azure Managed HSM Key Vault-exemplaar gebruikt, kunt u controleren of deze eigenschappen zijn ingeschakeld door de sectie Eigenschappen te bekijken met de volgende opdracht:
az keyvault show $hsmName $rgName
Als opschoningsbeveiliging niet is ingeschakeld, kan de volgende opdracht worden gebruikt:
az keyvault update-hsm --enable-purge-protection true --hsm-name $hsmName --resource-group $rgName
Raadpleeg de volgende Azure Key Vault voor meer informatie over de CLI-opdrachten die beschikbaar zijn voor beheerde HSM
De versleutelingssleutel maken en de correspondentrollen toewijzen
Zodra de beheerde HSM is geactiveerd, moet de sleutel die wordt gebruikt voor het CMK-account worden gemaakt. Hiervoor wordt de rol 'Beheerde HSM Crypto-gebruiker' toegewezen aan de beheerder. Raadpleeg de volgende artikelen voor meer informatie over de werking van RBAC (op rollen gebaseerd toegangsbeheer) met Beheerde HSM: Ingebouwde HSM-rollen voor beheerde HSM - Azure Key Vault | Toegangsbeheer voor Beheerde HSM van Microsoft Learn en Azure | 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
Nu de sleutel is gemaakt, moet de rol van de correspondent worden toegewezen aan de Cosmos DB-principal-id of de door Azure beheerde identiteit voor het inrichten van het account. De rol Managed HSM Crypto Service Encryption User wordt gebruikt omdat deze de enige drie machtigingen heeft die nodig zijn om te werken met een CMK-account, namelijk: ophalen, verpakken en uitpakken. Deze machtigingen zijn ook bedoeld om alleen nuttig te zijn voor de sleutels die zijn opgeslagen op de Azure Managed HSM.
Zonder beheerde Azure-identiteit:
$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
Met een door Azure beheerde identiteit:
$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
Hiermee wordt een Cosmos DB CMK-account ingericht met een sleutel die is opgeslagen in een Azure Managed HSM Key Vault.
Overschakelen naar door het systeem toegewezen beheerde identiteit.
Cosmos DB ondersteunt het gebruik van een door het systeem toegewezen beheerde identiteit voor een CMK Cosmos DB-account. Raadpleeg voor meer informatie over door het systeem toegewezen beheerde identiteit CMK: Door de klant beheerde sleutels configureren voor uw Azure Cosmos DB-account
Voer de volgende opdrachten uit om over te schakelen van standaardidentiteit naar door het systeem toegewezen beheerde identiteit:
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"
Als optionele opmerking kan de oorspronkelijke roltoewijzing aan de principal-id van Cosmos DB of Azure Managed Identity worden verwijderd.
az keyvault role assignment delete --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys
Volgende stappen
- Meer informatie over gegevensversleuteling in Azure Cosmos DB.