在处理 Docker 基线检查问题时,有一个检查项目为,需要给 Docker 设置授权插件,限制客户端命令的使用。为了通过检查,写了一个脚本实现的授权接口,没有限制任何权限,全部返回允许,如果需要,可以增加限制逻辑。
需要完成的操作:
- 增加授权接口脚本
- docker 中增加插件配置
参考官方文档:
access-authorization-plugin
Docker Plugin API
使用 python 写的脚本,为了尽可能方便,不使用第三方库,使用 python 自带的 http 库。
- 实现的授权需要的三个接口:
- /Plugin.Activate:插件探活接口,返回插件的实现。
- /AuthZPlugin.AuthZReq:在 Docker 守护进程处理客户端请求之前调用此授权请求方法。
- /AuthZPlugin.AuthZRes:在响应从 Docker 守护进程返回到客户端之前被调用。
- docker 授权请求全为 POST
Docker 通过在插件目录中查找插件来发现插件,可以配置三种类型的文件到插件目录中:
- .sock
- .spec
- .json
这里使用 json 文件配置插件,在 docker 的默认插件目录(或)下增加一个文件,文件内容如下: