Общие сведения о Базе данных SQL Microsoft Azure и возможностях безопасности управляемого экземпляра SQL

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

В этой статье описаны основы защиты уровня данных приложения с помощью базы данных SQL Azure, Управляемого экземпляра SQL Azureи Azure Synapse Analytics. Эта стратегия безопасности использует многоуровневый подход (эшелонированная защита), который представлен на следующем рисунке (уровни рассматриваются, начиная с наружного):

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

Безопасность сети

База данных SQL Microsoft Azure, управляемый экземпляр SQL и Azure Synapse Analytics вместе составляют службу реляционной базы данных для облачных и корпоративных приложений. Чтобы защитить клиентские данные, брандмауэр запрещает сетевой доступ к серверу, кроме разрешенного явным образом по IP-адресу или виртуальной сети Azure источника трафика.

Правила брандмауэра для IP-адресов

Правила брандмауэра для IP-адресов предоставляют доступ к базам данным на основе исходного IP-адреса каждого запроса. Дополнительные сведения см. в разделе Обзор правил брандмауэра для Базы данных SQL Microsoft Azure и Azure Synapse Analytics.

Правила брандмауэра для виртуальной сети

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

Правила виртуальной сети позволяют Базе данных SQL Azure принимать только те подключения, которые отправлены из определенных подсетей в виртуальной сети.

Примечание

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

Управление доступом

Важно!

Управление базами данных и серверами в Azure осуществляется путем назначения ролей учетной записи пользователя портала. Дополнительные сведения об этом см. в разделе Управление доступом на основе ролей на портале Microsoft Azure.

Аутентификация

Аутентификацией называют процесс подтверждения личности пользователя. База данных SQL Azure и Управляемый экземпляр SQL Azure поддерживают как проверку подлинности SQL, так и проверку подлинности AAD. Управляемый экземпляр SQL дополнительно поддерживает проверку подлинности Windows для субъектов Azure AD.

  • Аутентификация SQL.

    Проверкой подлинности SQL называется проверка подлинности пользователя при подключении к Базе данных SQL Azure или Управляемому экземпляру SQL Azure, использующая имя пользователя и пароль. При создании сервера необходимо указать имя пользователя и пароль для администратора сервера. Используя эти учетные данные, администратор сервера сможет выполнить аутентификацию в любой базе данных на этом сервере или в экземпляре и получить права владельца. После этого администратор сервера сможет создать дополнительные имена входа и пользователей SQL, чтобы позволить пользователям подключаться с выделенными для них именами пользователей и паролями.

  • Аутентификация Azure Active Directory.

    Аутентификация Azure Active Directory — это механизм подключения к службам База данных SQL Azure, Управляемый экземпляр SQL Azure и Azure Synapse Analytics с помощью удостоверений в Azure Active Directory (Azure AD). С помощью аутентификации Azure Active Directory администраторы могут централизованно управлять удостоверениями и разрешениями для пользователей базы данных совместно с другими службами Azure. Это снижает количество хранимых паролей, а также позволяет применять централизованные политики их смены.

    Чтобы применить для Базы данных SQL аутентификацию Azure AD, необходимо создать администратора сервера, который в этом контексте называется администратором Active Directory. См. дополнительные сведения об использовании аутентификации Azure Active Directory для аутентификации с помощью SQL. Аутентификация Azure AD поддерживает как управляемые, так и федеративные учетные записи. Федеративные учетные записи применимы для пользователей и групп Windows в пользовательских доменах, для которых настроена федерация с Azure AD.

    Также доступны дополнительные варианты проверки подлинности Azure AD: универсальная проверка подлинности Active Directory для SQL Server Management Studio, которая поддерживает многофакторную проверку подлинности, и условный доступ.

  • Проверка подлинности Windows для субъектов Azure AD (предварительная версия):

    Проверка подлинности Kerberos для субъектов Azure AD (предварительная версия) включает Проверку подлинности Windows для Управляемого экземпляра SQL Azure. Проверка подлинности Windows для управляемых экземпляров позволяет клиентам перемещать существующие службы в облако, сохраняя при этом простой пользовательский интерфейс и предоставляя основу для модернизации инфраструктуры.

    Чтобы включить проверку подлинности Windows для субъектов Azure Active Directory (Azure AD), необходимо превратить клиент Azure AD в независимую область Kerberos и создать входящее доверие в домене клиента. Обратитесь к дополнительным сведениям в разделе Реализация проверки подлинности Windows при доступе к Управляемому экземпляру SQL Azure с помощью Azure Active Directory и Kerberos.

Важно!

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

Авторизация

Авторизация относится к управлению доступом к ресурсам и командам в базе данных. Для этого пользователю назначаются разрешения в базе данных, размещенной в Базе данных SQL Azure или Управляемом экземпляре SQL Azure. В идеальном случае для управления разрешениями учетные записи пользователей добавляются в роли базы данных, которым назначаются разрешения на уровне базы данных. Кроме того, отдельному пользователю могут быть предоставлены определенные разрешения на уровне объекта. См. дополнительные сведения об операциях входа и пользователях.

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

Защита на уровне строк

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

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

Защита от угроз

База данных SQL и управляемый экземпляр SQL обеспечивают защиту клиентских данных, предоставляя возможности аудита и обнаружения угроз.

Аудит SQL в журналах Azure Monitor и концентраторах событий

Аудит Базы данных SQL и Управляемого экземпляра SQL отслеживает действия в базе данных и помогает поддерживать соответствие стандартам безопасности, сохраняя события базы данных в журнал аудита, сохраненный в учетной записи хранения Azure. Благодаря аудиту пользователи могут в реальном времени отслеживать действия в базе данных, а также анализировать и изучать действия за прошедшие периоды, чтобы выявить потенциальные угрозы, возможные нарушения и риски безопасности. См. дополнительные сведения об аудите Базы данных SQL.

Расширенная защита от угроз

Функция «Расширенная защита от угроз для SQL» выполняет анализ журналов для обнаружения необычных действий и потенциально опасных злоумышленных попыток доступа к базам данных или их использования, в числе которых следующие. Оповещения создаются для подозрительных действий, таких как атака путем внедрения кода SQL, потенциальный несанкционированный доступ к данным, атака методом подбора. Также они сообщают об аномалиях в схемах доступа, что позволяет предотвратить атаки с повышением привилегий и использованием украденных учетных данных. Оповещения отображаются в Microsoft Defender для облака вместе со сведениями о подозрительных действиях и рекомендациями по расследованию ситуации и устранению угрозы. Расширенную защиту от угроз можно включить для всех серверов за дополнительную плату. Дополнительные сведения см. в статье Начало работы с Расширенной защитой от угроз для Базы данных SQL Microsoft Azure.

Схема, на которой показано, как функция «Обнаружение угроз SQL» выполняет мониторинг доступа к базе данных SQL для защиты веб-приложения от внешних атак и злоумышленников внутри организации.

Защита и шифрование информации

Протокол TLS (шифрование при передаче)

База данных SQL, Управляемый экземпляр SQL и Azure Synapse Analytics защищают данные клиентов путем шифрования данных в движении с помощью протокола TLS.

База данных SQL, Управляемый экземпляр SQL и Azure Synapse Analytics принудительно применяют шифрование (SSL/TLS) для всех подключений. Это гарантирует, что при передаче между клиентом и сервером все данные шифруются независимо от значения параметров Encrypt и TrustServerCertificate в строке подключения.

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

Например, при использовании драйвера ADO.NET это делается с помощью параметров Encrypt = true и TrustServerCertificate = false. Строка подключения, полученная с портала Azure, будет содержать правильные параметры.

Важно!

Обратите внимание, что некоторые драйверы сторонних производителей могут не использовать TLS по умолчанию или полагаться на более старую версию TLS (<1.2) для работы. В этом случае сервер по-прежнему позволяет выполнять подключение к базе данных. Тем не менее рекомендуется оценить риски безопасности, возникающие при подключении таких драйверов и приложений к Базе данных SQL Microsoft Azure, особенно если в ней хранятся конфиденциальные данные.

Дополнительные сведения о протоколе TLS и настройках подключения см. в рекомендациях по использованию протокола TLS.

Прозрачное шифрование данных (шифрование при хранении)

Прозрачное шифрование данных (TDE) для Базы данных SQL, Управляемого экземпляра SQL и Azure Synapse Analytics добавляет дополнительный уровень безопасности, помогая защищать неактивные данные от несанкционированного или автономного доступа к необработанным файлам или резервным копиям данных. Это актуально для таких сценариев, как кража оборудования из центра обработки данных или небезопасная утилизация оборудования или носителей, например дисковых накопителей и лент с резервными копиями. TDE шифрует всю базу данных с помощью алгоритма шифрования AES, а значит разработчикам приложений не придется вносить изменения в существующие приложения.

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

Управление ключами с помощью Azure Key Vault

Создание собственных ключей (BYOK) поддерживает прозрачное шифрование данных (TDE), что позволяет пользователям самостоятельно управлять созданием и сменой ключей с помощью облачной системы Azure для управления внешними ключами Azure Key Vault. В случае отзыва доступа базы данных к хранилищу ключей расшифровка и считывание такой базы данных станет невозможным. Azure Key Vault предоставляет централизованную платформу для управления ключами, которая использует тщательно отслеживаемые аппаратные модули безопасности (HSM) и позволяет разделять обязанности по управлению ключами и данными, обеспечивая соответствие требованиям безопасности.

Always Encrypted (шифрование при использовании)

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

Функция Always Encrypted разработана для защиты от доступа к конфиденциальным данным, которые хранятся в определенных столбцах базы данных (например, номера кредитных карт или персональные коды, а также данные, доступ к которым предоставляется строго ограниченному кругу лиц). Например, администраторы баз данных или другие привилегированные пользователи имеют доступ к базе данных для выполнения задач управления, но с точки зрения бизнеса им не нужен доступ к конкретным данным в зашифрованных столбцах. Данные всегда зашифрованы и расшифровываются только для обработки в клиентских приложениях, которые имеют доступ к ключу шифрования. Ключ шифрования никогда не передается в базу данных или управляемый экземпляр SQL. Его можно хранить в Windows Certificate Store или в Azure Key Vault.

Динамическое маскирование данных

Схема, показывающая динамическое маскирование данных. Бизнес-приложение отправляет данные в базу данных SQL, которая маскирует данные перед их отправкой в бизнес-приложение.

Динамическое маскирование данных ограничивает возможность раскрытия конфиденциальных данных за счет маскирования этих данных для непривилегированных пользователей. Служба динамического маскирования данных автоматически обнаруживает потенциально конфиденциальные данные в Базе данных SQL Microsoft Azure и Управляемом экземпляре SQL и предоставляет практические рекомендации по маскированию этих полей с минимальным влиянием на прикладной уровень. Эта функция работает по принципу обсфукации, скрывая конфиденциальные данные в результирующем наборе запроса по заданным полям базы данных, не меняя сами данные в базе данных. Дополнительную информацию см. в статье Начало работы с динамическим маскированием данных в Базе данных SQL Microsoft Azure и Управляемом экземпляре SQL.

Управление безопасностью

Оценка уязвимостей

Оценка уязвимостей — это легко настраиваемая служба, которая помогает обнаруживать, отслеживать и устранять потенциальные уязвимости, что позволяет предварительно повышать общую защиту базы данных. Оценка уязвимостей входит в состав Microsoft Defender для SQL — единого пакета расширенных средств обеспечения безопасности SQL. Использовать оценку уязвимостей и управлять ею можно через центральный портал Microsoft Defender для SQL.

Обнаружение и классификация данных

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

  • Различные сценарии безопасности, такие как мониторинг (аудит) и оповещение об аномальном доступе к конфиденциальным данным.
  • Управление доступом к базам данных, содержащим конфиденциальные данные, и усиление их защиты.
  • соблюдение стандартов конфиденциальности данных и нормативных требований;

Дополнительные сведения см. в статье Начало работы с обнаружением и классификацией данных.

Соответствие нормативным требованиям

В дополнение к приведенным выше функциям и возможностям, которые помогают выполнять требования к безопасности приложений, в отношении Базы данных SQL Azure регулярно проводится аудит, а сама база данных сертифицирована в соответствии с рядом стандартов. Дополнительные сведения см. в центре управления безопасностью Microsoft Azure, где представлен актуальный список сертификатов соответствия Базы данных SQL.

Дальнейшие действия