如何解决如何防止访问 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 举报,一经查实,本站将立刻删除。