第 14 章 对 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 集群中的所有命名空间都可以使用它。
14.1. 安装 Red Hat Quay Container Security Operator
您可以从 OpenShift Container Platform Web 控制台 Operator Hub 或 CLI 安装 Red Hat Quay Container Security Operator。
先决条件
-
已安装
oc
CLI。 - 具有 OpenShift Container Platform 集群的管理员特权。
- 您有来自集群中运行的 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
- 可选:如果您添加了自定义证书,请重启 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 -nr \ | head -1
输出示例
STARTING_CSV=container-security-operator.v3.8.9 CHANNEL=stable-3.8
使用上一命令的输出,为 Red Hat Quay Container Security Operator 创建一个
Subscription
自定义资源,并将它保存为container-security-operator.yaml
。例如:apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: container-security-operator namespace: openshift-operators spec: channel: ${CHANNEL} 1 installPlanApproval: Automatic name: container-security-operator source: redhat-operators sourceNamespace: openshift-marketplace startingCSV: ${STARTING_CSV} 2
输入以下命令应用配置:
$ oc apply -f container-security-operator.yaml
输出示例
subscription.operators.coreos.com/container-security-operator created