【问题标题】:Updating ECS container without disclosing task definition environment variables在不公开任务定义环境变量的情况下更新 ECS 容器
【发布时间】:2018-03-24 01:24:49
【问题描述】:

我正在查看this post,了解如何更新 ecs 服务的容器。它需要我传入一个带有任务定义的 JSON 文件。我唯一担心的是,如果我在 CI/CD 平台上拥有它,我将不得不提交我的任务定义,其中包含环境变量部分中的机密。

【问题讨论】:

  • 不幸的是,该问题中的大多数答案都非常离谱。我会花一些时间在那篇文章中写一个正确的答案。目前,我不确定您通过传入带有任务定义的 JSON 文件 指的是什么。这绝对不是 AWS 的要求,但它是否特定于您的工作流程?你能详细说明一下你的具体情况吗?
  • 正是这条线让我着迷:aws ecs register-task-definition --cli-input-json file://$taskDefinitionFile --region $awsRegion > /dev/null

标签: devops amazon-ecs


【解决方案1】:

您应该考虑使用AWS Parameter Storechamber,如本博客所述:https://aws.amazon.com/blogs/mt/the-right-way-to-store-secrets-using-parameter-store/

简单来说,步骤可以概括为:

  1. 在本地安装chamber,您可以使用合适的 AWS 权限运行它。
  2. 创建一个名为 parameter_store_key 的 KMS 密钥。
  3. 运行 chamber write <service> <key> <value> 以将 key=value 添加到 Parameter Store(<service> 是您的应用程序的标签)。
  4. 为您的 ECS 任务分配一个 IAM 角色,该角色有权访问 Parameter Store 参数和 KMS 密钥。
  5. chamber 安装到您的 docker 映像中。
  6. 更新 Docker 映像的 ENTRYPOINT 以运行 chamber exec <service> -- yourapp
  7. <service> 的 Parameter Store 参数现在可用于环境中的应用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 2017-09-05
    • 2019-12-01
    • 2021-01-14
    • 2021-12-01
    • 2021-03-07
    • 1970-01-01
    相关资源
    最近更新 更多