第7章 Clair セキュリティースキャン
Clair は、Red Hat Quay と共に使用できるマイクロサービスのセットで、一連の Linux オペレーティングシステムに関連付けられたコンテナーイメージの脆弱性スキャンを実行します。Clair のマイクロサービス設計は、エンタープライズ環境に合わせてコンポーネントを個別に拡張できるような、高いスケーラビリティーを持った設定で実行するのに適しています。
クレアは、以下の脆弱性データベースを利用して、お客様のイメージの問題点をスキャンします。
- アルパイン SecDB データベース
- AWS UpdateInfo
- Debian Oval データベース
- Oracle Oval データベース
- RHEL Oval データベース
- SUSE Oval データベース
- Ubuntu Oval データベース
- Pyup.io (python) データベース
Clair が異なるデータベースとのセキュリティーマッピングを行う方法については、ClairCore Severity Mapping を参照してください。
Red Hat Quay 3.4 のリリースに伴い、以前の Clair V2 (image quay.io/redhat/clair-jwt) が新しい Clair V4 (image registry.redhat.io/quay/clair-rhel8) に完全に置き換わりました。V4 の更新中に V2 をリードオンリーモードで動作させる方法は以下を参照してください。
7.1. Red Hat Quay OpenShift デプロイメントでの Clair の設定 リンクのコピーリンクがクリップボードにコピーされました!
7.1.1. Quay Operator によるデプロイ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift 上の新しい Red Hat Quay デプロイメントに Clair V4 をセットアップするには、Quay Operator を使用することを強くお勧めします。デフォルトでは、Quay Operator は、Red Hat Quay のデプロイとともに Clair のデプロイメントをインストールまたはアップグレードし、Clair のセキュリティースキャンを自動的に設定します。
7.1.2. 手動で Clair をデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Clair V2 を実行している既存の Red Hat Quay OpenShift デプロイメントに Clair V4 を設定するには、まず Red Hat Quay が少なくともバージョン 3.4.0 にアップグレードされていることを確認します。その後、以下の手順で Clair V4 を Clair V2 と一緒に手動で設定します。
現在のプロジェクトを、Red Hat Quay が実行されているプロジェクトの名前に設定します。以下に例を示します。
oc project quay-enterprise
$ oc project quay-enterprise
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Clair v4 用の Postgres デプロイファイル (例:
clairv4-postgres.yaml
) を以下のように作成します。clairv4-postgres.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のように、postgres データベースをデプロイします。
oc create -f ./clairv4-postgres.yaml
$ oc create -f ./clairv4-postgres.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Clair v4 で使用する Clair
config.yaml
ファイルを作成します。以下に例を示します。config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Clair の PSK (pre-shared key) を生成するには、ユーザーインターフェイスの Security Scanner セクションで
scanning
を有効にし、Generate PSK
をクリックします。
Clair の設定フォーマットの詳細は、アップストリームの Clair ドキュメント に記載されています。
Clair の
config.yaml
からシークレットを作成します。oc create secret generic clairv4-config-secret --from-file=./config.yaml
$ oc create secret generic clairv4-config-secret --from-file=./config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Clair v4 のデプロイメントファイル (例:
clair-combo.yaml
) を作成し、必要に応じて修正します。clair-combo.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のように Clair v4 の配置を作成します。
oc create -f ./clair-combo.yaml
$ oc create -f ./clair-combo.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Quay 配置の
config.yaml
ファイルを変更して、最後に以下のエントリーを追加します。FEATURE_SECURITY_NOTIFICATIONS: true FEATURE_SECURITY_SCANNER: true SECURITY_SCANNER_V4_ENDPOINT: http://clairv4
FEATURE_SECURITY_NOTIFICATIONS: true FEATURE_SECURITY_SCANNER: true SECURITY_SCANNER_V4_ENDPOINT: http://clairv4
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Clair v4 サービスのエンドポイントの特定
修正した
config.yaml
を、そのファイルを含むシークレット (たとえばquay-enterprise-config-secret
) に再デプロイします。oc delete secret quay-enterprise-config-secret oc create secret generic quay-enterprise-config-secret --from-file=./config.yaml
$ oc delete secret quay-enterprise-config-secret $ oc create secret generic quay-enterprise-config-secret --from-file=./config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
新しい
config.yaml
を有効にするには、Red Hat Quay の Pod を再起動する必要があります。quay-app
の Pod を削除するだけで、更新された設定の Pod がデプロイされます。
この時点で、名前空間のホワイトリストで特定された組織のイメージは、Clair v4 によってスキャンされます。