如何使用 ECS CLI 和 ECS 任务指定敏感环境变量?

How to specify sensitive environment variables with ECS CLI and ECS tasks?

在 AWS CLI (cmd-ecs-cli-compose) 的 docker-compose 文档的 environment: 部分中,说明如下:

Important

We do not recommend using plaintext environment variables for sensitive > information, such as credential data.

使用 docker-compose 和 ECS 任务定义存储敏感信息(如密码)的推荐方法是什么?为什么不推荐纯文本?

不建议将纯文本用于环境变量,因为 docker 不是安全容器,并且环境变量对于有权访问顶级 Docker 命名空间的所有进程都是可读的。因此,如果有人可以访问您的 EC2 实例上的 /proc,他们可以通过查询容器内的进程 运行 来读取机密。

我建议使用 KMS 加密它们或将它们存储在 Parameter Store 或 DynamoDB 中并在启动时下载。