第9章 コンテナーセキュリティー Operator での Pod イメージのスキャン
Container Security Operator (CSO) は、OpenShift Container Platform およびその他の Kubernetes プラットフォームで利用可能な Clair セキュリティースキャナーのアドオンです。CSO を使用すると、ユーザーはアクティブな Pod に関連付けられているコンテナーイメージをスキャンして、既知の脆弱性を見つけることができます。
CSO は、Red Hat Quay と Clair なしでは機能しません。
Container Security Operator (CSO) には、次の機能が含まれています。
- 指定された namespace またはすべての namespace の Pod に関連付けられたコンテナーを監視します。
- コンテナーのソースであるコンテナーレジストリーにクエリーを実行して、脆弱性情報を取得します (イメージのレジストリーが、Clair スキャンを使用する Red Hat Quay レジストリーなどのイメージスキャンをサポートしている場合)。
-
Kubernetes API の
ImageManifestVuln
オブジェクトを使用して脆弱性を公開します。
CSO を Kubernetes にインストールする手順を見るには、Container Security OperatorHub.io ページから Install ボタンを選択します。
9.1. OpenShift Container Platform での Container Security Operator のダウンロードおよび実行
Container Security Operator (CSO) をダウンロードするには、次の手順を使用します。
次の手順では、CSO を marketplace-operators
namespace にインストールします。これにより、OpenShift Container Platform クラスターのすべての namespace で CSO を使用できるようになります。
手順
-
OpenShift Container Platform コンソールページで、Operators
OperatorHub を選択し、Container Security Operator を検索します。 - Container Security Operator を選択し、Install を選択して Create Operator Subscription ページに移動します。
- 設定 (デフォルトでは、すべての名前空間と自動承認戦略) を確認し、Subcription を選択します。しばらくすると、Installed Operators 画面に Container Security が表示されます。
オプション: カスタム証明書を CSO に追加できます。以下の例では、現在のディレクトリーに
quay.crt
という名前の証明書を作成します。次に、次のコマンドを実行して証明書を CSO に追加します。$ oc create secret generic container-security-operator-extra-certs --from-file=quay.crt -n openshift-operators
注記新しい証明書を有効にするには、Operator Pod を再起動する必要があります。
Home
Dashboard に移動します。Image Security へのリンクが status セクションに表示され、これまでに見つかった脆弱性の数の一覧が表示されます。次の図に示すように、リンクを選択するとセキュリティーの内訳が表示されます。 重要Container Security Operator は現在、Red Hat セキュリティーアドバイザリーの壊れたリンクを提供しています。たとえば、リンク
https://access.redhat.com/errata/RHSA-2023:1842%20https://access.redhat.com/security/cve/CVE-2023-23916
が提供される場合があります。URL 内の%20
はスペース文字を表しますが、現時点では 2 つの URL が 1 つの不完全な URL に結合されます (例:https://access.redhat.com/errata/RHSA-2023:1842
とhttps://access.redhat.com/security/cve/CVE-2023-23916
。一時的な回避策として、各 URL をブラウザーにコピーして、適切なページに移動できます。これは既知の問題であり、Red Hat Quay の今後のバージョンで修正される予定です。この時点で、検出された脆弱性をフォローするために以下の 2 つのいずれかの操作を実行できます。
脆弱性へのリンクを選択します。コンテナーのレジストリー、Red Hat Quay、またはコンテナーを取得したその他のレジストリーに移動し、脆弱性に関する情報が表示されます。以下の図は、Quay.io レジストリーから検出された脆弱性の例を示しています。
namespaces リンクを選択し、ImageManifestVuln 画面に移動します。ここでは、選択されたイメージの名前、およびイメージが実行されているすべての namespace を確認できます。以下の図は、特定の脆弱なイメージが 2 つの namespace で実行されていることを示しています。
この手順を実行すると、どのイメージに脆弱性があるか、それらの脆弱性を修正するために何をしなければならないか、およびイメージが実行されたすべての名前空間がわかります。これを知っていると、次のアクションを実行できます。
- イメージを実行しているユーザーに、脆弱性を修正する必要があることを警告します。
デプロイメント、またはイメージが含まれる Pod を開始したオブジェクトを削除して、イメージの実行を停止します。
注記Pod を削除した場合、ダッシュボードで脆弱性がリセットされるまでに数分かかる場合があります。