第 8 章 使用 Container Security Operator 扫描 pod 镜像
通过使用 Container Security Operator,(CSO)您可以扫描与活跃 pod 关联的容器镜像,在 OpenShift (4.2 或更高版本)上运行,以及其他 Kubernetes 平台中的已知漏洞。CSO:
- 监视与所有或指定命名空间中的 pod 关联的容器
- 查询容器来自漏洞信息的容器 registry,提供镜像的 registry 支持镜像扫描(如带有 Clair 扫描的 Quay registry)
- 通过 Kubernetes API 中的 ImageManifestVuln 对象公开漏洞
根据这里的说明,CSO 安装在 marketplace-operators
命名空间中,因此 OpenShift 集群上的所有命名空间都可以使用它。
要在 Kubernetes 上安装 CSO 的说明,请从 Container Security OperatorHub.io 页面中选择 Install 按钮。
8.1. 在 OpenShift 中运行 CSO 复制链接链接已复制到粘贴板!
要在 OpenShift 中使用 CSO,请执行以下操作:
-
进入 Operators
OperatorHub (选择 Security)来查看可用的 Container Security
Operator。 -
选择
Container Security
Operator,然后选择Install
进入 Create Operator Subscription 页面。 -
检查设置(默认所有命名空间和自动批准策略),然后选择
Subscribe
。在Installed Operators
屏幕中几分钟后会出现容器安全性
。 另外,您可以选择在 CSO 中添加自定义证书。在本例中,在当前目录中创建一个名为 quay.crt 的证书。然后运行以下命令,将证书添加到 CSO (重新启动 Operator pod 以使新证书生效):
oc create secret generic container-security-operator-extra-certs --from-file=quay.crt -n openshift-operators
$ oc create secret generic container-security-operator-extra-certs --from-file=quay.crt -n openshift-operators
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开 OpenShift Dashboard (Home
Dashboards)。到 Image Security 的链接会出现在 status 部分,其中列出了目前发现的漏洞数量。选择链接来查看安全性分类,如下图所示: 对于任何检测到的安全漏洞,您可以在此时进行两个操作之一:
选择到这个漏洞的链接。您会进入容器 registry、Red Hat Quay 或其他 registry (容器来自的位置),从中查看有关漏洞的信息。下图显示了从 Quay.io registry 中检测到的漏洞示例:
选择 namespaces 链接以进入 ImageManifestVuln 屏幕,您可以在其中查看所选镜像的名称以及该镜像正在运行的所有命名空间。下图显示了特定存在安全漏洞的镜像在两个命名空间中运行:
此时,您知道哪些镜像存在这个安全漏洞,需要做什么来修复这些漏洞,以及镜像在中运行的每个命名空间。您可以:
- 警告运行镜像的用户需要修正这个漏洞
- 停止镜像正在运行(通过删除启动镜像所在 pod 的部署或其他对象)
请注意,如果您删除 pod,可能需要几分钟后才能在仪表板上重置漏洞。