Бөлісу құралы:


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

Область применения: Nosql Mongodb Кассандра Гремлин Таблица

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

Примечание.

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

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

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

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

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

    Снимок экрана: параметр Register для поставщика ресурсов 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

Следующие шаги