Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
В этой статье описывается, как использовать ключ из Azure Key Vault для прозрачного шифрования данных (TDE) в База данных SQL Azure или Azure Synapse Analytics. Чтобы получить дополнительные сведения об интеграции TDE с Azure Key Vault и поддержке функции "собственный ключ" (BYOK), см. статью TDE с клиентскими ключами в Azure Key Vault. Если вы ищете инструкции по Azure Portal о том, как включить TDE с ключом, управляемым клиентом, из Azure Key Vault, ознакомьтесь с статьей "Создание сервера, настроенного с помощью управляемого пользователем удостоверения и TDE, управляемым клиентом".
Эта статья относится к базе данных Azure SQL, управляемому экземпляру Azure SQL и дедицированным SQL-пулам в Azure Synapse Analytics. Сведения о прозрачном шифровании данных для выделенных пулов SQL в рабочих областях Azure Synapse см. в статье Шифрование в Azure Synapse Analytics.
Примечание.
Azure SQL также поддерживает использование ключа RSA, хранящегося в управляемом HSM в качестве средства защиты TDE. Управляемый модуль HSM Azure — это полностью управляемая, высокодоступная, однотенантная и совместимая со стандартами облачная служба, которая позволяет защитить криптографические ключи для облачных приложений с помощью FIPS 140-2 уровня 3, проверенных HSM. Дополнительные сведения об управляемых HSM-системах.
Примечание.
Microsoft Entra ID ранее назывался Azure Active Directory (Azure AD).
Предварительные требования для PowerShell
- У вас должна быть подписка на Azure, и вы должны быть администратором этой подписки.
- [Рекомендуется, но необязательно.] Используйте аппаратный модуль безопасности (HSM) или локальное хранилище ключей для создания локальной копии материалов ключей защитника TDE.
- У вас должна быть установлена и запущена среда Azure PowerShell.
- Создайте Azure Key Vault и ключ для TDE.
-
Инструкции по использованию аппаратного модуля безопасности (HSM) и Azure Key Vault
- Чтобы использовать хранилище ключей для TDE, обязательно настройте для него следующее свойство:
- мягкое удаление и защита от окончательного удаления
-
Инструкции по использованию аппаратного модуля безопасности (HSM) и Azure Key Vault
- Ключ должен иметь следующие атрибуты, которые должны использоваться для TDE:
- Дата активации (если задано) должна быть датой и временем в прошлом
- Дата окончания срока действия (если задано) должна быть будущей датой и временем
- Ключ должен находиться в состоянии "Включено"
- возможность выполнять операции получения, упаковки ключа и распаковки ключа.
- Чтобы использовать ключ управляемого HSM Azure, следуйте инструкциям по созданию и активации управляемого HSM с помощью Azure CLI.
Инструкции по установке модуля Az PowerShell см. в разделе "Установка Azure PowerShell".
Подробные сведения об Azure Key Vault см. в инструкциях PowerShell по Azure Key Vault и использовании функции мягкого удаления Azure 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
Предоставление разрешений Azure Key Vault серверу
Используйте командлет Set-AzKeyVaultAccessPolicy, чтобы предоставить вашему серверу доступ к хранилищу ключей перед использованием ключа из него для TDE (прозрачного шифрования данных).
Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
-ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey
Для добавления разрешений на сервере в управляемом HSM добавьте на сервер локальную роль RBAC "Пользователь шифрования криптографической службы управляемого HSM". Это позволяет серверу выполнять операции получения, упаковки ключей и распаковки ключей на ключах в управляемом HSM. Дополнительные сведения см. в разделе Управление ролями HSM
Добавьте ключ Azure Key Vault на сервер и задайте средство защиты TDE
- Используйте командлет Get-AzKeyVaultKey , чтобы получить идентификатор ключа из хранилища ключей.
- Используйте командлет Add-AzSqlServerKeyVaultKey , чтобы добавить ключ из Azure Key Vault на сервер.
- Используйте командлет Set-AzSqlServerTransparentDataEncryptionProtector, чтобы настроить ключ в качестве предохранителя TDE для всех ресурсов сервера.
- Используйте командлет Get-AzSqlServerTransparentDataEncryptionProtector, чтобы проверить правильность настройки предохранителя TDE.
Примечание.
Для управляемых ключей HSM используйте Az.Sql 2.11.1 версии PowerShell или более поздней.
Примечание.
Общая длина имени хранилища ключей и имени ключа не может превышать 94 символа.
Совет
Использование версий и безверсийных ключей Azure Key Vault для TDE
При настройке средства защиты TDE можно ссылаться на ключ Azure Key Vault с помощью определенной версии ключа или идентификатора ключа без версии.
В обоих случаях База данных SQL Azure всегда разрешает и использует последнюю включенную версию ключа в Azure Key Vault или Управляемом HSM Azure Key Vault. Используйте идентификаторы ключей без версии, чтобы избежать внедрения определенной версии ключа в конфигурацию предохранителя TDE.
Идентификаторы ключей без версии в настоящее время поддерживаются только для базы данных SQL Azure.
Примеры:
Идентификатор ключа, включающий определенную версию
https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>Идентификатор ключа без версии
https://<key-vault-name>.vault.azure.net/keys/<key-name>
# add the key from Azure 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>
Включите TDE
Выполните командлет Set-AzSqlDatabaseTransparentDataEncryption, чтобы включить TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"
Теперь в базе данных или хранилище данных включен TDE с ключом шифрования в Azure 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 , чтобы вернуть список ключей Azure Key Vault, добавленных на сервер.
# KeyId is an optional parameter, to return a specific key version Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>Используйте Remove-AzSqlServerKeyVaultKey, чтобы удалить ключ Azure 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 сервера, чтобы соответствовать требованиям безопасности: Поворот протектора Transparent Data Encryption с использованием PowerShell.
- Узнайте, как удалить потенциально скомпрометированный предохранитель TDE: Удалить потенциально скомпрометированный ключ.