Delen via


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

  1. Meld u aan bij Azure Portal, ga naar uw Azure-abonnement en selecteer Resourceproviders op het tabblad Instellingen :

    Schermopname van de optie Resourceproviders in het navigatiemenu van de resource.

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

    Schermopname van de optie Registreren voor de Microsoft.DocumentDB-resourceprovider.

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