【问题标题】:How should I store docker credentials?我应该如何存储 docker 凭据?
【发布时间】:2018-09-22 01:40:23
【问题描述】:
首先,我想说我在安全和身份验证方面的知识非常有限。
我有一个应用程序可以从 docker store 中提取和运行容器。这是一个私人仓库,所以我需要传递用户名和密码,以便用户可以拉取。在 Mac 上,登录凭据存储在钥匙串中,用户可以打开他们的钥匙串并以纯文本形式读取密码。如何防止这种情况发生,让用户看不到我的凭据?
凭据当前以纯文本形式存储在 json 中。我知道这不是一个好的做法,但即使它是加密的(就我而言),它也必须在登录前解密,并在登录后存储在钥匙串中,因此钥匙串仍会存储我的凭据.
【问题讨论】:
标签:
security
docker
authentication
【解决方案1】:
你可能想看看Docker secrets
就 Docker Swarm 服务而言,秘密是一团数据,例如
密码、SSH 私钥、SSL 证书或其他数据
不应通过网络传输或未加密存储在
Dockerfile 或应用程序的源代码中。在 Docker 1.13 和
更高,您可以使用 Docker 机密来集中管理这些数据和
仅将其安全地传输到那些需要访问它的容器。
秘密在传输过程中被加密,在 Docker 群中处于静止状态。一种
给定的秘密只能被那些已经被
授予对它的显式访问权限,并且仅在那些服务任务被
正在运行。
Docker 机密仅适用于 swarm 服务,不适用于独立服务
容器。要使用此功能,请考虑使您的容器适应
作为服务运行。有状态容器通常可以按比例运行
在不更改容器代码的情况下为 1。