Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:База данных 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.
Примечание.
Azure SQL также поддерживает использование ключа RSA, хранящегося в управляемом HSM в качестве средства защиты TDE. Управляемый модуль HSM Azure — это полностью управляемая, высокодоступная, однотенантная и совместимая со стандартами облачная служба, которая позволяет защитить криптографические ключи для облачных приложений с помощью FIPS 140-2 уровня 3, проверенных HSM. Дополнительные сведения об управляемых HSM.
Примечание.
Идентификатор Microsoft Entra ранее был известен как 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, следуйте инструкциям по созданию и активации управляемого модуля 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, чтобы предоставить серверу доступ к хранилищу ключей, прежде чем назначать ключ из этого хранилища для прозрачного шифрования данных.
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 символа.
Совет
Пример KeyId из Azure Key Vault: https://contosokeyvault.vault.azure.net/keys/Key1/<key-id>
Пример KeyId из управляемого модуля HSM:
https://contosoMHSM.managedhsm.azure.net/keys/myrsakey
# 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>
Включение прозрачного шифрования данных
Выполните командлет 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 для сервера в соответствии с требованиями безопасности, приводятся в этой статье.
- Узнайте, как удалить потенциально скомпрометированный предохранитель TDE: Удалить потенциально скомпрометированный ключ.