7.7. 切断された環境のための Clair の設定
Clair は、アップデータと呼ばれる一連のコンポーネントを利用して、様々な脆弱性データベースからのデータのフェッチとパースを処理します。これらのアップデータは、インターネットから直接脆弱性データを取得するようにデフォルトで設定されており、すぐに使用することができます。インターネットに直接アクセスできない切断された環境にいるお客様にとっては、これは問題となります。クレアは、ネットワークの分離を考慮した様々なタイプの更新ワークフローに対応することで、これらの環境をサポートします。clairctl
コマンドラインユーティリティーを使用すると、どのプロセスでも、オープンホスト経由でインターネットからアップデータを取得し、そのデータを隔離されたホストに安全に転送し、隔離されたホスト上のアップデータを Clair 本体にインポートすることが簡単にできます。
その手順は以下の通りです。
まず、Clair の設定で、自動化されたアップデータの実行が無効になっていることを確認してください。
config.yaml
matcher: disable_updaters: true
matcher: disable_updaters: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最新のアップデータをローカルのアーカイブに書き出します。このためには、バイナリーとして直接実行するか、Clair コンテナーイメージを介して実行できる
clairctl
ツールが必要です。Clair の設定が/etc/clairv4/config/config.yaml
にあり、コンテナーイメージ経由で実行できるとします。podman run -it --rm -v /etc/clairv4/config:/cfg:Z -v /path/to/output/directory:/updaters:Z --entrypoint /bin/clairctl registry.redhat.io/quay/clair-rhel8:v3.7.13 --config /cfg/config.yaml export-updaters /updaters/updaters.gz
$ podman run -it --rm -v /etc/clairv4/config:/cfg:Z -v /path/to/output/directory:/updaters:Z --entrypoint /bin/clairctl registry.redhat.io/quay/clair-rhel8:v3.7.13 --config /cfg/config.yaml export-updaters /updaters/updaters.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow なお、Clair の設定を細かく参照する必要があります。これにより、
/etc/clairv4/updaters/updaters.gz
にアップデーターのアーカイブが作成されます。ソースデータベースからエラーなしにアーカイブが作成されたことを確認する場合は、--strict
フラグをclairctl
に指定できます。アーカイブファイルは、Clair を起動している切断されたホストからアクセス可能なボリュームにコピーしてください。切断されたホストから、今度は同じ手順で Clair にアーカイブをインポートします。podman run -it --rm -v /etc/clairv4/config:/cfg:Z -v /path/to/output/directory:/updaters:Z --entrypoint /bin/clairctl registry.redhat.io/quay/clair-rhel8:v3.7.13 --config /cfg/config.yaml import-updaters /updaters/updaters.gz
$ podman run -it --rm -v /etc/clairv4/config:/cfg:Z -v /path/to/output/directory:/updaters:Z --entrypoint /bin/clairctl registry.redhat.io/quay/clair-rhel8:v3.7.13 --config /cfg/config.yaml import-updaters /updaters/updaters.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.7.1. リポジトリーの Common Product Enumeration (CPE) 情報へのマッピング リンクのコピーリンクがクリップボードにコピーされました!
Clair の RHEL スキャナーは、一致する結果を生成するために、Common Product Enumeration (CPE) ファイルに依存して RPM パッケージを対応するセキュリティーデータに適切にマッピングします。スキャナーが RPM を適切に処理するには、このファイルが存在するか、ファイルへのアクセスが許可されている必要があります。ファイルが存在しない場合、コンテナーイメージにインストールされている RPM はスキャンされません。
Red Hat は、JSON マッピングファイルを https://www.redhat.com/security/data/metrics/repository-to-cpe.json で公開しています。
非接続 Clair のデータベースに CVE 情報をアップロードする以外に、マッピングファイルをローカルで利用可能にする必要もあります。
- スタンドアロン Quay および Clair デプロイメントの場合は、マッピングファイルを Clair Pod に読み込む必要があります。
-
Operator ベースのデプロイメントの場合は、Clair コンポーネントを
unmanaged
に設定する必要があります。次に、Clair を手動でデプロイし、マッピングファイルのローカルコピーを読み込むように設定します。
Clair 設定の repo2cpe_mapping_file
フィールドを使用してファイルを指定します。
indexer: scanner: repo: rhel-repository-scanner: repo2cpe_mapping_file: /path/to/repository-to-cpe.json
indexer:
scanner:
repo:
rhel-repository-scanner:
repo2cpe_mapping_file: /path/to/repository-to-cpe.json
詳細は、Red Hat の How to accurately match OVAL security data to installed RPMs を参照してください。