第8章 非接続環境での Clair
現在、非接続環境での Clair のデプロイは、IBM Power および IBM Z ではサポートされていません。
Clair は、updater と呼ばれる一連のコンポーネントを使用して、さまざまな脆弱性データベースからのデータのフェッチと解析を処理します。Updater はデフォルトで、脆弱性データをインターネットから直接プルし、すぐに使用できるように設定されています。ただし、ユーザーによっては、Red Hat Quay を非接続環境、またはインターネットに直接アクセスできない環境で実行する必要がある場合があります。Clair は、ネットワーク分離を考慮したさまざまな種類の更新ワークフローを使用することで、非接続環境をサポートします。これは clairctl コマンドラインインターフェイスツールを使用して機能します。このツールは、オープンホストを使用してインターネットから updater データを取得し、そのデータを隔離されたホストにセキュアに転送してから、隔離されたホスト上の updater データを Clair にインポートします。
非接続環境で Clair をデプロイするには、このガイドを使用してください。
現在、Clair エンリッチメントデータは CVSS データです。エンリッチメントデータは現在、オフライン環境ではサポートされていません。
Clair アップデーターの詳細は、「Clair アップデーター」を参照してください。
8.1. 非接続の OpenShift Container Platform クラスターで Clair をセットアップする リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、切断された OpenShift Container Platform クラスターに OpenShift Container Platform でプロビジョニングされた Clair Pod をセットアップします。
8.1.1. OpenShift Container Platform デプロイメント用の clairctl コマンドラインユーティリティーツールのインストール リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、OpenShift Container Platform デプロイメント用の clairctl CLI ツールをインストールします。
手順
以下のコマンドを入力して、Clair デプロイメント用の
clairctlプログラムを OpenShift Container Platform クラスターにインストールします。$ oc -n quay-enterprise exec example-registry-clair-app-64dd48f866-6ptgw -- cat /usr/bin/clairctl > clairctl注記非公式ですが、
clairctlツールをダウンロードできます。clairctlファイルの権限を設定して、ユーザーが実行できるようにします。次に例を示します。$ chmod u+x ./clairctl
8.1.2. OpenShift Container Platform での Clair デプロイメントの Clair 設定シークレットの取得とデコード リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、OpenShift Container Platform 上の OpenShift Container Platform でプロビジョニングされた Clair インスタンスの設定シークレットを取得してデコードします。
前提条件
-
clairctlコマンドラインユーティリティーツールをインストールしている。
手順
次のコマンドを入力して、設定シークレットを取得してデコードし、それを Clair 設定 YAML に保存します。
$ oc get secret -n quay-enterprise example-registry-clair-config-secret -o "jsonpath={$.data['config\.yaml']}" | base64 -d > clair-config.yamldisable_updatersおよびairgapパラメーターがtrueに設定されるように、clair-config.yamlファイルを更新します。次に例を示します。--- indexer: airgap: true --- matcher: disable_updaters: true ---
8.1.3. 接続された Clair インスタンスからアップデータバンドルをエクスポートする リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、インターネットにアクセスできる Clair インスタンスから更新プログラムバンドルをエクスポートします。
前提条件
-
clairctlコマンドラインユーティリティーツールをインストールしている。 -
Clair 設定シークレットを取得してデコードし、Clair の
config.yamlファイルに保存している。 -
Clair の
config.yamlファイルで、disable_updatersおよびairgapパラメーターがtrueに設定されている。
手順
インターネットにアクセスできる Clair インスタンスから、設定ファイルで
clairctlCLI ツールを使用して、アップデーターバンドルをエクスポートします。以下に例を示します。$ ./clairctl --config ./config.yaml export-updaters updates.gz
8.1.4. 非接続の OpenShift Container Platform クラスター内の Clair データベースへのアクセスの設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、非接続の OpenShift Container Platform クラスター内の Clair データベースへのアクセスを設定します。
前提条件
-
clairctlコマンドラインユーティリティーツールをインストールしている。 -
Clair 設定シークレットを取得してデコードし、Clair の
config.yamlファイルに保存している。 -
Clair の
config.yamlファイルで、disable_updatersおよびairgapパラメーターがtrueに設定されている。 - インターネットにアクセスできる Clair インスタンスからアップデーターバンドルをエクスポートしている。
手順
CLI ツール
ocを使用して、Clair データベースサービスを特定します。次に例を示します。$ oc get svc -n quay-enterprise出力例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE example-registry-clair-app ClusterIP 172.30.224.93 <none> 80/TCP,8089/TCP 4d21h example-registry-clair-postgres ClusterIP 172.30.246.88 <none> 5432/TCP 4d21h ...Clair データベースポートを転送して、ローカルマシンからアクセスできるようにします。以下に例を示します。
$ oc port-forward -n quay-enterprise service/example-registry-clair-postgres 5432:5432Clair の
config.yamlファイルを更新します。次に例を示します。indexer: connstring: host=localhost port=5432 dbname=postgres user=postgres password=postgres sslmode=disable1 scanlock_retry: 10 layer_scan_concurrency: 5 migrations: true scanner: repo: rhel-repository-scanner:2 repo2cpe_mapping_file: /data/cpe-map.json package: rhel_containerscanner:3 name2repos_mapping_file: /data/repo-map.json
8.1.5. 非接続の OpenShift Container Platform クラスターへのアップデーターバンドルのインポート リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、アップデーターバンドルを非接続の OpenShift Container Platform クラスターにインポートします。
前提条件
-
clairctlコマンドラインユーティリティーツールをインストールしている。 -
Clair 設定シークレットを取得してデコードし、Clair の
config.yamlファイルに保存している。 -
Clair の
config.yamlファイルで、disable_updatersおよびairgapパラメーターがtrueに設定されている。 - インターネットにアクセスできる Clair インスタンスからアップデーターバンドルをエクスポートしている。
- アップデーターバンドルを非接続環境に転送している。
手順
CLI ツール
clairctlを使用して、アップデーターバンドルを OpenShift Container Platform によってデプロイされた Clair データベースにインポートします。以下に例を示します。$ ./clairctl --config ./clair-config.yaml import-updaters updates.gz