如何在Google Cloud Run上使用gVisor运行不可信代码?
Cloud Run 二代环境调用gVisor运行不可信二进制方案
核心结论
不需要使用docker-in-docker,也不需要独立部署额外的gVisor实例,Cloud Run第二代执行环境已原生支持该需求。
具体操作步骤
- 部署Cloud Run服务时必须指定使用第二代执行环境,gcloud部署命令增加参数
--execution-environment gen2 - 构建业务服务镜像时,无需额外安装完整gVisor组件,仅需将待执行的不可信二进制文件放入镜像内可访问路径即可
- 代码中启动子进程时,直接调用环境内置的
runsc命令作为前缀启动不可信程序即可,示例调用格式:runsc do ./your_untrusted_binary
注意事项
- 可通过
runsc自带的参数自定义不可信进程的资源配额、网络权限等隔离规则,避免异常进程占用服务本身的运行资源 - 若你有自定义gVisor版本的需求,可自行将编译好的
runsc二进制打包到你的服务镜像中,容器内自定义的runsc优先级高于系统内置版本,不会产生依赖冲突 - 该方案无需开启容器特权模式,也无需挂载Docker套接字,安全性远高于docker-in-docker方案
内容的提问来源于stack exchange,提问作者fls0815
相关产品推荐
相关产品推荐

