Freigeben über


Konfigurieren von kundenseitig verwalteten Schlüsseln für Ihr Azure Cosmos DB-Konto mit einer Azure Key Vault-Instanz mit verwaltetem HSM

GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle

Weitere Informationen finden Sie unter Konfigurieren von kundenseitig verwalteten Schlüsseln für Ihr Azure Cosmos DB-Konto mit Azure Key Vault.

Hinweis

Derzeit sind von Kunden verwaltete Schlüssel nur für neue Azure Cosmos DB-Konten verfügbar. Sie sollten während der Kontoerstellung konfiguriert werden.

Registrieren des Azure Cosmos DB-Ressourcenanbieters für Ihr Azure-Abonnement

  1. Melden Sie sich beim Azure-Portal an, navigieren Sie zu Ihrem Azure-Abonnement, und wählen Sie auf der Registerkarte Einstellungen die Option Ressourcenanbieter aus:

    Screenshot: Option „Ressourcenanbieter“ im Navigationsmenü der Ressource

  2. Suchen Sie nach dem Ressourcenanbieter Microsoft.DocumentDB. Überprüfen Sie, ob der Ressourcenanbieter bereits als registriert gekennzeichnet ist. Wenn dies nicht der Fall ist, wählen Sie den Ressourcenanbieter aus, und wählen Sie dann Registrieren aus:

    Screenshot: Option „Registrieren“ für den Ressourcenanbieter „Microsoft.DocumentDB“

Konfigurieren Ihrer Azure Key Vault-Instanz mit verwaltetem HSM

Wenn Sie kundenseitig verwaltete Schlüssel mit Azure Cosmos DB verwenden, müssen Sie zwei Eigenschaften für die Azure Key Vault-Instanz festlegen, die Sie zum Hosten Ihrer Verschlüsselungsschlüssel verwenden möchten: Vorläufiges Löschen und Löschschutz.

Da vorläufiges Löschen standardmäßig aktiviert ist, muss nur der Bereinigungsschutz aktiviert werden. Verwenden Sie beim Erstellen Ihres verwalteten HSM den folgenden CLI-Befehl:

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

Bei Verwendung einer vorhandenen Azure Key Vault-Instanz mit verwaltetem HSM können Sie überprüfen, ob diese Eigenschaften aktiviert sind, indem Sie sich den Abschnitt Eigenschaften mit dem folgenden Befehl ansehen:

az keyvault show $hsmName $rgName

Wenn der Bereinigungsschutz nicht aktiviert ist, kann der folgende Befehl verwendet werden:

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

Weitere Informationen zu den CLI-Befehlen, die für verwaltetes HSM verfügbar sind, finden Sie im Artikel zu Azure Key Vault.

Erstellen des Verschlüsselungsschlüssels und Zuweisen der entsprechenden Rollen

Nach der Aktivierung von verwaltetem HSM, muss der Schlüssel erstellt werden, der für das CMK-Konto verwendet wird. Hierzu wird dem Administrator die Rolle „Kryptografiebenutzer für verwaltete HSMs“ zugewiesen. Weitere Informationen zur Funktionsweise der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) mit verwaltetem HSM finden Sie in den folgenden Artikeln: Integrierte Rollen der lokalen RBAC für verwaltete HSMs und Zugriffssteuerung für verwaltetes HSM.

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

Nachdem der Schlüssel erstellt wurde, muss nun die entsprechende Rolle entweder der Cosmos DB-Prinzipal-ID oder der verwalteten Azure-Identität für die Bereitstellung des Kontos zugewiesen werden. Die Rolle „Benutzer der Kryptografiedienstverschlüsselung für verwaltete HSMs“ wird verwendet, da sie nur über die drei Berechtigungen verfügt, die für die Arbeit mit einem CMK-Konto erforderlich sind: Abrufen (Get), Packen (Wrap) und Entpacken (Unwrap). Diese Berechtigungen sind außerdem so festgelegt, dass sie nur für die im verwalteten HSM von Azure gespeicherten Schlüssel nützlich sind.

Ohne verwaltete Azure-Identität:

$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

Mit verwalteter Azure-Identität:

$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

Dadurch wird ein Cosmos DB-CMK-Konto mit einem Schlüssel bereitgestellt, der in einer Azure Key Vault-Instanz mit verwaltetem HSM gespeichert ist.

Wechsel zur systemseitig zugewiesenen verwalteten Identität

Cosmos DB unterstützt die Verwendung einer systemseitig zugewiesenen verwalteten Identität für ein Cosmos DB-CMK-Konto. Weitere Informationen zum CMK für systemseitig zugewiesene verwaltete Identitäten finden Sie unter Konfigurieren von kundenseitig verwalteten Schlüsseln für Ihr Azure Cosmos DB-Konto mit Azure Key Vault.

Führen Sie die folgenden Befehle aus, um von der Standardidentität zur systemseitig zugewiesenen verwalteten Identität zu wechseln:

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"

Optional kann die ursprüngliche Rollenzuweisung für die Prinzipal-ID oder die verwaltete Azure-Identität von Cosmos DB entfernt werden.

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

Nächste Schritte