在AWS Fargate容器中存储数据库连接字符串

时间:2018-10-26 17:42:28

标签: docker security go aws-fargate aws-secrets-manager

现在,我有一个API容器,我希望将其推送到一个AWS Fargate实例,该实例具有专用服务器上数据库的连接字符串。为了进行测试,它已经存储在我的Golang程序的字符串中,但是即使在程序已经编译的情况下,我也不想推送它。

我已经研究过将GO AWS SDK用于SecretsManager,但是我不确定这是否是最好的方法,或者它是否能像我希望的那样工作。处理此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

将内容硬编码到程序中绝不是最好的选择,所以我与您分享痛苦和对更好内容的需求,这可能是:

  1. 将连接字符串定义为环境变量。此解决方案不会保留信息的“秘密”,因此,如果您不希望以任何方式读取它,请尝试下一个
  2. 将连接字符串定义到Secrets Manager中,并在环境变量定义中进行引用

在第一种情况下,使用CloudFormation可以做到这一点:

...
Environment:
  -
    Name: CONNECTION_STRING
    Value: 'YOUR VALUE'
...

在第二种情况下,我们将:

...
Environment:
  -
    Name: CONNECTION_STRING
    Value: '{{resolve:secretsmanager:MySecret:SecretString:connection_string}}'
...