第8章 コンテナーセキュリティー Operator での Pod イメージのスキャン
Container Security Operator (CSO) を使用すると、既知の脆弱性について OpenShift(4.2 以降) および他の Kubernetes プラットフォームで実行されるアクティブな Pod に関連付けられたコンテナーイメージをスキャンできます。CSO:
- すべての namespace または指定された namespace の Pod に関連付けられたコンテナーを監視します。
- イメージのレジストリーがイメージスキャンをサポートしている場合 (例: Clair スキャンを含む Quay レジストリー)、脆弱性の情報についてコンテナーの出所となったコンテナーレジストリーをクエリーします。
- Kubernetes API の ImageManifestVuln オブジェクトを使用して脆弱性を公開します。
この手順を使用すると、CSO は marketplace-operators
namespace にインストールされ、OpenShift クラスターのすべての namespace で利用可能になります。
CSO を Kubernetes にインストールする手順を表示するには、Container Security OperatorHub.io ページから Install ボタンを選択します。
8.1. OpenShift での CSO の実行 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift で CSO の使用を開始するには、以下を実行します。
-
Operators
OperatorHub(Security を選択します) に移動し、利用可能な Container Security
Operator を表示します。 -
Container Security
Operator を選択し、Install
を選択して Create Operator Subscription ページに移動します。 -
設定 (デフォルトではすべての namespace および自動承認ストラテジー) をチェックし、
Subscribe
を選択します。Container Security
は、Installed Operators
画面に数分後に表示されます。 オプションで、カスタム証明書を CSO に追加できます。以下の例では、現在のディレクトリーに quay.crt という名前の証明書を作成します。その後、次のコマンドを実行して、CSO に証明書を追加します (新しい証明書を有効にするために、Operator Pod を再起動します)。
oc create secret generic container-security-operator-extra-certs --from-file=quay.crt -n openshift-operators
$ oc create secret generic container-security-operator-extra-certs --from-file=quay.crt -n openshift-operators
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Dashboard を開きます (Home
Dashboards)。Image Security へのリンクが status セクションに表示され、これまでに見つかった脆弱性の数の一覧が表示されます。以下の図のように、リンクを選択してセキュリティーの内訳を表示します。 この時点で、検出された脆弱性をフォローするために以下の 2 つのいずれかの操作を実行できます。
脆弱性へのリンクを選択します。コンテナーを取得したコンテナーレジストリー、Red Hat Quay または他のレジストリーにアクセスし、脆弱性についての情報を確認できます。以下の図は、Quay.io レジストリーから検出された脆弱性の例を示しています。
namespaces リンクを選択し、ImageManifestVuln 画面に移動します。ここでは、選択されたイメージの名前、およびイメージが実行されているすべての namespace を確認できます。以下の図は、特定の脆弱なイメージが 2 つの namespace で実行されていることを示しています。
この時点では、脆弱性のあるイメージや、イメージの脆弱性を解決するために必要なこと、およびイメージが実行されたすべての namespace を確認できます。以下を実行することができます。
- 脆弱性を修正する必要のあるイメージを実行しているユーザーに警告します。
- (イメージが置かれている Pod を起動したデプロイメントまたは他のオブジェクトを削除して) イメージの実行を停止します。
Pod を削除すると、Dashboard で脆弱性のある状態がリセットされるまで数分かかる場合があります。