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 Tabel
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 de Azure Portal, ga naar uw Azure-abonnement en selecteer Resourceproviders op het tabblad Instellingen:
Zoek naar de resourceprovider Microsoft.DocumentDB . Controleer of de resourceprovider al is gemarkeerd als geregistreerd. Als dit niet het volgende is, kiest u de resourceprovider en selecteert u Registreren:
Uw azure managed HSM-Key Vault configureren
Voor het gebruik van door de klant beheerde sleutels 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 tegen opschonen.
Omdat voorlopig verwijderen standaard is ingeschakeld, moet alleen beveiliging tegen opschonen zijn ingeschakeld. Wanneer u uw beheerde HSM maakt, gebruikt u de volgende CLI-opdracht:
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 exemplaar van Azure Managed HSM Key Vault 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 beveiliging tegen opschonen 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 hoe RBAC (op rollen gebaseerd toegangsbeheer) werkt met beheerde HSM: Ingebouwde RBAC-rollen van beheerde HSM - Azure Key Vault | Toegangsbeheer voor Microsoft Learn en 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
Nu de sleutel is gemaakt, moet de rol van correspondent worden toegewezen aan de principal-id van Cosmos DB of de beheerde identiteit van Azure voor het inrichten van het account. De rol 'Managed HSM Crypto Service Encryption User' wordt gebruikt omdat deze de slechts drie machtigingen heeft die nodig zijn om met een CMK-account te werken, namelijk: ophalen, verpakken en uitpakken. Deze machtigingen zijn ook alleen nuttig voor de sleutels die zijn opgeslagen op de beheerde HSM van Azure.
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 beheerde Azure-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 op een door Azure beheerde 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 door de klant beheerde sleutels configureren voor uw Azure Cosmos DB-account voor meer informatie over door het systeem toegewezen beheerde identiteit CMK
Voer de volgende opdrachten uit om over te schakelen van de standaardidentiteit naar de 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.
- Bekijk een overzicht van beveiligde toegang tot gegevens in Azure Cosmos DB.