Dela via


Konfigurera kundhanterade nycklar för ditt Azure Cosmos DB-konto med Azure Managed HSM Key Vault

GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord

Se länken Konfigurera kundhanterade nycklar med Azure Key Vault

Kommentar

För närvarande är kundhanterade nycklar endast tillgängliga för nya Azure Cosmos DB-konton. Du bör konfigurera dem när kontot skapas.

Registrera Azure Cosmos DB-resursprovidern för din Azure-prenumeration

  1. Logga in på Azure-portalen, gå till din Azure-prenumeration och välj Resursprovidrarfliken Inställningar:

    Skärmbild av alternativet Resursproviders i resursnavigeringsmenyn.

  2. Sök efter resursprovidern Microsoft.DocumentDB . Kontrollera om resursprovidern redan har markerats som registrerad. Om inte väljer du resursprovidern och väljer Registrera:

    Skärmbild av alternativet Registrera för resursprovidern Microsoft.DocumentDB.

Konfigurera ditt Azure Managed HSM Key Vault

Om du använder kundhanterade nycklar med Azure Cosmos DB måste du ange två egenskaper för den Azure Key Vault-instans som du planerar att använda som värd för dina krypteringsnycklar: Mjuk borttagning och rensningsskydd.

Eftersom mjuk borttagning är aktiverat som standard måste endast rensningsskydd aktiveras. När du skapar din hanterade HSM använder du följande CLI-kommando:

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

Om du använder en befintlig Azure Managed HSM Key Vault-instans kan du kontrollera att dessa egenskaper är aktiverade genom att titta på avsnittet Egenskaper med följande kommando:

az keyvault show $hsmName $rgName

Om rensningsskydd inte är aktiverat kan följande kommando användas:

az keyvault update-hsm --enable-purge-protection true --hsm-name $hsmName --resource-group $rgName

Mer information om DE CLI-kommandon som är tillgängliga för hanterad HSM finns i följande Azure Key Vault

Skapa krypteringsnyckeln och tilldela korrespondentrollerna

När den hanterade HSM :en har aktiverats måste nyckeln som ska användas för CMK-kontot skapas. För detta tilldelas rollen "Managed HSM Crypto User" till administratören. Mer information om hur RBAC (rollbaserad åtkomstkontroll) fungerar med Managed HSM finns i följande artiklar: Managed HSM local RBAC built-in roles – Azure Key Vault | Åtkomstkontroll för Microsoft Learn och 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 när nyckeln har skapats måste korrespondentrollen tilldelas till antingen Cosmos DB Principal ID eller Azure Managed Identity för etablering av kontot. Rollen "Managed HSM Crypto Service Encryption User" används eftersom den har de enda tre behörigheter som krävs för att arbeta med ett CMK-konto, eftersom det är: hämta, omsluta och packa upp. Dessa behörigheter är också begränsade till att endast vara användbara för de nycklar som lagras på Azure Managed HSM.

Utan Hanterad Azure-identitet:

$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

Med Hanterad Azure-identitet:

$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

Detta etablerar ett Cosmos DB CMK-konto med en nyckel som lagras i ett Azure Managed HSM-nyckelvalv.

Växla till systemtilldelad hanterad identitet.

Cosmos DB stöder användning av en systemtilldelad hanterad identitet för ett CMK Cosmos DB-konto. Mer information om systemtilldelad hanterad identitets-CMK finns i: Konfigurera kundhanterade nycklar för ditt Azure Cosmos DB-konto

Kör följande kommandon för att växla från standardidentitet till systemtilldelad hanterad identitet:

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"

Som ett valfritt meddelande kan den ursprungliga rolltilldelningen till Cosmos DB:s huvud-ID eller Azure Managed Identity tas bort.

az keyvault role assignment delete --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys

Nästa steg