Шифрование .env и безопасная передача секретов в CI/CD

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

dotenvopensslci/cd

ℹ️ Передача секретов в CI/CD – боль. dotenv-файлы часто попадают в логи, secrets manager не всегда доступен, а base64 – ненадёжен. Но есть способ!

1. Шифруем .env с OpenSSL

Можно зашифровать .env перед коммитом, а в CI/CD расшифровывать на лету:

openssl enc -aes-256-cbc -salt -pbkdf2 -in .env -out .env.enc -pass pass:"$(cat secret.key)"

secret.key – файл с паролем (его НЕ коммитим).
-pbkdf2 – делает шифрование устойчивым к брутфорсу.

2. Расшифровка в CI/CD перед запуском

В GitHub Actions или GitLab CI/CD:

openssl enc -aes-256-cbc -d -pbkdf2 -in .env.enc -out .env -pass pass:"$SECRET_KEY"

Где $SECRET_KEY – секретное переменное окружение.

Плюсы:

  • .env.enc можно безопасно хранить в репозитории.
  • Избегаем утечек при cat .env в логах CI/CD.
  • Работает даже без внешнего secret manager.

✳️ Больше не надо бояться утечек в логах или случайных коммитов с секретами!

tags: #полезно #cicd #безопасность

🧭 @recura_tech

Иллюстрация концепции безопасности CI/CD: щит с замком на фоне логотипов GitHub и GitLab, иконки шифрования, сети и хранилища — образ защиты секретов .env.
Иллюстрация: щит с замком, логотипы GitHub и GitLab и символы шифрования, отражающие безопасность CI/CD.

Читайте так же