PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Регистриране на одит за PostgreSQL

Одитът е изискване за много разпоредби или стандарти за сигурност, като PCI - индустрията за разплащателни карти, и дори е добър начин да запазите данните си възможно най-безопасни, като знаете какво се случва във вашите бази данни.

В база данни на PostgreSQL базовото регистриране на оператори може да бъде предоставено от стандартното средство за регистриране с log_statement =all. Това е приемливо за наблюдение и други основни употреби, но не осигурява нивото на детайлност, което обикновено се изисква за одит.

В този блог ще видим какво представлява разширението pgAudit и как да го инсталирате и използвате във вашата PostgreSQL база данни с помощта на ClusterControl.

Какво е pgAudit?

Разширението за одит на PostgreSQL (pgAudit) предоставя подробно регистриране на одит на сесии и обекти чрез стандартното средство за регистриране на PostgreSQL.

Не е достатъчно да имате списък с всички операции, извършени спрямо базата данни. Трябва също така да е възможно да се намерят конкретни изявления, които представляват интерес за одитор. Стандартното средство за регистриране показва какво е поискал потребителят, докато pgAudit се фокусира върху подробностите за случилото се, докато базата данни е удовлетворявала заявката.

Активиране на pgAudit с ClusterControl

За този пример ще приемем, че имате инсталиран ClusterControl и той управлява вашата PostgreSQL база данни. В противен случай можете да следвате тази публикация в блога, за да я стартирате и работи по лесен начин, като използвате ClusterControl.

Потребителски интерфейс на ClusterControl

От версията на ClusterControl 1.8.2, пусната наскоро, можете лесно да активирате плъгина pgAudit от потребителския интерфейс на ClusterControl. За да го активирате, отидете на ClusterControl -> Изберете вашия PostgreSQL клъстер -> Раздел Защита -> Регистър за одит -> Активиране.

Ще трябва да посочите събитията, които искате да одитирате във вашия PostgreSQL клъстер. PgAudit ще бъде активиран на всички възли и ще изисква рестартиране на услугата за база данни, за да я инсталира.

Събитията могат да бъдат:

  • РОЛЯ:Изявления, свързани с роли и привилегии:GRANT, REVOKE, CREATE/ALTER/DROP ROLE.

  • DDL:Всички DDL, които не са включени в класа ROLE.

  • MISC:Разни команди, напр. ИЗХВЪРЛЯНЕ, ИЗВЛЕЧВАНЕ, КОНТРОЛНА ТОЧКА, ВАКУУМ, ЗАДАВАНЕ.

  • ЧЕТЕТЕ:ИЗБЕРЕТЕ и КОПИРАЙТЕ, когато източникът е релация или заявка.

  • ЗАПИШЕТЕ:INSERT, UPDATE, DELETE, TRUNCATE и COPY, когато местоназначението е релация.

  • ФУНКЦИЯ:Извиквания на функции и DO блокове.

  • ВСИЧКИ:Включете всичко по-горе.

Можете да наблюдавате вашата инсталация на pgAudit в секцията ClusterControl Activity.

Когато приключи, можете да проверите вашия pgAudit регистрационен файл в същия потребителски интерфейс на ClusterControl. За това отидете на ClusterControl -> Изберете вашия PostgreSQL клъстер -> Раздел Журнали -> Системни регистри.

Тук ще намерите цялата необходима информация за одит на вашата PostgreSQL база данни.

ClusterControl CLI

Вместо да активирате pgAudit от потребителския интерфейс на ClusterControl, друга опция е да използвате ClusterControl CLI, за да свършите работата. За това можете да изпълните следната команда от вашия ClusterControl сървър:

$ s9s cluster --setup-audit-logging --cluster-id=ID

Където ID е идентификаторът на PostgreSQL клъстера.

Докато работи, можете да наблюдавате състоянието, като проверите заданието на ClusterControl. Първо, ще ви трябва идентификационният номер на заданието, който можете да получите от списъка със задачи:

$ s9s job --list
1600  48 RUNNING  test_dba                     admins 18:49:36            90% Setup Audit Logging

Сега проверете подробностите за заданието:

$ s9s job --log --job-id=1600
Using SSH credentials from cluster.
Cluster ID is 48.
The username is 'root'.]
10.10.10.139:5432: Configuring audit logging.
10.10.10.139:5432: Installing 'pgaudit15_13'.
10.10.10.139: Installing pgaudit15_13.
10.10.10.139:5432: Setting pgaudit.log to ROLE,DDL,MISC.
Writing file '10.10.10.139:/var/lib/pgsql/13/data/postgresql.conf'.
10.10.10.139:5432: Restarting PostgreSQL node.
10.10.10.139: waiting for server to shut down.... done
server stopped
waiting for server to start....2021-03-24 18:49:43.468 UTC [16098] LOG:  pgaudit extension initialized
2021-03-24 18:49:43.505 UTC [16098] LOG:  redirecting log output to logging collector process
2021-03-24 18:49:43.505 UTC [16098] HINT:  Future log output will appear in directory "log".
 done
server started
10.10.10.139:5432: Waiting for node to be accessible.
10.10.10.139:5432: pgaudit 1.5.0 is enabled.

Това действие ще изисква рестартиране на услугата за база данни, което ще бъде извършено от ClusterControl в същата задача. След рестартирането му разширението pgAudit е активирано и е готово за използване:

postgres=# SELECT * FROM pg_available_extensions WHERE name LIKE '%audit%';
  name   | default_version | installed_version |             comment
---------+-----------------+-------------------+---------------------------------
 pgaudit | 1.5             | 1.5               | provides auditing functionality
(1 row)

Заключение

Одит се изисква за много разпоредби за сигурност. Използва се, за да се знае какво се е случило с вашата база данни, кога се е случило и кой е отговорен за това.

В този блог говорихме за разширението pgAudit PostgreSQL като добър начин за одит на вашите PostgreSQL бази данни. Също така ви показахме как да го внедрите бързо с ClusterControl от потребителския интерфейс и с помощта на ClusterControl CLI.

Имайте предвид, че в зависимост от конфигурацията pgAudit може да генерира огромен обем данни. Така че трябва да внимавате да определите какво трябва да извършите одит и за колко време.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намерете n най-близки съседи за дадена точка с помощта на PostGIS?

  2. MySQL срещу PostgreSQL? Кое да избера за моя проект Django?

  3. Надстройка на Slony-I 2.0.x до най-новата версия 2.1.x

  4. Конфигурация на Puma Cluster на Heroku

  5. Коригирайте „ГРЕШКА:  колона „colname“ не съществува“ в PostgreSQL, когато използвате UNION, EXCEPT или INTERSECT