我阅读了有关docker swarm 的秘密并进行了一些测试。据我了解,这些秘密可以替换 docker-compose.yml 文件中提供的敏感环境变量(例如数据库密码)。结果,当我检查 docker-compose 文件或正在运行的容器时,我看不到密码。这很好 - 但它真正有什么帮助?
如果攻击者在我的 docker 主机上,他可以轻松查看 /run/secrets
docker exec -it df2345a57cea ls -la /run/secrets/
并且还可以查看里面的数据:
docker exec -it df27res57cea cat /run/secrets/MY_PASSWORD
同一个攻击者通常可以在正在运行的容器上打开一个 bash 并查看它是如何工作的......
此外,如果攻击者在容器本身上,他可以环顾四周。
所以我不明白为什么docker secrets更安全,就好像我直接将它们写入docker-compose.yml文件一样?