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 1
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-compliance
istag
名を取得して、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 ago
ProfileBundle
を作成します。$ 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 1 contentFile: ssg-rhcos4-ds.xml 2
コンテンツイメージに使用されるベースイメージには、coreutils
が含まれる必要があります。
5.6.4. 関連情報
- コンプライアンス Operator はネットワークが制限された環境でサポートされています。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。