Поделиться через


Прозрачное шифрование данных в Базе данных SQL Azure

прозрачное шифрование данных базы данных Azure SQL (предварительная версия) помогает защититься от угроз вредоносных действий, выполняя шифрование и расшифровку базы данных, связанных резервных копий и неактивных файлов журнала транзакций в режиме реального времени, не требуя внесения изменений в приложение.

При использовании TDE хранилище всей базы данных шифруется с помощью симметричного ключа, который называется ключом шифрования базы данных. В Базе данных SQL ключ шифрования базы данных защищается встроенным сертификатом сервера. Каждый сервер Базы данных SQL обладает уникальным встроенным сертификатом. Если база данных находится в отношении GeoDR, на каждом сервере для защиты используется разный ключ. Если две базы данных подключены к одному серверу, используется один встроенный сертификат. Майкрософт автоматически меняет эти сертификаты каждые 90 дней. Общее описание TDE см. в статье Прозрачное шифрование данных (TDE).

База данных Azure SQL не поддерживает интеграцию azure Key Vault с TDE. SQL Server на виртуальной машине Azure может использовать асимметричный ключ из Key Vault. Дополнительные сведения см. в разделе Example A: Transparent Data Encryption by Using an Asymmetric Key from the Key Vault.

Область применения: База данных SQL V12 (предварительная версия в некоторых регионах).

Важно!

В настоящий момент это предварительная версия функции. Я подтверждаю и принимаю, что реализация База данных SQL прозрачного шифрования данных в моих базах данных регулируется предварительными условиями лицензионного соглашения (например, Соглашение Enterprise, Соглашения Microsoft Azure или соглашения о подписке microsoft Online), а также любых применимых дополнительных условий использования предварительной версии Microsoft Azure.

Предварительная версия состояния TDE применяется даже в подмножестве географических регионов, где семейство версий V12 База данных SQL объявлено как общедоступное. TDE для База данных SQL не предназначено для использования в рабочих базах данных до тех пор, пока корпорация Майкрософт не объявит о повышении уровня TDE с предварительной версии до общедоступной версии. Дополнительные сведения о База данных SQL версии 12 см. в статье Новые возможности базы данных Azure SQL.

Разрешения

Чтобы подписаться на предварительную версию и настроить TDE через портал Azure с помощью REST API или PowerShell, необходимо подключиться в качестве владельца, участника или диспетчера безопасности SQL Azure.

Чтобы настроить TDE с помощью Transact-SQL, необходимо следующее:

  • Нужен доступ к предварительной версии TDE.

  • Чтобы создать ключ шифрования базы данных, необходимо быть администратором База данных SQL или членом роли dbmanager в базе данных master и иметь разрешение CONTROL для базы данных.

  • Чтобы выполнить инструкцию ALTER DATABASE с параметром SET, нужна только роль dbmanager .

Подписка на предварительную версию TDE и его включение в базе данных

  1. Перейдите на портал Azure по адресу https://portal.azure.com и войдите с помощью учетной записи администратора или участника Azure.

  2. В области слева нажмите кнопку ОБЗОР и выберите Базы данных SQL.

  3. Выбрав пункт Базы данных SQL в области слева, выберите свою пользовательскую базу данных.

  4. В колонке базы данных щелкните Все параметры.

  5. В колонке Параметры выберите Прозрачное шифрование данных (предварительная версия) , чтобы открыть колонку Прозрачное шифрование данных ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ . Если вы еще не подписались на предварительную версию TDE, параметры шифрования данных будут неактивны.

  6. Щелкните УСЛОВИЯ ПРЕДВАРИТЕЛЬНОЙ ВЕРСИИ.

  7. Прочтите условия предварительной версии и, если вы согласны с ними, установите флажок Прозрачное шифрование данныхОбзор условий проверка и нажмите кнопку ОК в нижней части страницы. Вернитесь в колонку Шифрование данныхPREVIEW , где теперь должна быть включена кнопка Шифрование данных .

  8. В колонке Шифрование данных ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ переместите кнопку Шифрование данных в положение ВКЛи нажмите кнопку Сохранить вверху страницы. В разделе Состояние шифрования будет отображаться приблизительный ход прозрачного шифрования данных.

    SQLDB_TDE_TermsNewUI SQLDB_TDE_TermsNewUI

    Вы также можете отслеживать ход выполнения шифрования, подключаясь к База данных SQL с помощью средства запроса, такого как SQL Server Management Studio в качестве пользователя базы данных с разрешением VIEW DATABASE STATE. Запрос столбца encryption_stateпредставления sys.dm_database_encryption_keys .

Включение TDE в Базе данных SQL с помощью Transact-SQL

Далее предполагается, что вы уже подписались на предварительную версию.

  1. Подключитесь к базе данных, используя учетные данные администратора или участника роли dbmanager в базе данных master.

  2. Выполните следующие инструкции, чтобы создать ключ шифрования и зашифровать базу данных.

    -- Create the database encryption key that will be used for TDE.
    CREATE DATABASE ENCRYPTION KEY 
    WITH ALGORITHM = AES_256 
    ENCRYPTION BY SERVER CERTIFICATE ##MS_TdeCertificate##;
    
    -- Enable encryption
    ALTER DATABASE [AdventureWorks] SET ENCRYPTION ON;
    GO
    
  3. Чтобы отслеживать ход выполнения шифрования База данных SQL, пользователи базы данных с разрешением VIEW DATABASE STATE могут запрашивать encryption_state столбец представления sys.dm_database_encryption_keys.

Включение TDE в Базе данных SQL с помощью PowerShell

Включить и отключить TDE можно с помощью следующих команд Azure PowerShell. Перед выполнением команды подключите свою учетную запись к окну PS. Далее предполагается, что вы уже подписались на предварительную версию. Дополнительные сведения о PowerShell см. в разделе Установка и настройка Azure PowerShell.

  1. Чтобы включить TDE и просмотреть состояние шифрования:

    Switch-AzureMode -Name AzureResourceManager
    Set-AzureSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" -State "Enabled"
    
    Get-AzureSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1"
    Get-AzureSqlDatabaseTransparentDataEncryptionActivity -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1"
    
  2. Чтобы отключить TDE:

    Set-AzureSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" -State "Disabled"
    Switch-AzureMode -Name AzureServiceManagement
    

Расшифровка базы данных с защитой TDE в Базе данных SQL

Отключение TDE с помощью портала Azure

  1. Перейдите на портал Azure по адресу https://portal.azure.com и войдите с помощью учетной записи администратора или участника Azure.

  2. В области слева нажмите кнопку ОБЗОР и выберите Базы данных SQL.

  3. Выбрав пункт Базы данных SQL в области слева, выберите свою пользовательскую базу данных.

  4. В колонке базы данных щелкните Все параметры.

  5. В колонке Параметры выберите Прозрачное шифрование данных (предварительная версия) , чтобы открыть колонку Прозрачное шифрование данных ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ .

  6. В колонке Прозрачное шифрование данных ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ переместите кнопку Шифрование данных в положение ВЫКЛи нажмите кнопку Сохранить вверху страницы. В разделе Состояние шифрования будет отображаться приблизительный ход прозрачной расшифровки данных.

    Вы также можете отслеживать ход расшифровки, подключаясь к База данных SQL с помощью средства запросов, например Management Studio, в качестве пользователя базы данных с разрешением VIEW DATABASE STATE. Запрос столбца encryption_stateпредставления sys.dm_database_encryption_keys.

Отключение TDE с помощью Transact-SQL

  1. Подключитесь к базе данных, используя учетные данные администратора или участника роли dbmanager в базе данных master.

  2. Выполните следующие инструкции, чтобы расшифровать базу данных.

    -- Enable encryption
    ALTER DATABASE [AdventureWorks] SET ENCRYPTION OFF;
    GO
    
  3. Чтобы отслеживать ход выполнения шифрования База данных SQL, пользователи базы данных с разрешением VIEW DATABASE STATE могут запрашивать encryption_state столбец представления sys.dm_database_encryption_keys.

Работа с базами данных с защитой TDE в Базе данных SQL

Расшифровывать базы данных для работы в Azure не нужно. Параметры TDE базы данных-источника прозрачно наследуются целевым объектом. Сюда входят операции, связанные с:

  • геовосстановлением;

  • самостоятельным восстановлением до точки во времени;

  • восстановлением удаленной базы данных;

  • активной георепликацией;

  • созданием копии базы данных.

Перемещение базы данных с защитой TDE с помощью файлов .Bacpac

При экспорте базы данных, защищенной TDE, с помощью функции Экспорта базы данных на портале Azure SQL базы данных или в мастере импорта и экспорта SQL Server содержимое базы данных не шифруется. Содержимое хранится в незашифрованных файлах .bacpac. Не забудьте защитить файлы .bacpac соответствующим образом и включить TDE после завершения импорта новой базы данных.

Включение TDE с помощью расширенного управления ключами

См. также:

Прозрачное шифрование данных (TDE)CREATE CREDENTIAL (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL)CREATE DATABASE ENCRYPTION KEY (Transact-SQL)ALTER DATABASE (Transact-SQL)ALTER DATABASE SET Options (Transact-SQL)