Подтвердить что ты не робот

Передача секретов приложений в Yesod и Keter

Я создаю веб-приложение с Yesod и в настоящее время передаю секреты, такие как ключи API через переменные среды (согласно The Twelve-Factor App), чтобы избежать сохранения этих значений в файлах конфигурации, управляемых версиями. Например, я запускаю свое приложение в режиме dev следующим образом:

SOME_API_KEY=value yesod devel

У меня есть значение в моем файле config/settings.yml, который определяется в терминах этой переменной среды с пустым значением следующим образом:

meetup-api-key: "_env:SOME_API_KEY:"

Для развертывания с использованием Keter я создаю пакет Keter с помощью команды yesod keter и отбрасывая полученный файл в каталог incoming Keter. Поскольку я использую конфигурацию переменных окружения, мое приложение .keter не содержит значения SOME_API_KEY (которое преднамеренно).

Как передать SOME_API_KEY в экземпляр моего приложения, работающего внутри кетера?

Я хотел бы избежать выпечки значения в моем keter-config.yaml по крайней мере по трем причинам:

  • Он менее безопасен, чем подход к переменной среды.
  • Будучи встроенным непосредственно в файл конфигурации для самого Keter, в отличие от конфигурации приложения, секрет не может быть изменен без остановки и перезапуска всего процесса Keter.
  • Переменные среды передаются в каждое приложение, управляемое Keter.

Я надеюсь, что для этого сценария есть несколько "лучших практик".

4b9b3361