Конфигурационные параметры#

Параметры парольных политик#

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

Параметр

Описание

Тип

POSIX шаблон

Значение по умолчанию

Аналог в pg_pp_policy

password_policy.policy_enable

Включение/выключение парольной политики

boolean

on/off

on

policyenable

password_policy.deny_default

Включение/выключение использования настроек из postgresql.conf

boolean

on/off

off

-

password_policy.psql_encrypt_password

Шифрование пароля при передаче от клиента к БД

boolean

on/off

-

-

password_policy.deduplicate_ssl_no_ssl_fail_auth_attempts

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

boolean

on/off

on

-

password_policy.allow_hashed_password

Разрешить задание пароля в виде хеша

boolean

on/off

off

-

Настройка хранения паролей#

Параметр

Описание

Тип

POSIX шаблон

Ограничение значения

Значение по умолчанию

Специальные значения параметров

Аналог в pg_pp_policy

password_policy.reuse_time

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

string

\d+ s

неотрицательное

365 days

-

reusetime

password_policy.in_history

Максимальное количество сохраненных старых паролей

integer

[0-1000]

0-1000

4

0 – Проверка на совпадение пароля с ранее использованным не проводится (при условии reuse_time = 0)

inhistory

Примечание:

Если задан параметр password_policy.reuse_time, то параметр password_policy.in_history не используется.

Время жизни пароля#

Параметр

Описание

Тип

POSIX шаблон

Ограничение значения

Значение по умолчанию

Специальные значения параметров

Аналог в pg_pp_policy

password_policy.max_age

Время жизни пароля в секундах

string

\d+ s

неотрицательное

0

0 – Проверка максимального времени жизни пароля не производится

maxage

password_policy.min_age

Минимальное время между изменениями пароля

string

\d+ s

неотрицательное

0

0 – Проверка максимального времени жизни пароля не производится

minage

password_policy.grace_login_limit

Максимальное количество аутентификаций после истечения срока действия пароля

integer

[0-1000]

0-1000

0

-

graceloginlimit

password_policy.grace_login_time_limit

Время, в течение которого пароль остается рабочим после окончания срока его действия

string

\d+ s

неотрицательное

3 days

0 – аутентификация не доступна по истечении времени жизни пароля

gracelogintimelimit

password_policy.expire_warning

Время до истечения пароля, при котором выводится предупреждение

string

\d+ s

неотрицательное

7 days

0 – не выводит предупреждение

expirewarning

Поведение при неудачной аутентификации#

Параметр

Описание

Тип

POSIX шаблон

Ограничение значения

Значение по умолчанию

Специальные значения параметров

Аналог в pg_pp_policy

password_policy.lockout

Блокировка аккаунта при достижении максимума неверных попыток аутентификации

boolean

on/off

on/off

on

-

lockout

password_policy.max_failure

Максимальное количество неверных попыток аутентификации

integer

[1-1000]

1-1000

6

-

maxfailure

password_policy.failure_count_interval

Время, после которого количество неверных попыток сбрасывается

string

\d+ s

>= 0

0

0 – счетчик не обнуляется

failurecountinterval

password_policy.lockout_duration

Время блокировки аккаунта

string

\d+ s

неотрицательное

24 hours

0 – блокировка пользователя по количеству неудачных аутентификаций бессрочна

lockoutduration

Синтаксические проверки пароля#

Параметр

Описание

Тип

Ограничение значения

Значение по умолчанию

Специальные значения параметров

Аналог в pg_pp_policy

password_policy.check_syntax

Включение синтаксической проверки пароля

boolean

on/off

on

checksyntax

password_policy.alpha_numeric

Минимальное количество цифр в пароле

integer

0-1000

3

0 – не проверять

alphanumeric

password_policy.min_length

Минимальная длина пароля

integer

0-1000

16

0 – не проверять

minlength

password_policy.min_alpha_chars

Минимальное количество букв в пароле

integer

0-1000

0

0 – не проверять

minalphachars

password_policy.min_special_chars

Минимальное количество специальных символов

integer

0-1000

0

0 – не проверять

minspecialchars

password_policy.min_uppercase

Минимальное количество прописных букв

integer

0-1000

1

0 – не проверять

minuppercase

password_policy.min_lowercase

Минимальное количество строчных букв

integer

0-1000

0

0 – не проверять

minlowercase

password_policy.max_rpt_chars

Максимальное количество повторяющихся символов

integer

0-1000

0

0 – не проверять

maxrptchars

Проверка максимального времени неактивности пользователя#

Параметр

Описание

Тип

Ограничение значения

Значение по умолчанию

Специальные значения параметров

Аналог в pg_pp_policy

password_policy.track_login

Запоминать ли время последней аутентификации

boolean

on/off

off

tracklogin

password_policy.max_inactivity

Время после последней аутентификации, после которого аккаунт блокируется

string

неотрицательное

0

0 – функциональность отключена

maxinactivity

Использование библиотеки zxcvbn#

Параметр

Описание

Тип

POSIX шаблон

Ограничение значения

Значение по умолчанию

Аналог в pg_pp_policy

password_policy.use_password_strength_estimator

Включение использования библиотеки zxcvbn для оценки сложности пароля

boolean

on/off

on/off

on

usepasswordstrengthestimator

password_policy.password_strength_estimator_score

Минимальная оценка сложности пароля

integer

[0-4]

0-4

3

passwordstrengthestimatorscore

Использование пользовательской функции проверки пароля#

Параметр

Описание

Тип

POSIX шаблон

Значение по умолчанию

Аналог в pg_pp_policy

password_policy.custom_function

Пользовательская функция проверки пароля

string

[\w\d]+

-

customfunction

Проверка вхождения пароля в черный список#

Параметр

Описание

Тип

Ограничение значения

Значение по умолчанию

Аналог в pg_pp_policy

password_policy.illegal_values

Проверка, что пароль не входит в список часто используемых

boolean

on/off

on

illegalvalues

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

Параметр

Описание

Тип

POSIX шаблон

Ограничение значения

Значение по умолчанию

Аналог в pg_pp_policy

password_policy.pp_cache_dump_interval

Интервал сохранения данных кеша на диск

integer

\d+

1 - до максимального значения int в системе

10

-

password_policy.pp_cache_init_size

Размер инициализированного кеша парольных политик

integer

\d+

1 - до максимального значения int в системе

10

-

password_policy.pp_cache_soft_max_size

Предполагаемый максимальный размер кеша

integer

\d+

1 - до максимального значения int в системе

60

-

password_policy.pp_cache_max_size

Ограничение сверху на размер кеша

integer

\d+

1 - до максимального значения int в системе

1000

-

Параметры управления транспортными паролями#

Параметр

Описание

Тип

Значение по умолчанию

Аналог в pg_pp_policy

password_policy.transport_password_mark_automatic

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

boolean

false

-

transport_password_life_time

Определяет время жизни транспортного пароля

string

0

transportpasswordlifetime

password_policy.is_temp_tuz_password

Определяет тип пароля (транспортный или нет) для указанных ТУЗ

boolean

true

-

Параметры аудита#

Основной параметр (pgaudit.log)#

Настраиваемый параметр конфигурации pgaudit.log указывает, какие классы операторов, событий, функций и команд будут регистрироваться при ведении журнала аудита сессии. Возможные значения:

  • READ: SELECTи COPY, если источник — отношение или запрос;

  • WRITE: INSERT, UPDATE, DELETE, TRUNCATE, и COPY, если цель — отношение;

  • FUNCTION: вызовы функций и блоки DO;

  • ROLE: операторы, связанные с ролями и привилегиями: GRANT, REVOKE, CREATE/ALTER/DROP ROLE;

  • DDL: все DDL, не входящие в класс ROLE;

  • MISC: прочие команды, включая DISCARD, FETCH, CHECKPOINT, VACUUM, SET;

  • MISC_SET: прочие команды SET, включая SET ROLE;

  • CONNECTION: события, связанные с подключением к серверу. Существуют 4 типа таких событий: OPEN, CLOSED, FAILED, CHANGE USER. Событие FAILED регистрируется в случае неудачной попытки аутентификации по паролю и независимо от значения pgaudit.log;

  • PROTECTION: функции настройки механизма защиты от привилегированных пользователей;

  • RECOVERY: события восстановления базы данных;

  • INTEGRITY: события нарушения целостности объектов контроля;

  • ACTION: события запуска/остановки базы данных с причиной остановки;

  • PARAMETER: события изменения конфигурации системы управления базами данных;

  • ALL: включить все вышеперечисленное.

Значение по умолчанию - 'ddl, role, connection, misc_set, protection'.

Для применения измененного значения данного параметра необходимо перечитать конфигурацию. Для добавления новых классов событий необходимо включить параметр pgaudit.legal.

Можно включить несколько классов, перечислив их через запятую, или исключить определенные классы, поставив перед ними знак -. С примером можно ознакомиться в разделе «Ведение журнала аудита сессии».

Совет

Чтобы ограничить количество записей аудита отношений для операторов SELECT и DML, рассмотрите возможность использования журнала аудита объектов. Ведение журнала аудита объектов позволяет выбрать отношения, которые будут регистрироваться, что позволяет уменьшить общий объем журнала. Однако все новые создаваемые отношения должны быть явно добавлены в журнал аудита объектов. В этом случае хорошим вариантом может быть программное решение, в котором некоторые определенные таблицы исключаются из ведения журнала, а все остальные включаются. Подробнее в разделе «Ведение журнала аудита объектов».

Дополнительные параметры#

Конфигурационные параметры аудита#

Параметр

Описание

Тип

Значение

pgaudit.legal

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

Для активации указанных в таблице параметров аудита (и добавления в pgaudit.log новых классов событий) необходимо включить данный параметр (pgaudit.legal = on)

boolean

Параметр может быть установлен в значения on/off, применяется при перезапуске сервера.

Значение по умолчанию - off

pgaudit.log_syslog

Включение/отключение записи логов аудита в системный журнал при включенной записи в файл

boolean

По умолчанию - off

pgaudit.log_directory

Путь к каталогу для сохранения файлов аудита. Это может быть абсолютный путь или заданный относительно каталога данных ($PGDATA)

string

Значение по умолчанию - audit

Файлы аудита будут созданы в каталоге $PGDATA/audit

pgaudit.log_filename

Используемый шаблон имен файлов для журналов событий

string

Шаблон может содержать спецпоследовательности, определяющие временную метку, которые начинаются со знака %.

Значение по умолчанию audit-%Y-%m-%d_%H%M%S.log

pgaudit.log_rotation_size

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

integer

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

Значение по умолчанию 10240 (10 Мб)

pgaudit.log_rotation_age

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

integer

Если параметр равен 0, создание новых файлов журналов по времени отключается.

Значение по умолчанию - 1440

pgaudit.log_truncate_on_rotation

Определяет, должны ли усекаться файлы журналов при переключении записи на уже существующий файл журнала.

Параметр учитывается только при ротации по времени. В остальных случаях запись всегда продолжается в конец файла

boolean

Если значение параметра off, запись продолжается в конец файла.

Значение по умолчанию - off

pgaudit.log_file_mode

Определяет права на файл аудита при создании и задается в восьмеричном виде

integer

Значение по умолчанию - 0600

pgaudit.log_recovery

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

boolean

Значение по умолчанию - off

pgaudit.log_catalog

Указывает, должно ли быть включено ведение журнала сессии в том случае, если все отношения в операторе находятся в pg_catalog. Отключение этого параметра уменьшит шум в журнале от таких инструментов, как psql и pgAdmin, которые часто обращаются к каталогу

boolean

Значение по умолчанию - on

pgaudit.log_client

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

boolean

pgaudit.log_client активен только тогда, когда значение pgaudit.log_level задано.

Значение по умолчанию - off

pgaudit.log_level

Указывает уровень журналирования, который будет использоваться для записей журнала (см. «Уровни важности сообщений»). Обратите внимание, что значения ERROR, FATAL и PANIC не допускаются.

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

string

Значениеpgaudit.log_level используется только тогда, когда pgaudit.log_client включен;
в противном случае будет использоваться значение по умолчанию.

Значение по умолчанию - log

pgaudit.log_parameter

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

boolean

Значение по умолчанию - off

pgaudit.log_relation

Указывает, должно ли ведение журнала аудита сессии создавать отдельную запись журнала для каждого отношения (TABLE, VIEW и т.д.), на которое ссылается оператор SELECT или DML. Это полезный прием для исчерпывающего ведения журнала без использования журнала аудита объектов

boolean

Значение по умолчанию - off

pgaudit.log_rows

Указывает, что журнал аудита должен включать количество строк, извлеченных или затронутых оператором.

При включении (on) поле строк будет указан после поля параметра (при pgaudit.log_parameter = on)

boolean

Значение по умолчанию - off

pgaudit.log_statement

Указывает, будет ли в журнал аудита включаться текст запроса и параметры (если это разрешено). В зависимости от требований журнал аудита может не нуждаться в этом, и это делает журналы менее подробными

boolean

Значение по умолчанию - on

pgaudit.log_statement_once

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

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

boolean

Значение по умолчанию - off

pgaudit.role

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

string

Значение по умолчанию отсутствует

Параметры системного лога#

Префикс строки системного журнала#

Для добавления других полей, необходимых для удовлетворения требований к системному журналу логов, используйте префикс строки log_line_prefix:

Спецсимвол

Назначение

Только для пользовательского процесса

%a

Имя приложения (application_name)

да

%u

Имя пользователя

да

%d

Имя базы данных

да

%r

Имя удаленного узла или IP-адрес, а также номер порта

да

%h

Имя удаленного узла или IP-адрес

да

%p

Идентификатор процесса

нет

%t

Штамп времени, без миллисекунд

нет

%m

Штамп времени, с миллисекундами

нет

%n

Штамп времени, с миллисекундами (в виде времени Unix)

нет

%i

Тег команды: тип текущей команды в сессии

да

%e

Код ошибки SQLSTATE

нет

%c

Идентификатор сессии

нет

%l

Номер строки журнала для каждой сессии или процесса. Начинается с 1

нет

%s

Штамп времени начала процесса

нет

%v

Идентификатор виртуальной транзакции (backendID/localXID)

нет

%x

Идентификатор транзакции (0 если не присвоен)

нет

%q

Ничего не выводит. Непользовательские процессы останавливаются в этой точке. Игнорируется пользовательскими процессами

нет

%%

Выводит %

нет

Пример префикса строки журнала: «%m %u %d \[%p\]:» - включить дату/время, имя пользователя, имя базы данных и идентификатор процесса для каждой записи журнала аудита.

В качестве идентификатора используется UUIDv4 (формируется случайным образом). Для получения идентификатора используется функция gen_random_uuid. Формат идентификатора:

xxxxxxxxxxxxMxxxNxxxxxxxxxxxxxxx
Значения на позициях M и N определяют соответственно версию и вариант UUID

Параметры обфускации данных#

Параметр

Значение по умолчанию

Описание

anon.algorithm

sha256

Алгоритм хеширования, применяемый методом псевдонимизации.
Поддерживаются md5, sha1, sha224, sha256, sha384 и sha512

anon.allow_constraints_masking

false

Флаг, допускающий обфускацию для атрибутов, входящих в ограничение целостности

anon.default_locale

en_US

Локаль инициализации таблиц подстановок, применяемых в методах фальсификации и псевдонимизации

anon.k_anonymity_provider

k_anonymity

Имя SECURITY PROVIDER, используемого для метода K-Anonimity

anon.masking_policies

anon

Схема БД, используемая расширением обфускации данных и содержащая таблицы и функции подстановок

anon.maskschema

mask

Схема БД, используемая для генерации анонимизированных данных

anon.privacy_by_default

off

Выбор стратегии маскирования атрибутов, не имеющих метки SECURITY LABEL. При включении параметра — для всех атрибутов, имеющих значения по умолчанию — будут использоваться они. Для атрибутов, допускающих NULL — подставлен NULL

anon.restrict_to_trusted_schemas

on

Признак использования функций маскирования, расположенных только в схемах с атрибутом TRUSTED

anon.salt

Отсутствует

Соль, используемая для метода псевдонимизации

anon.sourceschema

public

Схема БД по умолчанию, содержащая исходные данные. В случае использования нескольких схем — каждая из них должна быть помечена атрибутом TRUSTED

anon.strict_mode

on

Требования соответствия типа подстановочного значения типу исходного значения

anon.transparent_dynamic_masking

off

Режим динамического маскирования

Настроечные параметры KMS#

Настроечные параметры, управляемые администраторами безопасности через KMS в режиме защищенного конфигурирования.

Параметр

Где ведется

Значение по умолчанию

Примечание

allowed_servers

KMS

Пустая строка

pg_ident_conf (локально файл pg_ident.conf)

Должны совпадать на KMS и локально

NULL

is_tde_on

KMS

off

psql_encrypt_password

KMS

off

enabled_extra_auth_methods

KMS

Пустая строка

enabled_sec_admin_extra_auth_methods

KMS

Пустая строка

encrypt_new_tablespaces

KMS

ddl

masking_mode

KMS

disabled

С версии 5.2.1

password_encryption

KMS

md5

password_policy.alpha_numeric

KMS

1

password_policy.allow_hashed_password

KMS

off

password_policy.check_syntax

KMS

on

password_policy.custom_function

KMS

Пустая строка

password_policy.deny_default

KMS

off

password_policies_enable

KMS

off

password_policy.expire_warning

KMS

7 days

password_policy.failure_count_interval

KMS

0

password_policy.grace_login_limit

KMS

5

password_policy.grace_login_time_limit

KMS

0

password_policy.illegal_values

KMS

off

password_policy.in_history

KMS

0

password_policy.lockout

KMS

on

password_policy.lockout_duration

KMS

24 hours

password_policy.min_age

KMS

0

password_policy.max_age

KMS

120 days

password_policy.max_failure

KMS

10

password_policy.max_inactivity

KMS

0

password_policy.max_rpt_chars

KMS

0

password_policy.min_alpha_chars

KMS

0

password_policy.min_length

KMS

5

password_policy.min_lowercase

KMS

0

password_policy.min_special_chars

KMS

0

password_policy.min_uppercase

KMS

0

password_policy.password_strength_estimator_score

KMS

3

password_policy.reuse_time

KMS

0

password_policy.track_login

KMS

off

password_policy.transport_password_life_time

KMS

0

password_policy.transport_password_mark_automatic

KMS

off

password_policy.use_password_strength_estimator

KMS

off

performance_insights.masking

KMS

on

С версии 5.2.0

sec_admin_default_auth

KMS

scram-sha-256

С версии 5.4.1

secure_config

KMS

Должно быть явно задано при настроенном подключении к KMS
Отсутствие значения является ошибкой
При значении on защищенные параметры считываются с KMS
При значении off защищенные параметры считываются из локальных файлов

ssl

KMS

off