第15章 Pod の脆弱性のスキャン
Red Hat Quay Container Security Operator を使用すると、OpenShift Container Platform Web コンソールから、クラスターのアクティブな Pod で使用されるコンテナーイメージについての脆弱性スキャンの結果にアクセスできます。The Red Hat Quay Container Security Operator:
- すべての namespace または指定された namespace の Pod に関連付けられたコンテナーを監視します。
- イメージのレジストリーがイメージスキャンを実行している場合 (例: Quay.io、Clair スキャンを含む Red Hat Quay レジストリーなど)、脆弱性の情報についてコンテナーの出所となったコンテナーレジストリーをクエリーします。
-
Kubernetes API の
ImageManifestVuln
オブジェクトを使用して脆弱性を公開します。
ここでの手順を使用すると、Red Hat Quay Container Security Operator は openshift-operators
namespace にインストールされるため、OpenShift Container Platform クラスター上のすべての namespace で使用できます。
15.1. Red Hat Quay Container Security Operator のインストール
Red Hat Quay Container Security Operator は、OpenShift Container Platform Web コンソール Operator Hub から、または CLI を使用してインストールできます。
前提条件
-
oc
CLI がインストールされている。 - OpenShift Container Platform クラスターへの管理者権限がある。
- クラスターで実行される Red Hat Quay または Quay.io レジストリーのコンテナーがある。
手順
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 を選択します。Red Hat Quay Container Security Operator は、Installed Operators ページでしばらくすると表示されます。
オプション: カスタム証明書を 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