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