第 17 章 对 pod 进行安全漏洞扫描
使用 Red Hat Quay Container Security Operator,您可以访问 OpenShift Container Platform Web 控制台中用于集群中活跃 pod 的容器镜像,访问 OpenShift Container Platform Web 控制台中的漏洞扫描结果。Red Hat Quay Container Security Operator:
- 监视与所有或指定命名空间中的 pod 关联的容器
- 查询容器来自漏洞信息的容器 registry,只要镜像的 registry 正在运行镜像扫描(如 Quay.io 或带有 Clair 扫描的 Red Hat Quay registry)
-
通过 Kubernetes API 中的
ImageManifestVuln
对象公开漏洞
根据这里的说明,Red Hat Quay Container Security Operator 安装在 openshift-operators
命名空间中,因此 OpenShift Container Platform 集群上的所有命名空间都可以使用它。
17.1. 安装 Red Hat Quay Container Security Operator 复制链接链接已复制到粘贴板!
您可以通过 OpenShift Container Platform Web 控制台 Operator Hub 或 CLI 安装 Red Hat Quay Container Security Operator。
先决条件
-
已安装
oc
CLI。 -
使用具有
cluster-admin
权限的用户访问 Web 控制台。 - 您有来自集群中运行的 Red Hat Quay 或 Quay.io registry 的容器。
流程
您可以使用 OpenShift Container Platform Web 控制台安装 Red Hat Quay Container Security Operator:
-
在 Web 控制台中,进入到 Operators
OperatorHub 并选择 Security。 - 选择 Red Hat Quay Container Security Operator Operator,然后选择 Install。
-
在 Red Hat Quay Container Security Operator 页面中,选择 Install。Update channel, Installation mode, 和 Update approval 会自动选择。Installed Namespace 字段默认为
openshift-operators
。您可以根据需要调整这些设置。 - 选择 Install。在 Installed Operators 页面中,Red Hat Quay Container Security Operator 会出现。
可选:您可以在 Red Hat Quay Container Security Operator 中添加自定义证书。例如,在当前目录中创建一个名为
quay.crt
的证书。然后,运行以下命令将自定义证书添加到 Red Hat Quay Container Security Operator 中: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 - 可选:如果您添加了自定义证书,请重启 Red Hat Quay Container Security Operator pod 以使新证书生效。
-
在 Web 控制台中,进入到 Operators
另外,您可以使用 CLI 安装 Red Hat Quay Container Security Operator:
输入以下命令来检索 Container Security Operator 及其频道的最新版本:
oc get packagemanifests container-security-operator \ -o jsonpath='{range .status.channels[*]}{@.currentCSV} {@.name}{"\n"}{end}' \ | awk '{print "STARTING_CSV=" $1 " CHANNEL=" $2 }' \ | sort -Vr \ | head -1
$ oc get packagemanifests container-security-operator \ -o jsonpath='{range .status.channels[*]}{@.currentCSV} {@.name}{"\n"}{end}' \ | awk '{print "STARTING_CSV=" $1 " CHANNEL=" $2 }' \ | sort -Vr \ | head -1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
STARTING_CSV=container-security-operator.v3.8.9 CHANNEL=stable-3.8
STARTING_CSV=container-security-operator.v3.8.9 CHANNEL=stable-3.8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用上一命令的输出,为 Red Hat Quay Container Security Operator 创建一个
Subscription
自定义资源,并将它保存为container-security-operator.yaml
。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令应用配置:
oc apply -f container-security-operator.yaml
$ oc apply -f container-security-operator.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
subscription.operators.coreos.com/container-security-operator created
subscription.operators.coreos.com/container-security-operator created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow