参加了 Docker 和 Compose 速成课程,学习如何部署一个考虑到安全性的小型自动化应用程序。问题是,我需要输入脚本敏感值并且不想硬编码它们。经过大量研究后,我选择了 Compose 并在运行时设置我的 env var,而不是使用标准的 Docker 构建。我还有一些 JSON 文件,其中包含作为卷传递的登录形式的 Web cookie。我的理解是在检查容器时这些值是不可见的。然而,当我检查它时,它们与 JSON 文件的内容一起清晰可见。除非我是唯一一个知道如何访问特定容器的人,否则我很确定这不是一个安全的选择。
来自yaml:
services:
frontend:
image: SOME IMAGE
build: .
volumes:
- ./script.py:/app/script.py
- ./words.txt:/app/words.txt
- ./.some.json:/app/.some.json
- ./.another.json:/app/.another.json
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
env_file:
- ./some.env
container_name: name
volumes:
.:
external: true
为什么值和文件清晰可见?我现在不想去 Swarm 的方向和它的秘密。
编辑:这不会被推送到集线器或存储库,所以我不担心这方面的安全性。