Ведение журнала аудита в База данных 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 выполните следующие действия:
Выберите экземпляр базы данных Azure для гибкого сервера PostgreSQL.
В меню ресурсов в разделе "Параметры" выберите параметры сервера.
Найдите параметры
pgaudit
.Выберите соответствующий параметр для редактирования. Например, чтобы начать ведение журнала, ,
TRUNCATE
и операторы, задайте дляWRITE
параметраpgaudit.log
.COPY
DELETE
UPDATE
INSERT
Нажмите кнопку "Сохранить" , чтобы сохранить изменения.
Официальная документация 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.log
ROLE
, которое редактирует пароль из журналов во время ведения журнала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:"