Практичный принцип: секрет живет как можно ближе к месту применения, передается через 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