Настройка ключей, управляемых клиентом, для учетной записи Azure Cosmos DB с помощью управляемого модуля HSM Azure Key Vault

ПРИМЕНИМО К: Nosql Mongodb Кассандра Гремлин Таблица

См. ссылку Настройка ключей, управляемых клиентом, в Azure Key Vault

Примечание

В настоящее время управляемые клиентом ключи доступны только для новых учетных записей Azure Cosmos DB. Их следует настраивать во время создания учетной записи.

Регистрация поставщика ресурсов Azure Cosmos DB в своей подписке Azure

  1. Войдите на портал Azure, перейдите к своей подписке Azure и на вкладке Параметры выберите Поставщики ресурсов.

    Снимок экрана: параметр

  2. Найдите поставщик ресурсов Microsoft.DocumentDB. Убедитесь, что поставщик ресурсов уже помечен как зарегистрированный. В противном случае выберите выделите его и выберите Зарегистрировать.

    Снимок экрана: параметр

Настройка Key Vault управляемого устройства HSM Azure

Для использования управляемых клиентом ключей с 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, см. в следующих Key Vault Azure.

Создание ключа шифрования и назначение ролей корреспондента

После активации управляемого модуля HSM необходимо создать ключ, который будет использоваться для учетной записи CMK. Для этого администратору назначается роль "Управляемый пользователь шифрования HSM". Дополнительные сведения о том, как RBAC (управление доступом на основе ролей) работает с управляемым устройством HSM, см. в следующих статьях: Встроенные роли локального управляемого модуля HSM RBAC — Azure Key Vault | Microsoft Learn и управление доступом к управляемому устройству HSM 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 с ключом, хранящимся в Key Vault Управляемого модуля HSM Azure.

Переключение на управляемое удостоверение, назначаемое системой.

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

Дальнейшие действия