5.6. コンプライアンス Operator の管理
本セクションでは、コンプライアンスコンテンツの更新されたバージョンを使用する方法や、カスタム ProfileBundle オブジェクトを作成する方法など、セキュリティーコンテンツのライフサイクルについて説明します。
5.6.1. セキュリティーコンテンツの更新 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーコンテンツは、ProfileBundle オブジェクトが参照するコンテナーイメージとして提供されます。ProfileBundles や、ルールまたはプロファイルなどのバンドルから解析されたカスタムリソースへの更新を正確に追跡するには、タグの代わりにダイジェストを使用してコンプライアンスコンテンツを持つコンテナーイメージを識別します。
出力例
apiVersion: compliance.openshift.io/v1alpha1
kind: ProfileBundle
metadata:
name: rhcos4
spec:
contentImage: quay.io/user/ocp4-openscap-content@sha256:a1749f5150b19a9560a5732fe48a89f07bffc79c0832aa8c49ee5504590ae687
contentFile: ssg-rhcos4-ds.xml
- 1
- セキュリティーコンテナーイメージ。
それぞれの ProfileBundle はデプロイメントでサポートされます。コンプライアンス Operator がコンテナーイメージダイジェストが変更されたことを検知すると、デプロイメントは変更を反映し、コンテンツを再び解析するように更新されます。タグの代わりにダイジェストを使用すると、安定した予測可能なプロファイルセットを使用できます。
5.6.2. イメージストリームの使用 リンクのコピーリンクがクリップボードにコピーされました!
contentImage 参照は有効な ImageStreamTag を参照し、コンプライアンス Operator はコンテンツを自動的に最新の状態に維持します。
さらに、ProfileBundle オブジェクトは ImageStream 参照を受け入れます。
イメージストリームのサンプル
$ oc get is -n openshift-compliance
出力例
NAME IMAGE REPOSITORY TAGS UPDATED
openscap-ocp4-ds image-registry.openshift-image-registry.svc:5000/openshift-compliance/openscap-ocp4-ds latest 32 seconds ago
手順
ルックアップポリシーが local に設定されていることを確認します。
$ oc patch is openscap-ocp4-ds \ -p '{"spec":{"lookupPolicy":{"local":true}}}' \ --type=merge imagestream.image.openshift.io/openscap-ocp4-ds patched -n openshift-complianceistag名を取得して、ProfileBundleのImageStreamTagの名前を使用します。$ oc get istag -n openshift-compliance出力例
NAME IMAGE REFERENCE UPDATED openscap-ocp4-ds:latest image-registry.openshift-image-registry.svc:5000/openshift-compliance/openscap-ocp4-ds@sha256:46d7ca9b7055fe56ade818ec3e62882cfcc2d27b9bf0d1cbae9f4b6df2710c96 3 minutes agoProfileBundleを作成します。$ cat << EOF | oc create -f - apiVersion: compliance.openshift.io/v1alpha1 kind: ProfileBundle metadata: name: mybundle spec: contentImage: openscap-ocp4-ds:latest contentFile: ssg-rhcos4-ds.xml EOF
この ProfileBundle はイメージを追跡し、これに適用される変更 (異なるハッシュを参照するようにタグを更新するなど) は ProfileBundle にただちに反映されます。
5.6.3. ProfileBundle CR の例 リンクのコピーリンクがクリップボードにコピーされました!
バンドルオブジェクトには、contentImage が含まれるコンテナーイメージの URL とコンプライアンスコンテンツが含まれるファイルの 2 つの情報が必要です。contentFile パラメーターはファイルシステムのルートに相対します。ビルトインの rhcos4 ProfileBundle オブジェクトは以下の例で定義できます。
apiVersion: compliance.openshift.io/v1alpha1
kind: ProfileBundle
metadata:
name: rhcos4
spec:
contentImage: quay.io/complianceascode/ocp4:latest
contentFile: ssg-rhcos4-ds.xml
コンテンツイメージに使用されるベースイメージには、coreutils が含まれる必要があります。