Практичный принцип: секрет живет как можно ближе к месту применения, передается через stdin или специальный secret-store и получает минимальный срок жизни.
SECRET="$(openssl rand -base64 32)"
printf '%s' "$SECRET" | command-that-reads-passphrase --stdin
unset SECRET
Базовый контур
- Хранить долгоживущие значения в vault или secret manager.
- Для
.envиспользовать права только для владельца процесса. - Передавать секреты через stdin там, где инструмент это поддерживает.
- Логировать факт операции, но не значение секрета.
- Разделять локальные, CI и production-контуры доступа.
chmod 600 .env
chown app:app .env
