0

我正在使用 Docker Compose API 部署到 ECS,但是,我对环境变量有点困惑。

现在我的docker-compose.yml样子是这样的:

version: "3.8"

services:
  simple-http:
    image: "${IMAGE}"
    secrets:
      - message

secrets:
  message:
    name: "arn:aws:ssm:<AWS_REGION>:<AWS_ACCOUNT_ID>:parameter/test-env"
    external: true

现在在我的容器定义中,我得到了一个Simplehttp_Secrets_InitContainer引用这个环境变量作为并使用正确的 ARN,但是在我的运行容器message中没有命名变量。message

我有点困惑,因为我认为这是传递 env 的正确方法,例如 DB 密码、AWS 凭证等。

在我们看到的文档中:

services:
  test:
    image: "image"
    environment:
      - "FOO=BAR"

但这是正确且安全的方法吗?我错过了什么吗?

4

1 回答 1

1

在这个 ECS/Docker 集成中,我没有过多地研究秘密,但是在您的理解和文档之间有一些事情没有加起来。首先,集成似乎正在使用Secrets Manager而不是SSM. 其次,根据文档,内容不会作为变量提供,而是在运行时/run/secrets/message(在您的示例中)作为平面文件提供。

查看此页面了解详细信息:https ://docs.docker.com/cloud/ecs-integration/#secrets

于 2021-12-06T16:09:39.373 回答