标签: keter

在Yesod和Keter传递应用秘密

我正在使用Yesod构建一个Web应用程序,目前我正在通过环境变量(根据Twelve-Factor App)传递API密钥等秘密,以避免将这些值存储在版本控制的配置文件中.例如,我在开发模式下运行我的应用程序,如下所示:

SOME_API_KEY=value yesod devel
Run Code Online (Sandbox Code Playgroud)

我的config/settings.yml文件中有一个值,该值是根据此环境变量定义的,其值为空值,如下所示:

meetup-api-key: "_env:SOME_API_KEY:"
Run Code Online (Sandbox Code Playgroud)

要使用Keter进行部署,我将使用该yesod keter命令构建Keter包,并将生成的文件放入Keter的incoming目录中.由于我使用环境变量配置,我的应用程序的.keter文件不包含SOME_API_KEY值(这是故意的).

我应该如何SOME_API_KEY进入在Keter内部运行的应用程序实例?

我想避免将价值烘焙到我keter-config.yaml的至少以下三个原因:

  1. 它不如环境变量方法安全.
  2. 直接嵌入到Keter本身的配置文件中,与应用程序的配置相反,如果不停止并重新启动整个Keter进程,则无法更改密钥.
  3. 环境变量将传递到Keter管理的每个应用程序中.

我希望在这种情况下有一些"最佳实践".

deployment haskell web-deployment yesod keter

17
推荐指数
1
解决办法
353
查看次数

标签 统计

deployment ×1

haskell ×1

keter ×1

web-deployment ×1

yesod ×1