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

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

    Schermopname van de optie Resourceproviders in het resourcenavigatiemenu.

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

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

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