Аудит для Базы данных SQL Azure и Azure Synapse Analytics

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных SQL Azure Azure Synapse Analytics

Аудит для Базы данных SQL Azure и Azure Synapse Analytics отслеживает события базы данных и записывает их в журнал аудита в учетной записи хранения Azure, в рабочей области Log Analytics или в Центрах событий.

Аудит также дает следующие возможности.

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

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

Примечание

Сведения об аудите Управляемого экземпляра SQL Azure см. в статье Начало работы с аудитом Управляемого экземпляра SQL Azure.

Обзор

Используйте аудит базы данных SQL, чтобы выполнять следующие действия:

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

Важно!

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

Ограничения аудита

  • Хранилище класса "Премиум" сейчас не поддерживается.
  • Иерархическое пространство имен для учетной записи хранения Azure Data Lake Storage 2-го поколения в настоящее время не поддерживается.
  • Включение аудита для приостановленной службы Azure Synapse не поддерживается. Чтобы включить аудит, возобновите работу Azure Synapse.
  • Аудит для пулов SQL Azure Synapse поддерживает только группы действий аудита по умолчанию.

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

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

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

  • Если включен аудит для сервера, он обязательно применяется к базе данных. Аудит базы данных будет выполнен независимо от его параметров.

  • Если политика аудита определена на уровне базы данных для рабочей области Log Analytics или пункта назначения концентратора событий, то следующие операции не сохраняют политику аудита на уровне базы данных-источника:

  • Включение аудита для базы данных (помимо его включения для сервера) не приводит к переопределению или изменению настроек аудита для сервера. Оба аудита будут выполняться параллельно. Таким образом, аудит базы данных выполняется дважды: один раз в соответствии с политикой сервера и еще раз в соответствии с политикой базы данных.

    Примечание

    Не устанавливайте политику аудита одновременно для сервера и BLOB-объектов базы данных, за исключением следующих случаев.

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

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

Remarks

  • Журналы аудита записываются в добавочные большие двоичные объекты в хранилище BLOB-объектов Azure в подписке Azure.
  • Журналы аудита представлены в формате XEL, и их можно открыть с помощью SQL Server Management Studio (SSMS).
  • Чтобы настроить неизменяемое хранилище журналов для событий аудита на уровне сервера или базы данных, следуйте инструкциям для службы хранилища Azure. При настройке неизменяемого Хранилища BLOB-объектов обязательно выберите параметр Разрешить дополнительные операции добавления.
  • Вы можете записать журналы аудита в учетную запись хранения Azure за пределами виртуальной сети или брандмауэра. Конкретные инструкции см. в этой статье.
  • Дополнительные сведения о формате журнала, иерархии папки для хранения, соглашении об именовании см. в документации по формату журнала аудита больших двоичных объектов.
  • Аудит доступных только для чтения реплик включен автоматически. Дополнительные сведения об иерархии папок для хранения, соглашениях об именовании и формате журнала приведены в статье о формате журнала аудита Базы данных SQL.
  • Если используется проверка подлинности Azure AD, неудачные попытки входа не отображаются в журнале аудита SQL. Чтобы просмотреть записи аудита для неудачных попыток входа, посетите портал Azure Active Directory, который регистрирует сведения об этих событиях.
  • Данные для входа направляются шлюзом в конкретный экземпляр, в котором находится база данных. В случае входов в AAD перед попыткой использовать учетную запись пользователя для входа в запрошенную базу данных выполняется проверка учетных данных. В случае сбоя доступ к запрашиваемой базе данных отсутствует, поэтому аудит не выполняется. При входе в Базу данных SQL учетные данные проверяются по запрошенным данным, поэтому в данной ситуации для них можно реализовать аудит. Успешные попытки входа, при которых удалось получить доступ к базе данных, проходят аудит в обоих случаях.
  • После настройки параметров аудита можно включить новую функцию обнаружения угроз и настроить адреса электронной почты для получения предупреждений системы безопасности. Использование функции обнаружения угроз позволяет настроить упреждающие оповещения об аномальной активности в базах данных, которая может указывать на потенциальные угрозы безопасности. Дополнительные сведения см. в статье Обнаружение угроз для базы данных SQL.

Настройка аудита для сервера

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

  • BATCH_COMPLETED_GROUP;
  • SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP;
  • FAILED_DATABASE_AUTHENTICATION_GROUP.

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

Функция аудита в Базе данных SQL Azure и Azure Synapse хранит 4000 символов данных для символьных полей в записи аудита. Если возвращаемые после выполнения проверяемого действия значения statement или data_sensitivity_information содержат более 4000 символов, все данные сверх этого числа будут усечены и не будут проверены. В следующем разделе описывается настройка аудита на портале Azure.

Примечание

  • Включение аудита в приостановленном выделенном пуле SQL невозможно. Чтобы включить аудит, отмените приостановку выделенного пула SQL. Дополнительные сведения о выделенном пуле SQL.
  • Если аудит настроен для рабочей области Log Analytics или даже для пункта назначения концентратора событий с помощью командлета PowerShell или портала Azure, то создается параметр диагностики с включенной категорией "SQLSecurityAuditEvents".
  1. Перейдите на портал Azure.

  2. Перейдите к параметру Аудит в разделе "Безопасность" на панели База данных SQL или Сервер SQL.

  3. Если необходимо настроить политику аудита сервера, выберите ссылку Просмотреть параметры сервера на странице аудита базы данных. Вы можете затем просмотреть или изменить параметры аудита сервера. Политики аудита сервера применяются ко всем имеющимся и создаваемым базам данных на этом сервере.

    Снимок экрана, на котором показана ссылка "Просмотр параметров сервера", выделенная на странице аудита базы данных.

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

  5. Вы можете выбрать из нескольких вариантов настройки расположения для записи журналов аудита. Журналы можно записывать в учетную запись хранения Azure, в рабочую область Log Analytics для использования в журналах Azure Monitor или в концентратор событий для потребления через концентратор событий. Вы также можете настроить любое сочетание этих вариантов, и журналы аудита будут записываться в каждый из них.

    варианты хранилищ

Аудит операций службы поддержки Майкрософт

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

Чтобы включить аудит работы службы поддержки Майкрософт, перейдите к разделу Аудит в группе "Безопасность" области сервер SQL Azure и выберите для параметра Auditing of Microsoft support operations (Аудит работы службы поддержки Майкрософт) значение Вкл.

Важно!

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

Снимок экрана: служба поддержки Майкрософт

Чтобы просматривать журналы аудита работы службы поддержки Майкрософт в рабочей области Log Analytics, используйте следующий запрос:

AzureDiagnostics
| where Category == "DevOpsOperationsAudit"

Запись журналов аудита в целевое хранилище

Чтобы настроить запись журналов аудита в учетную запись хранения, в разделе Аудит выберите пункт Хранилище. Выберите учетную запись хранения Azure, в которой будут храниться журналы, и укажите срок хранения, открыв Дополнительные свойства. Затем нажмите кнопку Сохранить. Журналы старше периода хранения удаляются.

  • По умолчанию период хранения равен 0 (неограниченный период хранения). Это значение можно изменить, переместив ползунок Хранение (дни) в Дополнительные свойства при настройке учетной записи хранения для аудита.

    • Если для периода хранения вместо 0 (неограниченный период хранения) указать любое другое значение, то оно будет применяться только к журналам, записанным после изменения. Журналы, записанные в то время, когда был установлен неограниченный период хранения, сохранятся даже после включения определенного периода хранения.

    запись хранения Azure

Запись журналов аудита в назначение Log Analytics

Чтобы настроить запись журналов аудита в рабочую область Log Analytics, выберите Log Analytics и щелкните Сведения о Log Analytics. Выберите рабочую область Log Analytics, в которую будут записываться журналы, а затем щелкните ОК. Если вы еще не создали рабочую область службы анализа журналов, см. раздел Создание рабочей области службы анализа журналов на портале Azure.

LogAnalyticsworkspace

Дополнительные сведения о рабочей области Azure Monitor Log Analytics см. в разделе Проектирование развертывания Azure Monitor Logs.

Запись журналов аудита в назначение концентратора событий

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

Eventhub

Анализ журналов и отчетов аудита

Если нужно записывать журналы аудита в журналы Azure Monitor:

  • Используйте портал Azure. Откройте соответствующую базу данных. В верхней части страницы Аудит базы данных выберите раздел Просмотр журналов аудита.

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

  • Затем можно просмотреть журналы одним из двух способов:

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

    открытие в рабочей области Log Analytics

    Щелкните Просмотреть панель мониторинга в верхней части страницы Записи аудита. Откроется панель мониторинга со сведениями о журналах аудита, с которой можно перейти к аналитическим сведениям о безопасности, разделу доступа к конфиденциальным данным и другим возможностям. Панель мониторинга содержит аналитические сведения о безопасности на основе ваших данных. Кроме того, можно настроить диапазон времени и поисковый запрос. Просмотр панели мониторинга Log Analytics

    Панель мониторинга Log Analytics

    Аналитические сведения о безопасности в Log Analytics

  • Кроме того, к журналам аудита также можно перейти в колонке Log Analytics. Откройте рабочую область Log Analytics и в разделе General (Общие сведения) щелкните Журналы. Вы можете начать с простого запроса, например выполните поиск SQLSecurityAuditEvents, чтобы просмотреть журналы аудита. На этой странице можно также использовать журналы Azure Monitor для расширенного поиска по данным журналов аудита. Журналы Azure Monitor предоставляют аналитические сведения о работе систем в режиме реального времени. Вы можете использовать встроенный поиск и настраиваемые панели мониторинга для быстрого анализа миллионов записей по всем рабочим нагрузкам и серверам. Дополнительные полезные сведения о языке и командах поиска по журналам Azure Monitor см. в этой статье.

Если журналы аудита записываются в концентратор событий:

  • Чтобы работать с данными журналов аудита из концентратора событий, необходимо настроить потоковую передачу для получения событий и их записи в целевой объект. Дополнительные сведения см. в документации по Центрам событий Azure.
  • Журналы аудита в концентраторе событий записываются в текст событий Apache Avro и хранятся в формате JSON с типом кодировки UTF-8. Для чтения журналов аудита можете использовать средства Avro или похожие средства, которые поддерживают данный формат.

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

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

  • Используйте портал Azure. Откройте соответствующую базу данных. В верхней области страницы базы данных Аудит щелкните Ознакомиться с журналами аудита.

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

    Откроется колонка Записи аудита, в которой можно просматривать журналы.

    • Для просмотра записей за определенную дату щелкните Фильтр в верхней области страницы Записи аудита.

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

      Снимок экрана, на котором показаны параметры просмотра записей аудита.

  • Используйте системную функцию sys.fn_get_audit_file (T-SQL), чтобы вернуть данные журнала аудита в табличном формате. Дополнительные сведения об использовании этой функции см. в статье sys.fn_get_audit_file (Transact-SQL).

  • Используйте объединение файлов аудита в SQL Server Management Studio (начиная с SSMS 17):

    1. В меню SSMS выберите Файл > Открыть > Объединение файлов аудита.

      Снимок экрана: пункт меню "Объединить файлы аудита".

    2. Откроется диалоговое окно Добавление файлов аудита. Выберите один из способов добавления. Вы можете использовать объединение файлов аудита из локального диска или импортировать их из службы хранилища Azure. Необходимо предоставить сведения о службе хранилища Azure и ключ учетной записи.

    3. После добавления всех файлов для слияния нажмите кнопку OK для завершения операции слияния.

    4. Объединенный файл откроется в SSMS, где вы сможете его просмотреть и проанализировать, а также экспортировать в XEL или CSV-файл или в таблицу.

  • Используйте Power BI. Вы можете просматривать и анализировать данные журнала аудита в Power BI. Чтобы получить дополнительные сведения и загрузить шаблон, см. запись блога об анализе данных журнала аудита в Power BI.

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

    • После загрузки файла журнала дважды щелкните по нему, чтобы открыть, просмотреть и проанализировать журналы в среде SSMS.
    • Вы также можете загрузить одновременно несколько файлов через обозреватель хранилища Azure. Чтобы сделать это, щелкните правой кнопкой мыши конкретную вложенную папку и выберите Сохранить как, чтобы сохранить ее в локальной папке.
  • Дополнительные методы

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

Рекомендации для рабочей среды

Аудит географически реплицированных баз данных

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

  • Аудит на уровне сервера (рекомендуется). Включите аудит на сервере-источнике и сервере-получателе — все базы данных-источники и базы данных-получатели пройдут независимый аудит на основе соответствующей политики на уровне сервера.
  • Аудит на уровне базы данных. Аудит на уровне базы данных для баз данных-получателей можно настроить только с помощью параметров аудита в базе данных-источнике.
    • Его необходимо включить для самой базы данных-источника, а не для сервера.

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

      Важно!

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

Повторное создание ключа хранилища

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

  1. Откройте Дополнительные свойства в разделе Хранилище. В поле Ключ доступа к хранилищу выберите Вторичный. Затем щелкните Сохранить в верхней области страницы настройки аудита.

    Снимок экрана: процесс выбора вторичного ключа доступа к хранилищу данных.

  2. Перейдите на страницу конфигурации хранилища и повторно создайте первичный ключ доступа.

    Область навигации

  3. Вернитесь на страницу настройки аудита, измените значение ключа доступа к хранилищу со вторичного на первичный, затем нажмите кнопку ОК. Затем щелкните Сохранить в верхней области страницы настройки аудита.

  4. Вернитесь на страницу настройки хранилища и повторно создайте ключ доступа получателя (для подготовки к следующему циклу обновления ключей).

Управление аудитами Базы данных SQL Azure

Использование Azure PowerShell

Командлеты PowerShell (включая поддержку предложения WHERE для дополнительной фильтрации) .

Пример сценария см. в статье Настройка аудита и обнаружения угроз для базы данных SQL с помощью PowerShell.

Использование REST API

REST API.

Расширенная политика с поддержкой предложения WHERE для дополнительной фильтрации:

Использование Azure CLI

Использование шаблонов Azure Resource Manager

Вы можете управлять аудитом Базы данных Azure SQL с помощью шаблонов Azure Resource Manager, как показано в следующих примерах.

Примечание

Указанные примеры размещены во внешнем общедоступном репозитории и предоставляются "как есть", без каких-либо гарантий. Они не поддерживаются ни в одной программе или службе поддержки Майкрософт.