Секреты чаще всего текут не через «взлом», а через бытовую халатность: .env в git, токены в логах, бэкапы без шифрования, лишние права у контейнеров. Если инстанс живёт дольше одного запуска, считай, что утечка — вопрос времени.
Минимальный набор правил:
— хранить ключи вне репозитория и вне образа;
— подсовывать их в runtime через переменные, mounted files или secret store;
— не писать секреты в stdout, debug-логи и error-репорты;
— ротировать токены после каждого инцидента и после увольнения доступа.
В self-hosted стекe безопасность ломается на связке «доступ к хосту = доступ ко всему». Разделяй сервисы по пользователям, режь capabilities, отключай лишние volume-mounts, а для CI/CD используй отдельные короткоживущие креды. Контейнер — не граница безопасности, это просто удобная коробка.
Проверь бэкапы: если в них лежат .env, config.json, ключи от API и дампы БД без шифрования, ты архивируешь будущую аварию. Владей своим софтом, а не арендуй его: секреты должны жить по принципу наименьших прав и минимального времени жизни.
Self-hosted арсенал
@self_hosted_arsenal_ubt
API-ключи в self-hosted: как не отдать секреты вместе с доступом к серверу
Этот пост опубликован в Telegram-канале Self-hosted арсенал. Подписаться можно по ссылке: @self_hosted_arsenal_ubt.