Подготовка к работе ключей Always Encrypted с помощью SQL Server Management Studio
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
В этой статье описаны действия по подготовке главных ключей столбцов и ключей шифрования столбцов для работы функции Always Encrypted с помощью SQL Server Management Studio (SSMS). Установите последнюю общедоступную версию SSMS при подготовке ключей шифрования.
Обзор управления ключами Always Encrypted, включая общие рекомендации и важные вопросы безопасности, см. в разделе Общие сведения об управлении ключами Always Encrypted.
Подготовка главных ключей столбцов в диалоговом окне "Новый главный ключ столбца"
В диалоговом окне Новый главный ключ столбца можно создать главный ключ столбца или выбрать существующий ключ в хранилище ключей, а также создать метаданные главного ключа столбца для сгенерированного или выбранного ключа в базе данных.
С помощью обозреватель объектов перейдите к узлу "Безопасность —> ключи Always Encrypted" в базе данных.
Щелкните правой кнопкой мыши узел главных ключей столбцов и выберите новый главный ключ столбца....
В диалоговом окне Новый главный ключ столбца введите имя объекта метаданных главного ключа столбца.
Выберите хранилище ключей.
Хранилище сертификатов — текущий пользователь — указывает расположение хранилища сертификатов текущего пользователя в хранилище сертификатов Windows, которое является личным хранилищем.
Хранилище сертификатов — локальный компьютер — указывает расположение хранилища сертификатов локального компьютера в хранилище сертификатов Windows.
Azure Key Vault — вам нужно войти в Azure (нажмите кнопку "Войти"). После входа вы сможете выбрать одну из подписок Azure и хранилище ключей или управляемый HSM (требуется SSMS 18.9 или более поздней версии).
Примечание.
Чтобы использовать главные ключи столбцов, хранящиеся в управляемом модуле HSM в Azure Key Vault, требуется SSMS 18.9 или более поздних версий.
Поставщик хранилища ключей (KSP) — указывает хранилище ключей, которое доступно через поставщик хранилища ключей (KSP), реализующий API криптографии следующего поколения (CNG). Как правило, этот тип хранилища является аппаратным модулем безопасности (HSM). После выбора этого параметра необходимо выбрать поставщик KSP. По умолчанию выбранпоставщик хранилища ключей Microsoft Software Key Store Provider . Чтобы использовать главный ключ столбца, хранящийся в HSM, выберите KSP для устройства (он должен быть установлен и настроен на компьютере до открытия диалогового окна).
Поставщик служб шифрования (CSP) — хранилище ключей, доступное через поставщик служб шифрования (CSP), который реализует Cryptography API (CAPI). Как правило, это хранилище является аппаратным модулем безопасности (HSM). После выбора этого параметра необходимо выбрать поставщик CSP. Чтобы использовать главный ключ столбца, хранящийся в HSM, выберите CSP для устройства (он должен быть установлен и настроен на компьютере до открытия диалогового окна).
Примечание.
Так как CAPI — это устаревший API, параметр "Поставщик служб шифрования" отключен по умолчанию. Его можно включить, создав значение CAPI Provider Enabled DWORD в разделе [HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\sql13\Tools\Client\Always Encrypted] реестра Windows и установив для него 1. Если хранилище ключей не поддерживает CNG, вместо CAPI следует использовать CNG.
Дополнительные сведения о хранилищах ключей см. в разделе Создание и хранение главных ключей столбцов для Always Encrypted.
Если вы используете SQL Server 2019 (15.x) и экземпляр SQL Server настроен с безопасным анклавам, установите флажок "Разрешить вычисления анклава", чтобы включить анклав главного ключа. Дополнительные сведения см. в статье Always Encrypted с безопасными анклавами.
Примечание.
Флажок Разрешить вычисления анклава не отображается, если в экземпляре SQL Server не выполнена правильная настройка безопасных анклавов.
Выберите существующий ключ в хранилище ключей либо нажмите кнопку Создать ключ или Создать сертификат , чтобы создать ключ в хранилище ключей.
Нажмите кнопку "ОК ", а новый ключ появится в списке.
После завершения работы с диалоговым окном среда SQL Server Management Studio создаст метаданные для главного ключа столбца в базе данных. Диалоговое окно создает и выдает инструкцию CREATE COLUMN MASTER KEY (Transact-SQL).
При включении поддержки анклава для главного ключа столбца среда SSMS также подписывает метаданные с помощью главного ключа столбца.
Разрешения на подготовку главного ключа столбца
Для создания главного ключа столбца в диалоговом окне необходимо разрешение ALTER ANY COLUMN MASTER KEY в базе данных. Вам также требуются разрешения для хранилища ключей на доступ к главному ключу столбца и на его использование. Подробные сведения о разрешениях хранилища ключей, необходимых для операций управления ключами, см. в разделе "Создание и хранение главных ключей столбцов" для Always Encrypted и просмотр раздела, соответствующего хранилищу ключей.
Подготовка ключей шифрования столбцов в диалоговом окне "Новый ключ шифрования столбца"
В диалоговом окне Ключ шифрования нового столбца можно создать ключ шифрования столбца, зашифровать его с помощью главного ключа столбца, а также создать метаданные ключа шифрования столбца в базе данных.
- С помощью обозревателя объектовперейдите к папке Безопасность > Ключи постоянного шифрования в базе данных.
- Щелкните правой кнопкой мыши папку "Ключи шифрования столбцов" и выберите новый ключ шифрования столбцов....
- В диалоговом окне Новый ключ шифрования столбца введите имя объекта метаданных ключа шифрования столбца.
- Выберите объект метаданных, который представляет ваш главный ключ столбца в базе данных.
- Щелкните OK.
После завершения диалогового окна СРЕДА SQL Server Management Studio (SSMS) создает новый ключ шифрования столбцов. Затем SSMS извлекает метаданные для главного ключа столбца, выбранного из базы данных. После этого среда SSMS с помощью метаданных главного ключа столбца получит доступ в хранилище ключей, содержащее ваш главный ключ столбца, и зашифрует ключ шифрования столбца. Наконец, среда SSMS создаст данные метаданных для нового шифрования столбца в базе данных, сформировав и выполнив инструкцию CREATE COLUMN ENCRYPTION KEY (Transact-SQL).
Примечание.
Чтобы использовать главные ключи столбцов, хранящиеся в управляемом модуле HSM в Azure Key Vault, требуется SSMS 18.9 или более поздних версий.
Разрешения на подготовку ключа шифрования столбца
Для создания метаданных ключа шифрования столбца и для доступа к метаданным главного ключа столбца необходимы разрешения ALTER ANY COLUMN ENCRYPTION KEY и VIEW ANY COLUMN MASTER KEY DEFINITION для базы данных. Вам также требуются разрешения для хранилища ключей на доступ к главному ключу столбца и на его использование. Дополнительные сведения о разрешениях для хранилища ключей, необходимых, чтобы выполнять операции управления ключами, см. в статье Создание и хранение главных ключей столбцов для Always Encrypted в разделе о нужном хранилище.
Подготовка ключей Always Encrypted с помощью мастера Always Encrypted
Мастер Always Encrypted — это средство для шифрования, расшифровки и повторного шифрования выбранных столбцов базы данных. Хотя он может использовать и уже настроенные ключи, он также позволяет создать новый главный ключ столбца и новое шифрование столбца.
Next Steps
- Настройка шифрования столбцов с помощью мастера Always Encrypted
- Настройка шифрования столбцов с помощью Always Encrypted с пакетом приложения уровня данных
- Ротация ключей Always Encrypted с помощью SQL Server Management Studio
- Разработка приложений с помощью Always Encrypted
- Перенос данных в столбцы или из них с помощью Always Encrypted с использованием мастера импорта и экспорта SQL Server
См. также
- Always Encrypted
- Общие сведения об управлении ключами для Always Encrypted
- Создание и хранение главных ключей столбцов для Always Encrypted
- Настройка функции Always Encrypted с помощью SQL Server Management Studio
- Подготовка ключей Always Encrypted с помощью PowerShell
- CREATE COLUMN MASTER KEY (Transact-SQL)
- DROP COLUMN MASTER KEY (Transact-SQL)
- CREATE COLUMN ENCRYPTION KEY (Transact-SQL)
- ALTER COLUMN ENCRYPTION KEY (Transact-SQL)
- DROP COLUMN ENCRYPTION KEY (Transact-SQL)
- sys.column_master_keys (Transact-SQL)
- sys.column_encryption_keys (Transact-SQL)