# План: правила маскирования ПДн (pg_anonymizer) для боевого liderra.ru

## Цель

Закрыть остаток блокера B2: задать декларативные правила `SECURITY LABEL` на все
ПДн-колонки боевой БД (anon 3.0.13 установлен, правил 0) и оформить безопасный рецепт
маскированного дампа + план применения на прод. Реализация: новый файл
`db/anon_masking_labels.sql` с правилами по контракту {#D1} и обновление setup-дока
`docs/security/pgaudit-anonymizer-setup.md` (снять расхождение dev↔прод, добавить секцию
масок, рецепт дампа {#D3} и план применения). На прод правила сам не применяю.

```skills-json
["pdn-152fz-audit"]
```

```steps-json
[
  {"op":"Write","object":"db/anon_masking_labels.sql","ref":"D1"},
  {"op":"Edit","object":"docs/security/pgaudit-anonymizer-setup.md","ref":"D4"},
  {"op":"Edit","object":"docs/security/pgaudit-anonymizer-setup.md","ref":"D3"}
]
```

Шаг 1 создаёт файл правил по таблице {#D1} с шапкой о безопасности применения {#D2}.
Шаг 2 правит строку статуса setup-дока: фиксирует факт (dev без anon, прод с anon, но
0 правил) и снимает прежнее расхождение «anon не установлен» {#D4}. Шаг 3 дописывает в
setup-док секцию правил маскирования, рецепт маскированного дампа {#D3} и план
применения на прод (создание `anon_dumper`, прогон файла, проверка `pg_masking_rules`,
тестовый дамп).

```verified-context-json
[
  {"id":"vc1","kind":"EXTRACTED","ref":"docs/security/pgaudit-anonymizer-setup.md","anchor":"CREATE EXTENSION anon CASCADE"}
]
```

## Переговоры

### Круг 1

Доводы по контракту: правила безопасны к применению на проде — `SECURITY LABEL`
активирует маскирование только для ролей с меткой `MASKED`, роли приложения видят
реальные данные, реальные данные не переписываются (динамическое, не статическое
маскирование), RLS и FK не затрагиваются (ключевые колонки не маскируются). Для
наставника: жду forward-`recommendation` по полноте перечня колонок {#D1} и по рецепту
дампа {#D3} — какие ещё носители ПДн стоит включить или как усилить проверку приёмки.
