Konfigurowanie kluczy zarządzanych przez klienta dla konta usługi Azure Cosmos DB przy użyciu usługi Azure Managed HSM Key Vault
DOTYCZY: NoSQL MongoDB Kasandra Gremlin Stół
Zapoznaj się z linkiem Konfigurowanie kluczy zarządzanych przez klienta za pomocą usługi Azure Key Vault
Uwaga
Obecnie klucze zarządzane przez klienta są dostępne tylko dla nowych kont usługi Azure Cosmos DB. Należy je skonfigurować podczas tworzenia konta.
Rejestrowanie dostawcy zasobów usługi Azure Cosmos DB dla subskrypcji platformy Azure
Zaloguj się do witryny Azure Portal, przejdź do subskrypcji platformy Azure i wybierz pozycję Dostawcy zasobów na karcie Ustawienia:
Wyszukaj dostawcę zasobów Microsoft.DocumentDB . Sprawdź, czy dostawca zasobów jest już oznaczony jako zarejestrowany. Jeśli nie, wybierz dostawcę zasobów i wybierz pozycję Zarejestruj:
Konfigurowanie usługi Azure Managed HSM Key Vault
Korzystanie z kluczy zarządzanych przez klienta w usłudze Azure Cosmos DB wymaga ustawienia dwóch właściwości w wystąpieniu usługi Azure Key Vault, które ma być używane do hostowania kluczy szyfrowania: Usuwanie nietrwałe i przeczyszczanie.
Ponieważ usuwanie nietrwałe jest domyślnie włączone, należy włączyć tylko ochronę przed przeczyszczaniem. Podczas tworzenia zarządzanego modułu HSM użyj następującego polecenia interfejsu wiersza polecenia:
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
Jeśli używasz istniejącego wystąpienia usługi Key Vault zarządzanego przez moduł HSM platformy Azure, możesz sprawdzić, czy te właściwości są włączone, przeglądając sekcję Właściwości za pomocą następującego polecenia:
az keyvault show $hsmName $rgName
Jeśli ochrona przed przeczyszczeniem nie jest włączona, można użyć następującego polecenia:
az keyvault update-hsm --enable-purge-protection true --hsm-name $hsmName --resource-group $rgName
Aby uzyskać więcej informacji na temat poleceń interfejsu wiersza polecenia dostępnych dla zarządzanego modułu HSM, zapoznaj się z następującą usługą Azure Key Vault
Tworzenie klucza szyfrowania i przypisywanie ról korespondentów
Po aktywowaniu zarządzanego modułu HSM należy utworzyć klucz, który będzie używany dla konta cmK. W tym celu rola "Zarządzany użytkownik kryptograficzny modułu HSM" jest przypisywana do administratora. Aby dowiedzieć się więcej na temat sposobu działania kontroli dostępu opartej na rolach (kontroli dostępu opartej na rolach) z zarządzanym modułem HSM, zapoznaj się z następującymi artykułami: Managed HSM local RBAC built-in roles — Azure Key Vault | Microsoft Learn i Azure Managed HSM access control | 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
Po utworzeniu klucza należy przypisać rolę korespondenta do identyfikatora głównego usługi Cosmos DB lub tożsamości zarządzanej platformy Azure w celu aprowizacji konta. Używana jest rola "Zarządzany użytkownik szyfrowania usługi kryptograficznej HSM", ponieważ ma ona tylko trzy uprawnienia potrzebne do pracy z kontem cmK, czyli pobieranie, opakowywanie i odpakowywanie. Te uprawnienia mają również zakres, aby były przydatne tylko w przypadku kluczy przechowywanych w zarządzanym module HSM platformy Azure.
Bez tożsamości zarządzanej platformy Azure:
$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
Za pomocą tożsamości zarządzanej platformy Azure:
$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
Spowoduje to aprowizację konta cmK usługi Cosmos DB z kluczem przechowywanym w usłudze Azure Managed HSM Key Vault.
Przełączanie do tożsamości zarządzanej przypisanej przez system.
Usługa Cosmos DB obsługuje korzystanie z tożsamości zarządzanej przypisanej przez system dla konta usługi Cosmos DB cmK. Aby uzyskać więcej informacji o kluczu zarządzania tożsamością zarządzaną przypisaną przez system, zobacz Konfigurowanie kluczy zarządzanych przez klienta dla konta usługi Azure Cosmos DB
Wykonaj następujące polecenia, aby przełączyć się z domyślnej tożsamości na tożsamość zarządzaną przypisaną przez system:
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"
Opcjonalnie można usunąć oryginalne przypisanie roli do głównego identyfikatora usługi Cosmos DB lub tożsamości zarządzanej platformy Azure.
az keyvault role assignment delete --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys
Następne kroki
- Dowiedz się więcej o szyfrowaniu danych w usłudze Azure Cosmos DB.