【问题标题】:docker secrets with non root user非 root 用户的 docker 机密
【发布时间】:2019-04-22 11:30:51
【问题描述】:

为了更好的安全性,我有一个使用非 root 用户运行的 docker 容器,但它似乎无法访问我与之共享的秘密:

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 才能让我使用这些秘密。

有什么想法吗?

额外问题: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):

【问题讨论】:

  • 我遇到了同样的问题。 Secret 需要非 root 用户读取,失败。 chmod 和 chown 也不起作用,因为它是“只读文件系统”。将内容复制到其他地方或保存在 ENV var 中会使秘密机制毫无意义。我很高兴有一个解决方案:)

标签: docker security docker-secrets


【解决方案1】:

使用RUN --mount=type=secret,id=mysecret,uid=1000 cat /run/secrets/mysecret

其中mysecret 是您传递给docker build --secret id=mysecret,src=authority.priv.json 的内容,uid 是奇偶校验用户的uid

【讨论】:

    【解决方案2】:

    这是因为您在 docker 容器中设置了 root 用户,并且 root 拥有所有 monted 卷和文件,而不是我不确定是否存在的奇偶校验用户。
    我会做以下事情:

    从 dockerfile 中删除 USER root。默认情况下它是根。

    检查parity用户是否存在于容器中。

    如果不使用/home/parity 目录创建它。

    像您一样安装卷和文件。

    RUN chown -R parity:parity /home/parity 赋予新创建用户的所有权。

    然后用USER parity告诉容器默认使用新创建的用户

    将您可能需要的入口点添加到RUN chmod ug+x /home/parity/entrypoint.sh,这样可以确保它可以执行。

    一切顺利(希望如此),运行容器时无需设置任何用户,USER parity 行默认使用parity 用户。

    【讨论】:

    • 默认情况下用户实际上是奇偶校验(来自父图像)。我想保留它,但这是我的问题,它不起作用,这就是我添加用户 root 的原因。用户奇偶校验已经存在并拥有主/奇偶校验文件夹,并且入口点已经是可执行的。现在的问题是用户奇偶校验似乎无法访问该秘密
    • 你尝试chown添加的文件吗?
    • 另请注意,在这种情况下,我认为COPYADD 更合适。
    • 感谢您的复制,这确实是一个很好的建议。问题不是来自复制的文件,而是来自稍后挂载的机密(挂载在 /run/secrets 上)。
    猜你喜欢
    • 2017-07-03
    • 2018-01-13
    • 2023-03-03
    • 2018-07-06
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2020-07-01
    • 2022-01-08
    相关资源
    最近更新 更多