非 root 用户的 docker secret

标签 docker security docker-secrets

我有一个非 root 用户运行的 docker 容器以提高安全性,但它似乎无法访问我与之共享的 secret :

Importing account from "/run/secrets/authority.priv.json" failed: Permission denied (os error 13)

我在 docker compose 中尝试了不同的解决方案:
1.设置uid和gid为1000(uid/gid如果是容器内的用户)
2.设置模式为0444甚至0777

但是这些都没有奏效,只有使用 root 才能使用这些 secret 。

任何的想法?

额外的问题:在 kubernetes 中会出现同样的问题吗?

码头文件:
FROM parity/parity:v2.2.1
LABEL maintainer="vincent@serpoul.com"

# SAD but It seems impossible to read the secrets otherwise
USER root

VOLUME ["/home/parity/.local/share/io.parity.ethereum"]

ADD ./configPoANode.toml /home/parity/configPoANode.toml
ADD ./PoA.json /home/parity/PoA.json
ADD ./entrypoint.sh /home/parity/entrypoint.sh

ENTRYPOINT ["/home/parity/entrypoint.sh"]

附录:repository (在 dockerfile 中使用 ROOT 用户):

最佳答案

使用 RUN --mount=type=secret,id=mysecret,uid=1000 cat /run/secrets/mysecret哪里mysecret是你传递给 docker build --secret id=mysecret,src=authority.priv.jsonuiduid奇偶校验用户。

关于非 root 用户的 docker secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53385930/

相关文章:

docker - 无需停机即可在 Docker Compose 堆栈中部署新镜像

docker - Docker的源代码可以下载到本地系统吗?

security - Kibana服务器认证

docker & MySQL : No secrets are created with docker-compose file

Azure WebApp 容器和 AppSettings/环境变量

Windows Server 2016 中的 Docker 无法运行

security - IE8 安全警告

javascript - Object as dictonary 的安全性真的由标准来保证吗?

docker - 如何使用 Docker secret 为 Docker 容器的多个实例创建证书?

docker - 将参数传递给 docker build,但不是通过 cli