7.4. 切断された環境のための Clair の設定
Clair は、アップデータと呼ばれる一連のコンポーネントを利用して、様々な脆弱性データベースからのデータのフェッチとパースを処理します。これらのアップデータは、インターネットから直接脆弱性データを取得するようにデフォルトで設定されており、すぐに使用することができます。インターネットに直接アクセスできない切断された環境にいるお客様にとっては、これは問題となります。クレアは、ネットワークの分離を考慮した様々なタイプの更新ワークフローに対応することで、これらの環境をサポートします。clairctl
コマンドラインユーティリティーを使用すると、どのプロセスでも、オープンホスト経由でインターネットからアップデータを取得し、そのデータを隔離されたホストに安全に転送し、隔離されたホスト上のアップデータを Clair 本体にインポートすることが簡単にできます。
その手順は以下の通りです。
まず、Clair の設定で、自動化されたアップデータの実行が無効になっていることを確認してください。
config.yaml
matcher: disable_updaters: true
最新のアップデータをローカルのアーカイブに書き出します。このためには、バイナリーとして直接実行するか、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.5.7 --config /cfg/config.yaml export-updaters /updaters/updaters.gz
なお、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.5.7 --config /cfg/config.yaml import-updaters /updaters/updaters.gz