Код проекта хранится в приватном git репо. Ключи и пароли от сторонних сервисов, с которыми проект взаимодействует (AWS, Robokassa, Paypal, Stripe), лежат вне репо – пока что у меня на локальном ноуте в 1Password, например. В проекте все приватные данные оказываются в переменных окружения, и оттуда берутся скриптами. Для Laravel это или через создание
.env.php в корне проекта, или через
конфиги веб-сервера или
параметры при запуске docker-контейнера.
Во время разворачивания ещё требуются SSH-ключи и ключи от DigitalOcean.
Задачи сейчас:
- При нулевом ручном вмешательстве разворачивать новые серверы с проектом
- Привлечь сторонних девелоперов, которым production-ключи не показывать. Для разработки/тестирования есть отдельный набор ключей.
Вопрос: как и где лучше хранить и обновлять ключи, и как их вытаскивать при разворачивании проекта, не давая доступа к ним сторонних разработчиков? Т.е., видимо, должна быть одна точка авторизации - например, при запуске скрипта, которая открывает доступ к некому хранилищу с ключами и разворачивает новый сервер с проектом. Сами ключи хочется держать отдельно от скриптов деплоя.