backlog: заведён запрет секретов в выводе плейбуков
- `inv pl` идёт с `--diff`, и 14 задач в 12 плейбуках печатают отрендеренные секреты в терминал; `no_log` есть только в `roles/secrets`. Инвентарь, рычаги (`no_log`, `diff: false`, вынос в отдельный файл) и порядок — в задаче. - Актуализирована `secrets-env-to-file`: список приложений сверен с шаблонами (tuwunel чистый, у gitea только SMTP), добавлен мотив с диффом.
This commit is contained in:
@@ -2,16 +2,35 @@
|
||||
|
||||
**Приоритет:** средний
|
||||
|
||||
miniflux сделан правильно — секреты через `*_FILE` + монтирование каталога
|
||||
secrets `:ro` (`files/miniflux/docker-compose.template.yml`). Но outline
|
||||
(DATABASE_URL с паролём, `SECRET_KEY`, `UTILS_SECRET`, OIDC secret, SMTP), wakapi
|
||||
(salt, SMTP), tududi (session secret, OIDC secret, ключ LLM), gitea (SMTP),
|
||||
gramps, tuwunel кладут секреты прямыми значениями в `environment:`. Такие
|
||||
переменные читает любой член группы `docker`, любой процесс с доступом к
|
||||
miniflux сделан правильно — роль `secrets` кладёт каждую переменную vault в
|
||||
отдельный файл, каталог монтируется `:ro`, а compose ссылается на `*_FILE`
|
||||
(`files/miniflux/docker-compose.template.yml`). Остальные держат секреты прямыми
|
||||
значениями в `environment:`:
|
||||
|
||||
- **outline** — пароль postgres, `SECRET_KEY`, `UTILS_SECRET`, секрет OIDC, SMTP
|
||||
- **tududi** — session secret, секрет OIDC, ключ LLM, SMTP
|
||||
- **wakapi** — salt паролей, секрет OIDC, SMTP
|
||||
- **wanderer** — мастер-ключ meilisearch, ключ шифрования pocketbase
|
||||
- **gramps** — `gramps_secret_key`, SMTP
|
||||
- **gitea** — только SMTP (`postbox_pass`)
|
||||
|
||||
tuwunel из списка убран: в его compose секретов нет (сверено 2026-07-25). memos и
|
||||
calibre тоже чистые.
|
||||
|
||||
Такие переменные читает любой член группы `docker`, любой процесс с доступом к
|
||||
`/proc/<pid>/environ`, и они попадают в `docker inspect`. Где приложение умеет
|
||||
`*_FILE`/конфиг-файл — постепенно перевести по образцу miniflux.
|
||||
`*_FILE` или конфиг-файл — постепенно перевести по образцу miniflux.
|
||||
|
||||
Из sec-ревью (fable, 2026-07-13). Связка с [service-users-docker-group](service-users-docker-group.md).
|
||||
Второй мотив, найденный позже: пока секрет стоит прямым значением в шаблоне,
|
||||
`ansible-playbook --diff` печатает его в терминал при каждом изменении файла.
|
||||
Вынос в отдельный файл чинит это структурно — дифф compose остаётся читаемым, а
|
||||
секретный файл рендерит роль `secrets` под `no_log`. Но покрывает только
|
||||
`environment:`; конфиги (authelia, bifrost, backups, remembos) и общий запрет на
|
||||
вывод — в [no-secrets-in-playbook-output](no-secrets-in-playbook-output.md), и
|
||||
она идёт первой: там дёшево и закрывает всё сразу.
|
||||
|
||||
Связано: files/outline, files/wakapi, files/tududi, files/gitea, files/gramps,
|
||||
files/tuwunel, files/miniflux (образец).
|
||||
Из sec-ревью (fable, 2026-07-13). Связка с
|
||||
[service-users-docker-group](service-users-docker-group.md).
|
||||
|
||||
Связано: files/outline, files/wakapi, files/tududi, files/wanderer, files/gramps,
|
||||
files/gitea, files/miniflux (образец), roles/secrets.
|
||||
|
||||
Reference in New Issue
Block a user