应用上云的过程中,过了部署关和应用改造关之后,安全就是下一个大问题了。对于容器化应用来说,镜像的安全是个非常根本的问题,例如 Harbor 中集成了 Clair 组件,用于对镜像进行漏洞扫描;之前介绍的 Trivy 也能够提供对镜像各层进行扫描的能力,类似的工具还有很多。在完成镜像本身的安全保障之后,一方面要把安全构建出来的镜像能够”原汁原味“的提供给运行时进行使用,同时还要对运行时环境进行约束,只允许获取和运行可靠镜像,如此才能够保证镜像供应链的完整。
快速上手
Harbor 中提供了 Notary 服务来提供了这方面的保障,Docker 17.12 之后也提供了对应的运行时支持。
这里用 1.10.0 版本的 Harbor 为例,在安装命令中加入参数 --with-notary 就可以启用这个服务了。启动 Harbor 之后,使用 Docker 客户端的终端设置环境变量:
export DOCKER_CONTENT_TRUST=1
启用 Docker 的内容信任模式。
这里多出了一个初始化过程,在我们照章输入密码之后,发现出了错,这是因为我们没有设置 Notary 服务地址,加入环境变量来解决:
export DOCKER_CONTENT_TRUST_SERVER=https://hub.docker.com:4443
做完上面这些,在推送镜像的时候,可能出现下面的错误
ERRO[0000] could not reach https://127.0.0.1:4443: Get https://127.0.0.1:4443/v2/: x509: certificate signed by unknown authority
这样来解决
| |
|