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


Настройка шифрования столбцов с помощью мастера Always Encrypted

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

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

Мастер позволяет шифровать столбцы с существующими ключами шифрования столбцов, создать новый ключ шифрования столбцов или как новый ключ шифрования столбцов, так и новый главный ключ столбцов.

Если база данных настроена с безопасным анклавом, вы можете выполнять криптографические операции на месте без перемещения данных из базы данных. Мастер удаляет все зависимости, блокирующие изменение схемы столбца для шифрования. Он выдает шифрование на месте для каждого столбца с помощью анклава в ядре СУБД. После завершения шифрования мастер повторно создает зависимости. Дополнительные сведения об Always Encrypted с безопасными анклавами см. в статье Always Encrypted с безопасными анклавами.

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

Совет

Использование шифрования на месте с помощью Always Encrypted с безопасными анклавами, если они доступны в вашей среде, могут значительно сократить время и надежность криптографических операций.

Примечание.

Выполнение криптографических операций может занимать много времени. В течение этого периода база данных недоступна для записи транзакций. PowerShell — это рекомендуемое средство для криптографических операций в больших таблицах. См. статью "Настройка шифрования столбцов с помощью Always Encrypted с помощью PowerShell " или "Настройка шифрования столбцов на месте" с помощью PowerShell.

Разрешения

Чтобы выполнять криптографические операции с помощью мастера, требуются разрешения VIEW ANY COLUMN MASTER KEY DEFINITION и VIEW ANY COLUMN ENCRYPTION KEY DEFINITION. Вам также требуются разрешения для хранилища ключей на создание главного ключа столбца, на доступ к нему и на его использование. Подробные сведения о разрешениях хранилища ключей см. в статье "Создание и хранение главных ключей столбцов" для Always Encrypted или поиск раздела, соответствующего хранилищу ключей.

Запуск мастера Always Encrypted

Мастер можно запустить на трех разных уровнях.

  • На уровне базы данных — если необходимо зашифровать несколько столбцов, расположенных в разных таблицах.
  • На уровне таблицы — если необходимо зашифровать несколько столбцов, расположенных в одной таблице.
  • На уровне столбца — если требуется зашифровать один конкретный столбец.
  1. Подключитесь к SQL Server с помощью компонента обозреватель объектов SQL Server Management Studio.

  2. Чтобы зашифровать следующие элементы:

    1. Несколько столбцов, расположенных в разных таблицах в базе данных, — щелкните правой кнопкой мыши базу данных, наведите указатель на Задачи, а затем выберите Шифрование столбцов.
    2. Несколько столбцов, расположенных в одной таблице, — перейдите к таблице, щелкните ее правой кнопкой мыши и выберите Шифрование столбцов.
    3. Отдельный столбец — перейдите к столбцу, щелкните его правой кнопкой мыши и выберите Шифрование столбцов.

Страница выбора столбцов

На этой странице выбираются столбцы, которые необходимо зашифровать, повторно зашифровать или расшифровать, а также определяется целевая конфигурация шифрования для выбранных столбцов.

Для шифрования столбца с открытым текстом (незашифрованный столбец) выберите тип шифрования (Детерминированный или Случайный) и ключ шифрования.

Чтобы изменить тип шифрования или сменить ключ шифрования столбца для уже зашифрованного столбца, выберите нужный тип шифрования и ключ.

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

Чтобы расшифровать зашифрованный столбец, выберите вариант Открытый текст в качестве типа шифрования.

Примечание.

Если вы хотите использовать шифрование на месте и используете существующие ключи, убедитесь, что вы выбрали ключи с поддержкой анклава , аннотированные с поддержкой анклава.

Примечание.

Мастер не поддерживает криптографические операции с темпоральными таблицами и таблицами в памяти. Можно создать пустые темпоральные таблицы или таблицы в памяти с помощью Transact-SQL и вставить данные через приложение.

Страница конфигурации главного ключа

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

При настройке нового главного ключа столбца можно выбрать существующий ключ в хранилище сертификатов Windows или в Azure Key Vault и создать в мастере только объект метаданных для ключа в базе данных, или вы можете создать как ключ, так и объект метаданных, описывающий ключ в базе данных.

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

Дополнительные сведения о создании и хранении главных ключей столбцов в Хранилище сертификатов Windows, Azure Key Vault или других хранилищах ключей см. в статье "Создание и хранение главных ключей столбцов для Always Encrypted или Управление ключами для Always Encrypted с безопасными анклавами".

Совет

Мастер позволяет просматривать и создавать ключи только в хранилище сертификатов Windows и Azure Key Vault. Он также создает имена для новых ключей и объектов метаданных базы данных, описывающих ключи. Если вам требуется больший контроль над процессом подготовки ключей (и дополнительные варианты хранилищ ключей, содержащих главный ключ столбца), можно воспользоваться диалоговыми окнами Новый главный ключ столбца и Новый ключ шифрования столбца, чтобы сначала создать ключи, а затем запустить мастер и выбрать созданные ключи. См. раздел "Подготовка главных ключей столбцов" с помощью диалогового окна "Новый главный ключ столбца" или "Подготовка ключей шифрования столбцов" и "Подготовка ключей шифрования столбцов" с помощью диалогового окна "Новый ключ шифрования столбцов".

Страница параметров шифрования на месте

Если вы настроили безопасный анклава в базе данных и используете ключи с поддержкой анклава, эта страница позволяет указать параметры аттестации анклава, необходимые для шифрования на месте. Если вы не хотите использовать шифрование на месте, отмените выбор шифрования на месте, чтобы продолжить шифрование на стороне клиента. Мы рекомендуем оставить этот флажок включенным, чтобы мастер смог использовать шифрование на месте.

Дополнительные сведения об аттестации анклава см. в разделе "Настройка аттестации для Always Encrypted с помощью Аттестация Azure

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

См. также