PowerShell и Azure CLI: включение прозрачного шифрования данных с управляемым пользователем ключом из Azure Key Vault
Область применения:База данных SQL Azure Управляемый экземпляр SQL Azure
Azure Synapse Analytics
В этой статье описывается, как использовать ключ из Azure Key Vault для прозрачного шифрования данных (TDE) в База данных SQL Azure или Azure Synapse Analytics. Чтобы получить дополнительные сведения об интеграции Azure Key Vault и поддержке при создании собственных ключей для TDE, см. статью Прозрачное шифрование данных в Azure SQL. Поддержка создания собственных ключей. Если вы ищете портал Azure инструкции по включению TDE с управляемым клиентом ключом из Azure Key Vault, см. статью "Создание сервера, настроенного с помощью управляемого пользователем удостоверения и управляемого клиентом TDE".
Эта статья относится к базе данных Azure SQL, управляемому экземпляру Azure SQL и дедицированным SQL-пулам в Azure Synapse Analytics. Сведения о прозрачном шифровании данных для выделенных пулов SQL в рабочих областях Azure Synapse см. в статье Шифрование в Azure Synapse Analytics.
Примечание.
Теперь SQL Azure поддерживает использование ключа RSA, хранящегося в управляемом HSM в качестве средства защиты TDE. Управляемое устройство HSM в Azure Key Vault — это соответствующая стандартам и полностью управляемая высокодоступная облачная служба для одного клиента. С ее помощью можно защищать криптографические ключи для облачных приложений, используя устройства HSM, отвечающие стандартам FIPS 140-2 уровня 3. Дополнительные сведения об управляемых HSM.
Примечание.
Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).
Предварительные требования для PowerShell
- Подписка Azure и права администратора для нее.
- [Рекомендуется, но необязательно.] Аппаратный модуль безопасности (HSM) или локальное хранилище ключей для создания локальной копии материала ключа для предохранителя TDE.
- У вас должна быть установлена и запущена среда Azure PowerShell.
- Создайте Azure Key Vault и ключи для TDE.
-
Инструкции по использованию аппаратного модуля безопасности (HSM) и Key Vault
- Чтобы использовать хранилище ключей для TDE, обязательно настройте для него следующее свойство:
- обратимое удаление и защита от очистки
-
Инструкции по использованию аппаратного модуля безопасности (HSM) и Key Vault
- Ключ должен иметь следующие атрибуты, которые должны использоваться для TDE:
- Дата активации (если задано) должна быть датой и временем в прошлом
- Дата окончания срока действия (если задано) должна быть будущей датой и временем
- Ключ должен находиться в состоянии "Включено"
- возможность выполнять операции получения, упаковки ключа и распаковки ключа.
- Чтобы использовать управляемый ключ HSM, следуйте инструкциям по созданию и активации управляемого модуля HSM с помощью Azure CLI.
Инструкции по установке модуля Az PowerShell см. в разделе "Установка Azure PowerShell".
Дополнительные сведения о Key Vault см. в Инструкции PowerShell в Key Vault и Как использовать обратимое удаление Key Vault в PowerShell.
Назначение удостоверения Microsoft Entra серверу
Если у вас есть существующий сервер, используйте следующее, чтобы добавить удостоверение Microsoft Entra на сервер:
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
При создании сервера используйте командлет New-AzSqlServer с тегом -Identity, чтобы добавить удостоверение Microsoft Entra во время создания сервера:
$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
-ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity
Предоставление серверу разрешений на доступ к Key Vault
Используйте командлет Set-AzKeyVaultAccessPolicy, чтобы предоставить серверу доступ к хранилищу ключей, прежде чем назначать ключ из этого хранилища для прозрачного шифрования данных.
Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
-ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey
Чтобы добавить разрешения для сервера на управляемый модуль HSM, добавьте на сервер локальную роль пользователя RBAC "Шифрование криптографической службы управляемого HSM". Это позволяет серверу выполнять операции получения, упаковки ключей и распаковки ключей на ключах в управляемом HSM. Дополнительные сведения см. в разделе Управление ролями HSM
Добавление на сервер ключа из Key Vault и настройка предохранителя TDE
- Используйте командлет Get-AzKeyVaultKey, чтобы получить идентификатор ключа из хранилища ключей.
- Используйте командлет Add-AzSqlServerKeyVaultKey, чтобы добавить на сервер ключ из Key Vault.
- Используйте командлет Set-AzSqlServerTransparentDataEncryptionProtector, чтобы настроить ключ в качестве предохранителя TDE для всех ресурсов сервера.
- Используйте командлет Get-AzSqlServerTransparentDataEncryptionProtector, чтобы проверить правильность настройки предохранителя TDE.
Примечание.
Для управляемых ключей HSM используйте версию PowerShell Az.Sql 2.11.1.
Примечание.
Общая длина имени хранилища ключей и имени ключа не может превышать 94 символа.
Совет
Пример идентификатора KeyId из Key Vault: https://contosokeyvault.vault.azure.net/keys/Key1/<key-id>
Пример KeyId из управляемого модуля HSM:
https://contosoMHSM.managedhsm.azure.net/keys/myrsakey
# add the key from Key Vault to the server
Add-AzSqlServerKeyVaultKey -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -KeyId <KeyVaultKeyId>
# set the key as the TDE protector for all resources under the server
Set-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> `
-Type AzureKeyVault -KeyId <KeyVaultKeyId>
# confirm the TDE protector was configured as intended
Get-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName>
Включение прозрачного шифрования данных
Выполните командлет Set-AzSqlDatabaseTransparentDataEncryption, чтобы включить TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"
Теперь для базы данных или хранилища данных включено прозрачное шифрование данных с ключом шифрования из Key Vault.
Проверка состояния и активности шифрования
Используйте Get-AzSqlDatabaseTransparentDataEncryption, чтобы получить состояние шифрования для базы данных или хранилища данных.
# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> `
Полезные командлеты PowerShell
Выполните командлет Set-AzSqlDatabaseTransparentDataEncryption, чтобы выключить TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> ` -DatabaseName <DatabaseName> -State "Disabled"
Командлет Get-AzSqlServerKeyVaultKey возвращает список ключей из Key Vault, добавленных на указанный сервер.
# KeyId is an optional parameter, to return a specific key version Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Командлет Remove-AzSqlServerKeyVaultKey удаляет с сервера ключ Key Vault.
# the key set as the TDE Protector cannot be removed Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Устранение неполадок
Если не удается найти хранилище ключей, убедитесь, что выбрана правильная подписка.
Get-AzSubscription -SubscriptionId <SubscriptionId>
Если новый ключ не удается добавить на сервер или новый ключ нельзя обновить в качестве предохранителя TDE, проверьте следующее:
- Ключ не должен иметь дату окончания срока действия.
- для ключа должны быть включены операции получения, упаковки ключа и распаковки ключа.
Связанное содержимое
- Сведения о том, как заменить предохранитель TDE для сервера в соответствии с требованиями безопасности, приводятся в этой статье.
- Узнайте, как удалить потенциально скомпрометированный предохранитель TDE: Удалить потенциально скомпрометированный ключ.