微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何防止访问 Docker Python 映像上的文件但仍调用脚本?

如何解决如何防止访问 Docker Python 映像上的文件但仍调用脚本?

上下文

我正在通过 Docker 交付一些 Python 代码,我的目的是防止图像的用户读取/写入/复制图像中的文件,但允许他们运行脚本。

作为一个最小的例子,我有这个文件夹:

root directory/
    code/
         main.py 
         resource.json
    Dockerfile

Main.py

import json
import os

with open(os.path.join(os.path.dirname(__file__),resource.json),“r”) as f:
    resource = json.load(f)

resource_to_write = {“key”: “value”}
with open(os.path.join(os.path.dirname(__file__),“resource_to_write.json”)

resource.json

{“key_to_read”: “value_to_read”}

Dockerfile

FROM python:3.7.10
workdir /code
copY ./code
CMD ["/bin/bash"]

所以最终目标是允许用户成功运行code/main.py包括读/写),而不允许用户直接从图像中读取、写入、复制任何内容

我尝试过的

我知道 Docker 的 USER 指令,所以我尝试添加

chmod -R 0660 * && chmod 0665 code/ && chmod 0665 code/main.py

USER non_root _user

但是当我执行 docker exec <container_id> python code/main.py 时,脚本没有打开 json 文件的权限。

我怎样才能做到这一点?是否有我可以实现的无密码 sudo 等价物,以便用户可以正确运行该脚本,而无需让他们访问其他任何内容

还是我从错误的角度接近这个?

奖金问题

如果实现了上述,如何防止用户简单地做docker exec —user root并克服我的安全措施?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。