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
Logga in på Azure Portal, gå till din Azure-prenumeration och välj Resursprovidrar på fliken Inställningar:
Sök efter resursprovidern Microsoft.DocumentDB . Kontrollera om resursprovidern redan har markerats som registrerad. Om inte väljer du resursprovidern och väljer Registrera:
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
- Läs mer om datakryptering i Azure Cosmos DB.