如何在弹性beantalk应用程序中访问针对不同环境(阶段,生产)的AWS System Manager参数存储

时间:2019-07-03 03:38:26

标签: ruby-on-rails amazon-web-services amazon-elastic-beanstalk aws-parameter-store

我正在努力将Rails应用程序从其当前的PaaS迁移到aws弹性beantalk。除了弹性beantalk允许配置将键和值组合在一起最大4096字节大小外,其他一切都进行得很好。由于我的应用程序具有许多第三方api凭据,因此我的配置方式大于4096bytes。

我在AWS中发现了一项出色的服务,用于存储称为AWS System Manager参数存储的秘密凭证,以克服4096byte的限制。

我的目标是存储我的凭据,然后将其重新加载到我的应用程序的ENV变量中,但是我发现了以下问题:

  • 如何能够为不同的环境分隔配置值,在我的情况下,我将在参数存储区中进行升级和生产?我需要为每个环境复制密钥吗?组织这些密钥以便能够以编程方式轻松加载到ENV var中的做法是什么?

  • 如何能够相应地访问当前环境中的参数存储?也就是说,当容器在生产环境中部署时,应该在生产环境中加载参数存储值ENV var,而不是在阶段中加载。

  • 允许ElasticBeanstalk实例通过AWS IAM访问AWS System Manager参数存储的最佳实践是什么?

我在AWS CLI中尝试了一些命令以在本地进行读写,例如这样的操作就很好

aws --region=us-east-1 ssm put-parameter --name STG_DB --value client --type SecureString

aws --region=us-east-1 ssm get-parameter --name STG_DB --with-decryption --output A --query Parameter.Value

我需要人们用来解决上述所有问题的一些标准程序或做法。

分步指南和示例将非常有用。

0 个答案:

没有答案