Настройка ключей, управляемых клиентом для учетной записи Azure Cosmos DB, с помощью Azure Managed HSM Key Vault
Область применения: Nosql Mongodb Кассандра Гремлин Таблица
См. ссылку "Настройка ключей, управляемых клиентом" с помощью Azure Key Vault
Примечание.
В настоящее время управляемые клиентом ключи доступны только для новых учетных записей Azure Cosmos DB. Их следует настраивать во время создания учетной записи.
Регистрация поставщика ресурсов Azure Cosmos DB в своей подписке Azure
Войдите на портал Azure, перейдите к своей подписке Azure и на вкладке Параметры выберите Поставщики ресурсов.
Найдите поставщик ресурсов Microsoft.DocumentDB. Убедитесь, что поставщик ресурсов уже помечен как зарегистрированный. В противном случае выберите выделите его и выберите Зарегистрировать.
Настройка Azure Managed HSM Key Vault
Для использования управляемых клиентом ключей с Azure Cosmos DB требуется установка двух свойств в экземпляре Azure Key Vault, который планируется использовать для размещения ключей шифрования:Обратимое удаление и Защита от очистки.
Так как обратимое удаление включается по умолчанию, необходимо включить только защиту очистки. При создании управляемого устройства HSM используйте следующую команду CLI:
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
Если вы используете существующий экземпляр Azure Managed HSM Key Vault, вы можете убедиться, что эти свойства включены, просмотрев раздел "Свойства " со следующей командой:
az keyvault show $hsmName $rgName
Если защита очистки не включена, можно использовать следующую команду:
az keyvault update-hsm --enable-purge-protection true --hsm-name $hsmName --resource-group $rgName
Дополнительные сведения о командах CLI, доступных для управляемого устройства HSM, см. в следующих статьях Azure Key Vault.
Создание ключа шифрования и назначение ролей корреспондента
После активации управляемого устройства HSM необходимо создать ключ, который будет использоваться для учетной записи CMK. Для этого администратору назначается роль "Управляемый пользователь шифрования HSM". Дополнительные сведения о том, как работает RBAC (управление доступом на основе ролей) с управляемым устройством HSM, см. в следующих статьях: встроенные роли управляемого устройства HSM — Azure Key Vault | Управление доступом hSM в Microsoft Learn и Azure | 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
Теперь, когда ключ был создан, роль корреспондента должна быть назначена идентификатору субъекта Cosmos DB или управляемому удостоверению Azure для подготовки учетной записи. Роль "Управляемый пользователь шифрования шифрования криптослужбы HSM" используется, так как у нее есть только три разрешения, необходимые для работы с учетной записью CMK, а именно: получение, оболочка и распаковка. Эти разрешения также могут быть полезны только для ключей, хранящихся в управляемом HSM Azure.
Без управляемого удостоверения 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
С управляемым удостоверением 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
Это подготовит учетную запись CMK Cosmos DB с ключом, хранящимся в Azure Managed HSM Key Vault.
Переключение на назначенное системой управляемое удостоверение.
Cosmos DB поддерживает использование управляемого удостоверения, назначаемого системой, для учетной записи CMK Cosmos DB. Дополнительные сведения о cmK управляемого удостоверения, назначаемом системой, см. в статье "Настройка ключей, управляемых клиентом" для учетной записи Azure Cosmos DB.
Выполните следующие команды, чтобы переключиться с удостоверения по умолчанию на назначенное системой управляемое удостоверение:
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"
В качестве необязательной заметки можно удалить исходное назначение ролей основному идентификатору Cosmos DB или управляемому удостоверению Azure.
az keyvault role assignment delete --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys
Следующие шаги
- Ознакомьтесь с дополнительными сведениями о шифровании данных в Azure Cosmos DB.