【问题标题】:Storing a Database Connection String in AWS Fargate Container在 AWS Fargate 容器中存储数据库连接字符串
【发布时间】:2019-03-31 12:22:41
【问题描述】:

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

我已经研究过为 SecretsManager 使用 GO AWS 开发工具包,但我不确定这是否是最好的方法,或者它是否能像我希望的那样工作。处理这个问题的最佳方法是什么?

【问题讨论】:

  • 只要您的防火墙规则设置得当,这并不重要。我通常将这些类型的东西保存在环境变量中。
  • 你看过 Docker 的秘密吗? docs.docker.com/engine/swarm/secrets
  • Docker Secrets 不是 Swarm 功能吗?您将无法将它与 Fargate 结合使用。
  • @bluescores 有一个 golang sdk 可以让你访问秘密。

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


【解决方案1】:

将东西硬编码到程序中显然不是最好的选择,所以我分享你的痛苦和对更好的东西的需求,这可能是:

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

我们将在第一种情况下使用 CloudFormation 执行此操作:

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

而在第二种情况下,我们会:

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

【讨论】:

    猜你喜欢
    • 2019-03-08
    • 1970-01-01
    • 2018-05-18
    • 2018-07-19
    • 2011-05-24
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多