Der*_*ers 5 docker devops docker-secrets
据我了解,Dockersecrets和挂载(绑定和卷)都是在 Docker 容器内管理机密的安全方法。我想知道是否secrets有任何安全优势?
我有一组任意大小的秘密。这些秘密保存在文件夹中的单独文件中。它们会定期自动更改。我想让它们全部可供 Docker 容器使用。使用绑定挂载,我可以挂载它们的文件夹,并且它们都可以访问。使用secrets,我必须在 Docker Compose 文件中指定每一项,从而增加耦合性并降低可维护性。我有什么理由应该选择以牺牲secrets可维护性为代价来选择它吗?
我最近也有同样的想法,不想实际使用 Docker Swarm 或运行任何分布式的东西。就我而言,起点是一个使用.env包含秘密的项目。如果您有一个简单的 Docker Compose 项目,则使用通过docker secret. 请注意,如果没有真正成为 Swarm 管理员,您甚至无法使用docker secret!创建秘密。
许多人不知道的是,Docker Compose 实际上与 Docker Swarm 一样支持挂载机密,但它仅适用于本地文件。所以这将是一个有效的 Docker Compose 配置:
version: "3.9"
services:
db:
image: mysql:latest
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_root_password
- db_password
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
secrets:
db_password:
file: db_password.txt
db_root_password:
file: db_root_password.txt
volumes:
db_data:
Run Code Online (Sandbox Code Playgroud)
除了将卷和其他类型的配置(通过 env)与机密分开这一事实之外,您实际上并没有在这里获得很多额外的安全性或附加值,这提供了一些额外的保护措施,防止意外提交存储库的秘密,或者将错误的文件安装到错误的容器等。
Mr.*_*Mr. -1
如果你不使用 swarm,它对你来说没有任何用处。
Docker 机密仅适用于集群服务,不适用于独立容器。
使用秘密有以下优点
秘密在传输过程中以及在 Docker 群中静止时被加密。
您可以利用 docker compose 中的 Secrets,无论 Swarm 如何,它都会将Secrets功能引入容器。docker compose 只是提供了一个很好的界面\facede,用于安装秘密文件并将其以其命名约定暴露给容器。
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |