Защита данных
После настройки и защиты доступа к сети и удостоверениям необходимо выбрать методы защиты данных, включая неактивные, перемещаемые и просматриваемые пользователями и администраторами данные.
Шифрование данных
Зашифрованные подключения принудительно выполняются База данных SQL Azure с возможностью дополнительного указания требуемой минимальной версии> (1.0, >1.1 или >1.2). Рекомендуется принудительное шифрование на клиенте, чтобы избежать согласования сервера и не доверять сертификату сервера в качестве рекомендации.
Прозрачное шифрование данных
прозрачное шифрование данных (TDE) обеспечивает шифрование неактивных данных и по умолчанию используется для всех новых баз данных в База данных SQL Azure. Его можно настроить для всех параметров развертывания с помощью переключателя в портал Azure, как показано ниже.
На уровне сервера можно также выбрать использование ключа, управляемого службой, или использовать собственный ключ (BYOK) с помощью параметра ключа, управляемого клиентом. По умолчанию ключом управляет служба Azure. Azure автоматически создает ключ для шифрования баз данных и управляет сменами ключей. Вы узнали, как это сделать с помощью портал Azure, но вы также можете использовать Azure PowerShell, Azure CLI, Transact-SQL (T-SQL) или REST API.
Управляемые клиентом ключи с TDE
Вы также можете использовать BYOK и воспользоваться преимуществами хранилища ключей Azure. Преимущества использования ключей, управляемых клиентом, :
- Полный и детализированный контроль над использованием и управлением предохранителем TDE
- Прозрачность использования предохранителя TDE
- Возможность реализации разделения обязанностей в управлении ключами и данными в организации
- Администратор хранилища ключей может отозвать разрешения доступа к ключам, чтобы сделать зашифрованную базу данных недоступной
- Централизованное управление ключами в AKV
- Больше доверия от конечных клиентов, так как AKV разработан таким образом, чтобы корпорация Майкрософт не видела или извлекает ключи шифрования.
Вы также можете использовать управляемое удостоверение, назначаемое пользователем (UMI), с ключами, управляемыми клиентом для TDE, которые:
- Позволяет предварительно авторизовать доступ к хранилищу ключей для логических серверов SQL Azure путем создания управляемого удостоверения, назначаемого пользователем, и предоставления ему доступа к хранилищу ключей, даже до создания сервера или базы данных.
- Позволяет создавать логический сервер SQL Azure с включенным TDE и CMK.
- Позволяет назначать одно и то же управляемое удостоверение, назначаемое пользователем нескольким серверам, устраняя необходимость отдельно включить управляемое удостоверение, назначаемое системой для каждого логического сервера SQL Azure, и предоставить ему доступ к хранилищу ключей.
- Предоставляет возможность принудительного применения CMK во время создания сервера с помощью встроенной политики Azure.
Автоматическая смена ключей была введена для ключей, управляемых клиентом, с помощью TDE. При включении сервер постоянно проверяет хранилище ключей для любых новых версий ключа, используемых в качестве средства защиты TDE. Если обнаружена новая версия ключа, средство защиты TDE на сервере автоматически поворачивается на последнюю версию ключа в течение 60 минут.
Always Encrypted
Вы также можете использовать шифрование на уровне столбцов, которое поддерживается в SQL Azure точно так же, как в SQL Server. Этот процесс включает шифрование конфиденциальных данных на стороне клиента с помощью ключей, которые никогда не передаются в систему базы данных. Кроме того, драйвер клиента прозрачно шифрует параметры запроса и расшифровывает зашифрованные результаты. В настоящее время поддерживается шифрование зашифрованных данных для сравнения равенства, включая JOIN
GROUP BY
операторы и DISTINCT
операторы с помощью детерминированного шифрования.
Always Encrypted с безопасными анклавами расширяет возможности конфиденциальных вычислений Always Encrypted, обеспечивая шифрование на месте и более подробные конфиденциальные запросы. Функция Always Encrypted с безопасными анклавами теперь доступна для базы данных SQL Azure, но пока не поддерживается в управляемом экземпляре SQL Azure.
Динамическое маскирование данных
Иногда необходимо маскировать или изменять определенные данные, чтобы непривилегированные пользователи не могли их увидеть, но они могут выполнять запросы, содержащие эти данные. Эта возможность поддерживается так же, как и в SQL Server. Однако на портале Azure есть дополнительные возможности и представления, рекомендующие, какие поля стоит маскировать.
Рассмотрим пример, в котором данные содержат конфиденциальную информацию, имена и адреса электронной почты. Маску можно применить к этим столбцам в портал Azure, выбрав меню динамического маскирования данных в области "Безопасность" в области конфигурации базы данных SQL или с помощью следующих команд T-SQL:
ALTER TABLE Data.Membership ALTER COLUMN FirstName
ADD MASKED WITH (FUNCTION = 'partial(1, "xxxxx", 1)')
ALTER TABLE Data.Membership ALTER COLUMN Email
ADD MASKED WITH (FUNCTION = 'email()')
ALTER TABLE Data.Membership ALTER COLUMN DiscountCode
ADD MASKED WITH (FUNCTION = 'random(1, 100)')
GRANT UNMASK to DataOfficers
На примере команды вы видите, что существует несколько способов применения маски с помощью функций.
Например, при назначении определенной роли, скажем, DataOfficers (только для примера), некоторым пользователям может потребоваться просмотр замаскированных данных. Вы можете предоставить им UNMASK
права с помощью следующей команды T-SQL:
GRANT UNMASK TO DataOfficers
В зависимости от того, кто отправляет запрос, результаты будут выглядеть следующим образом:
С помощью подробных динамических разрешений маскирования данных можно предоставить или отозвать UNMASK
разрешение на уровне базы данных, уровне схемы, уровня таблицы или на уровне столбца пользователю базы данных, удостоверению Microsoft Entra, группе Microsoft Entra или роли базы данных.
Задачи по защите данных
Чтобы настроить защиту данных, нужно выполнить следующие действия:
- Убедитесь, что приложения принудительно шифруют подключение и используют самую высокую версию TLS, совместимую с приложением, клиентами и драйверами.
- Оценка и включение TDE. Это параметр по умолчанию для новых баз данных, но при миграции вам потребуется включить его вручную.
- Воспользуйтесь преимуществами динамического маскирования данных.
- Для расширенной защиты можно настроить Always Encrypted с помощью функции безопасных анклавах .