Поделиться через


Ведение журнала аудита в База данных Azure для PostgreSQL — гибкий сервер

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — гибкий сервер

Ведение журнала действий базы данных в База данных Azure для PostgreSQL гибком сервере pgaudit доступно через расширение. pgaudit предоставляет подробное ведение журнала аудита сеансов и /или объектов.

Если вам нужны журналы на уровне ресурсов Azure для таких операций, как вычисление и масштабирование хранилища, см. Журнал действий Azure.

Рекомендации по использованию

По умолчанию pgaudit операторы журналов и обычные инструкции журнала создаются с помощью стандартного средства ведения журнала Postgres. На гибком сервере База данных Azure для PostgreSQL можно настроить отправку всех журналов в хранилище журналов Azure Monitor для последующего анализа в Log Analytics. Если включить ведение журнала ресурсов Azure Monitor, журналы автоматически отправляются (в формате JSON) в служба хранилища Azure, Концентраторы событий и (или) журналы Azure Monitor в зависимости от выбранного варианта.

Чтобы узнать, как настроить ведение журнала для службы хранилища Azure, Центров событий или журналов Azure Monitor, ознакомьтесь с разделом о журналах ресурсов в статье о журналах сервера.

Установка расширения

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

Настройка параметров расширения

pgaudit позволяет настроить ведение журнала аудита сеансов или объектов. При ведении журнала аудита сеансов создаются подробные журналы выполненных инструкций. Ведение журнала аудита объектов — это аудит для конкретных связей. Можно выбрать один или оба типа ведения журнала.

После включения pgauditего параметры можно настроить для запуска ведения журнала.

Чтобы настроить pgaudit, выполните следующие инструкции:

В случае использования портала Azure выполните следующие действия:

  1. Выберите экземпляр базы данных Azure для гибкого сервера PostgreSQL.

  2. В меню ресурсов в разделе "Параметры" выберите параметры сервера.

  3. Найдите параметры pgaudit.

  4. Выберите соответствующий параметр для редактирования. Например, чтобы начать ведение журнала, , TRUNCATEи операторы, задайте для WRITEпараметра pgaudit.log .COPY DELETEUPDATEINSERT

  5. Нажмите кнопку "Сохранить" , чтобы сохранить изменения.

Официальная документация pgaudit содержит определение каждого параметра. Сначала проверьте параметры и убедитесь, что вы получаете ожидаемое поведение.

Например, параметр pgaudit.log_client ON не только записывает события аудита в журнал сервера, но и отправляет их в клиентские процессы (например, psql). Этот параметр обычно следует отключать.

Параметр pgaudit.log_level будет включен, только если включен pgaudit.log_client.

В База данных Azure для PostgreSQL гибком сервере pgaudit.log не удается задать ярлык - подписи (минус), как описано в pgaudit документации. Все необходимые классы операторов (READ, WRITE и т. д.) должны быть указаны отдельно.

Если задать log_statement параметр DDL или ALL запустить CREATE ROLE/USER ... WITH PASSWORD ... ; команду или ALTER ROLE/USER ... WITH PASSWORD ... ;команду , PostgreSQL создает запись в журналах PostgreSQL, где пароль вошел в систему в виде ясного текста, что может привести к потенциальному риску безопасности. Это ожидаемое поведение для структуры ядра PostgreSQL.

Однако вы можете использовать расширение и задать для него значениеpgaudit.log, которое не записывает инструкции CREATE/ALTER ROLE pgaudit в журнал сервера Postgres, в отличие от этого, если задано значение log_statement DDL.DDL Если вам нужно записать эти инструкции, можно также задать значение pgaudit.logROLE, которое редактирует пароль из журналов во время ведения журналаCREATE/ALTER ROLE.

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

Каждая запись аудита начинается с AUDIT:. Формат остальной части записи подробно описан в документацииpgaudit.

Начало работы

Чтобы быстро начать, задайте значение pgaudit.log ALLи откройте журналы сервера, чтобы просмотреть выходные данные.

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

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

Журналы Azure Monitor отправляются в выбранную рабочую область. Журналы Postgres используют режим сбора данных AzureDiagnostics, поэтому их можно запрашивать из таблицы AzureDiagnostics. Дополнительные сведения о запросах и оповещениях см. в обзоре Запросы журналов Azure Monitor.

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

Поиск всех pgaudit записей в журналах Postgres для определенного сервера в последний день

AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"