Учебник. Защита базы данных в службе "База данных SQL Azure"

Применимо к:База данных SQL Azure

Из этого руководства вы узнаете, как выполнить следующие задачи:

  • Создавать правила брандмауэра уровня сервера и уровня базы данных.
  • Настройка администратора Microsoft Entra
  • Управление доступом пользователей с помощью проверки подлинности SQL, проверки подлинности Microsoft Entra и безопасных строка подключения
  • Включение функций безопасности, таких как Microsoft Defender для SQL, аудит, маскирование данных и шифрование

Примечание.

Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).

База данных SQL Azure защищает данные, предоставляя возможность:

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

Примечание.

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

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

Совет

Этот бесплатный модуль Learn показывает, как защитить базу данных в База данных SQL Azure.

Необходимые компоненты

Для работы с руководством требуется наличие следующих компонентов:

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

Войдите на портал Azure

Чтобы выполнить все действия из этого руководства, войдите на портал Azure.

Создание правил брандмауэра

Базы данных в службе "База данных SQL" защищены брандмауэрами в Azure. По умолчанию все подключения к серверу и базе данных отклоняются. Дополнительные сведения см. в статье о правилах брандмауэра уровня сервера и базы данных.

Чтобы обеспечить наибольшую безопасность, для параметра Разрешить доступ к службам Azure следует установить значение Выключено. Затем создайте зарезервированный IP-адрес (классическое развертывание) для ресурса, от которого нужно принять подключение (виртуальная машина Azure или облачная служба), и разрешите доступ через брандмауэр только этому IP-адресу. Если вы используете модель развертывания Resource Manager, для каждого ресурса необходим выделенный общедоступный IP-адрес.

Примечание.

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

Установка правил брандмауэра уровня сервера

Правила брандмауэра для IP-адресов уровня сервера применяются ко всем базам данных на одном сервере.

Чтобы установить правило брандмауэра на уровне сервера, сделайте следующее:

  1. На портале Azure в меню слева выберите пункт Базы данных SQL и на странице Базы данных SQL выберите имя своей базы данных.

    Screenshot of the Azure portal page for a logical SQL database, highlighting the server name.

    Примечание.

    Не забудьте скопировать полное имя сервера (например, ваш_сервер.database.windows.net) для дальнейшего использования в этом руководстве.

  2. В разделе Параметров выберите Сеть. Перейдите на вкладку "Общедоступный доступ", а затем выберите выбранные сети в разделе "Доступ к общедоступной сети", чтобы отобразить раздел правил брандмауэра.

    Screenshot of the Azure portal Networking page for a logical SQL Server, showing the server-level IP firewall rule.

  3. Выберите " Добавить IP-адрес клиента" на панели инструментов, чтобы добавить текущий IP-адрес в новое правило брандмауэра IP-адресов. С использованием правила брандмауэра IP-адресов можно открыть порт 1433 для одного IP-адреса или диапазона IP-адресов.

  4. Нажмите кнопку "ОК ", чтобы сохранить параметры брандмауэра.

Теперь можно подключиться к любой базе данных на сервере с указанным IP-адресом или диапазоном IP-адресов.

Настройка правил брандмауэра для базы данных

Правила брандмауэра на уровне базы данных применяются только к отдельным базам данных. Базы данных сохранит эти правила при отработке отказа сервера. Правила брандмауэра уровня базы данных можно настроить только с помощью инструкций Transact-SQL (T-SQL) и только после настройки правила брандмауэра уровня сервера.

Чтобы настроить правило брандмауэра на уровне базы данных, сделайте следующее:

  1. Подключитесь к базе данных, например с помощью SQL Server Management Studio.

  2. В обозревателе объектов щелкните правой кнопкой мыши базу данных и выберите команду Создать запрос.

  3. Добавьте этот оператор в окне запроса и измените IP-адрес на свой общедоступный IP-адрес:

    EXECUTE sp_set_database_firewall_rule N'Example DB Rule','0.0.0.4','0.0.0.4';
    
  4. На панели инструментов выберите Выполнить, чтобы создать правило брандмауэра.

Примечание.

Вы также можете создать правило брандмауэра уровня сервера в среде SSMS с помощью команды sp_set_firewall_rule, однако сначала нужно подключиться к базе данных master.

Создание администратора Microsoft Entra

Убедитесь, что вы используете соответствующий управляемый домен Microsoft Entra ID (ранее Azure Active Directory). Чтобы выбрать домен, используйте правый верхний угол портал Azure. Этот процесс подтверждает, что одна подписка используется как для идентификатора Microsoft Entra, так и для логического сервера, на котором размещена база данных или хранилище данных.

Screenshot of the Azure portal showing the Directory + subscription filter page, where you would choose the directory.

Чтобы задать администратора Microsoft Entra, выполните следующие действия.

  1. В портал Azure на странице SQL Server выберите идентификатор Microsoft Entra в меню ресурсов, а затем выберите "Задать администратора", чтобы открыть область идентификатора Microsoft Entra..

    Screenshot of the Azure portal Microsoft Entra ID page for a logical server.

    Внимание

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

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

    Screenshot of the Azure portal page to add a Microsoft Entra admin.

    Внимание

    Управление доступом на основе ролей Azure (Azure RBAC) применяется только к порталу и не распространяется на SQL Server.

  3. В верхней части страницы администрирования Microsoft Entra нажмите кнопку "Сохранить".

    Процесс изменения администратора может занять несколько минут. Новый администратор появится в поле администратора Microsoft Entra.

Примечание.

При настройке администратора Microsoft Entra новое имя администратора (пользователь или группа) не может существовать в качестве имени входа или пользователя в базе данных master . Если оно присутствует, настройка завершится ошибкой. Будет выполнен откат изменений и появится сообщение, что такое имя администратора уже существует. Так как имя входа или пользователя сервера не является частью идентификатора Microsoft Entra, все усилия по подключению пользователя с помощью проверки подлинности Microsoft Entra завершается ошибкой.

Сведения о настройке идентификатора Microsoft Entra см. в следующих статье:

Управление доступом к базе данных

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

Чтобы добавить пользователей, выберите тип аутентификации базы данных:

  • Аутентификация SQL: для входа используются имя пользователя и пароль, действительные только в контексте конкретной базы данных на сервере.

  • Проверка подлинности Microsoft Entra, использование удостоверений, управляемых идентификатором Microsoft Entra

Проверка подлинности SQL

Чтобы добавить пользователя с аутентификацией SQL:

  1. Подключитесь к базе данных, например с помощью SQL Server Management Studio.

  2. В обозревателе объектов щелкните правой кнопкой мыши базу данных и выберите Создать запрос.

  3. В окне запроса введите следующую команду:

    CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    
  4. На панели инструментов выберите Выполнить, чтобы создать пользователя.

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

    ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
    

Примечание.

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

Проверка подлинности Microsoft Entra

Так как База данных SQL Azure не поддерживает субъекты сервера Microsoft Entra (имена входа), пользователи базы данных, созданные с помощью учетных записей Microsoft Entra, создаются как пользователи автономной базы данных. Пользователь автономной базы данных не связан с именем входа в master базе данных, даже если существует имя входа с тем же именем. Удостоверение Microsoft Entra может быть для отдельного пользователя или группы. Дополнительные сведения см. в разделе "Пользователи автономной базы данных", сделайте базу данных переносимой и просмотрите руководство по Microsoft Entra, чтобы проверить подлинность с помощью идентификатора Microsoft Entra.

Примечание.

Пользователей баз данных (за исключением администраторов) невозможно создавать с помощью портала Azure. Роли Microsoft Entra не распространяются на серверы SQL, базы данных или хранилища данных. Они используются для управления ресурсами Azure и не относятся к разрешениям базы данных.

Например, роль Участник SQL Server не предоставляет разрешение на подключение к базе данных или хранилищу данных. Это разрешение должно быть предоставлено в рамках базы данных с помощью инструкций T-SQL.

Внимание

Специальные символы, например двоеточие : или амперсанд &, не поддерживаются в именах пользователей в инструкциях T-SQL CREATE LOGIN и CREATE USER.

Чтобы добавить пользователя с проверкой подлинности Microsoft Entra, выполните следующие действия.

  1. Подключение на сервер в Azure с помощью учетной записи Microsoft Entra по крайней мере РАЗРЕШЕНИЕ ALTER ANY USER.

  2. В обозревателе объектов щелкните правой кнопкой мыши базу данных и выберите команду Создать запрос.

  3. В окне запроса введите следующую команду и измените <Azure_AD_principal_name> имя участника пользователя Microsoft Entra или отображаемое имя группы Microsoft Entra:

    CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
    

Примечание.

Пользователи Microsoft Entra помечены в метаданных базы данных с типом и типом E (EXTERNAL_USER)X (EXTERNAL_GROUPS) для групп. Дополнительные сведения см. в статье sys.database_principals (Transact-SQL).

Безопасные строки подключения

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

  • запрашивалось зашифрованное подключение;
  • сертификат сервера не считался доверенным.

Устанавливается подключение по протоколу TLS, и уменьшается риск атак "злоумышленник в середине". Строки подключения доступны отдельно для каждой базы данных и предварительно настроены на поддержку клиентских драйверов, например ADO.NET, JDBC, ODBC и PHP. Чтобы получить сведения о протоколе TLS и проверить возможность подключения, просмотрите рекомендации по использованию протокола TLS.

Чтобы скопировать безопасную строку подключения, сделайте следующее:

  1. На портале Azure в меню слева выберите пункт Базы данных SQL и на странице Базы данных SQL выберите имя своей базы данных.

  2. На странице Обзор щелкните Показать строки подключения к базам данных.

  3. Выберите вкладку "Драйвер" и скопируйте полную строку подключения.

    Screenshot of the Azure portal showing the connection strings page. The ADO.NET tab is selected and the ADO.NET (SQL authentication) connection string is displayed.

Включение функций безопасности

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

Microsoft Defender для SQL

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

Примечание.

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

Чтобы включить Microsoft Defender для SQL:

  1. На портале Azure в меню слева выберите пункт Базы данных SQL и на странице Базы данных SQL выберите имя своей базы данных.

  2. На странице Обзор выберите ссылку Имя сервера. Откроется страница сервера.

  3. На странице SQL Server найдите раздел Безопасность и выберите Defender для облака.

    1. Выберите Вкл. в разделе Microsoft Defender для SQL, чтобы включить эту функцию. Выберите учетную запись хранения для записи результатов оценки уязвимостей. Затем выберите Сохранить.

      Screenshot of the Azure portal Navigation pane for threat detection settings.

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

  4. Вернитесь на страницу Базы данных SQL вашей базы данных и выберите Defender для облака в разделе Безопасность. Здесь вы найдете различные индикаторы безопасности, доступные для базы данных.

    Screenshot of the Azure portal Threat status page showing pie charts for Data Discovery & Classification, Vulnerability Assessment, and Threat Detection.

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

Screenshot of a sample email from Azure, indicating a Potential Sql Injection Threat detection. A link in the body of the email to Azure SQL DB Audit Logs is highlighted.

Аудит

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

Чтобы включить аудит:

  1. На портале Azure в меню слева выберите пункт Базы данных SQL и на странице Базы данных SQL выберите имя своей базы данных.

  2. В разделе Безопасность щелкните Аудит.

  3. В разделе параметров Аудит установите следующие значения:

    1. Задайте для параметра Аудит значение ВКЛ.

    2. Выберите в качестве места назначения журнала аудита любой из следующих ресурсов:

      • Хранилище — это учетная запись хранения Azure, в которой будут сохраняться журналы событий, доступные для загрузки как файлы XEL.

        Совет

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

      • Служба Log Analytics, которая автоматически сохраняет события для запроса или для дальнейшего анализа.

        Примечание.

        Рабочая область Log Analytics является обязательной для поддержки расширенных функций, таких как аналитика, настраиваемые правила генерации оповещений, а также экспорт из Excel или Power BI. Без рабочей области доступен только редактор запросов.

      • Концентратор событий, который позволяет событиям перенаправляться для использования в других приложениях.

    3. Выберите Сохранить.

      Screenshot of the Azure portal Audit settings page. The Save button is highlighted. Audit log destination fields are highlighted.

  4. Теперь вы можете щелкнуть Ознакомиться с журналами аудита, чтобы просмотреть данные о событиях в базе данных.

    Screenshot of the Azure portal page showing Audit records for a SQL database.

Внимание

Дополнительные сведения о том, как настроить события аудита с помощью PowerShell или REST API, см. в статье Аудит в Базе данных SQL и Azure Synapse Analytics.

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

Функция маскирования данных автоматически скрывает конфиденциальные данные в базе данных.

Чтобы включить маскирование данных:

  1. На портале Azure в меню слева выберите пункт Базы данных SQL и на странице Базы данных SQL выберите имя своей базы данных.

  2. В разделе Безопасность выберите Динамическое маскирование данных.

  3. В параметрах Динамического маскирования данных щелкните Добавить маску, чтобы добавить правило маскирования. Azure будет автоматически заполнять доступные для выбора схемы базы данных, таблицы и столбцы.

    Screenshot of the Azure portal page to Save or Add Dynamic Data Mask fields. Recommended fields to mask display schema, table, and columns of tables.

  4. Выберите Сохранить. Теперь выбранные данные скрыты для обеспечения конфиденциальности.

    Screenshot of SQL Server Management Studio (SSMS) showing a simple INSERT and SELECT statement. The SELECT statement displays masked data in the LastName column.

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

Функция шифрования позволяет автоматически шифровать неактивные данные, не внося каких-либо изменений в приложения, обращающиеся к зашифрованной базе данных. Для новых баз данных шифрование включено по умолчанию. Кроме того, можно зашифровать данные с помощью SSMS и функции Постоянное шифрование.

Чтобы включить и проверить шифрование:

  1. На портале Azure в меню слева выберите пункт Базы данных SQL и на странице Базы данных SQL выберите имя своей базы данных.

  2. В разделе Безопасность выберите Прозрачное шифрование данных.

  3. Если требуется, для параметра Шифрование данных задайте значение Включено. Выберите Сохранить.

    Screenshot of the Azure portal page to enable Transparent Data Encryption.

Примечание.

Чтобы просмотреть состояние шифрования, подключитесь к базе данных, используя SSMS, и запросите столбец encryption_state представления sys.dm_database_encryption_keys. Состояние 3 указывает, что база данных зашифрована.

Примечание.

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

Совет

Готовы приступить к разработке приложения .NET? В этом модуле free Learn показано, как разрабатывать и настраивать приложение ASP.NET, которое запрашивает База данных SQL Azure, включая создание простой базы данных.

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

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