5.7. コンプライアンス Operator の管理

本セクションでは、コンプライアンスコンテンツの更新されたバージョンを使用する方法や、カスタム ProfileBundle オブジェクトを作成する方法など、セキュリティーコンテンツのライフサイクルについて説明します。

5.7.1. ProfileBundle CR の例

ProfileBundle オブジェクトには、contentImage が含まれるコンテナーイメージの URL と、コンプライアンスコンテンツが含まれるファイルの 2 つの情報が必要です。contentFile パラメーターはファイルシステムのルートに相対します。以下の例のように、ビルトインの rhcos4 ProfileBundle オブジェクトを定義できます。

apiVersion: compliance.openshift.io/v1alpha1
kind: ProfileBundle
metadata:
  creationTimestamp: "2022-10-19T12:06:30Z"
  finalizers:
  - profilebundle.finalizers.compliance.openshift.io
  generation: 1
  name: rhcos4
  namespace: openshift-compliance
  resourceVersion: "46741"
  uid: 22350850-af4a-4f5c-9a42-5e7b68b82d7d
spec:
  contentFile: ssg-rhcos4-ds.xml 1
  contentImage: registry.redhat.io/compliance/openshift-compliance-content-rhel8@sha256:900e... 2
status:
  conditions:
  - lastTransitionTime: "2022-10-19T12:07:51Z"
    message: Profile bundle successfully parsed
    reason: Valid
    status: "True"
    type: Ready
  dataStreamStatus: VALID
1
コンプライアンスコンテンツが含まれるファイルの場所。
2
コンテンツイメージの場所。
重要

コンテンツイメージに使用されるベースイメージには、coreutils が含まれる必要があります。

5.7.2. セキュリティーコンテンツの更新

セキュリティーコンテンツは、ProfileBundle オブジェクトが参照するコンテナーイメージとして含まれます。ProfileBundles や、ルールまたはプロファイルなどのバンドルから解析されたカスタムリソースへの更新を正確に追跡するには、タグの代わりにダイジェストを使用してコンプライアンスコンテンツを持つコンテナーイメージを識別します。

$ oc -n openshift-compliance get profilebundles rhcos4 -oyaml

出力例

apiVersion: compliance.openshift.io/v1alpha1
kind: ProfileBundle
metadata:
  creationTimestamp: "2022-10-19T12:06:30Z"
  finalizers:
  - profilebundle.finalizers.compliance.openshift.io
  generation: 1
  name: rhcos4
  namespace: openshift-compliance
  resourceVersion: "46741"
  uid: 22350850-af4a-4f5c-9a42-5e7b68b82d7d
spec:
  contentFile: ssg-rhcos4-ds.xml
  contentImage: registry.redhat.io/compliance/openshift-compliance-content-rhel8@sha256:900e... 1
status:
  conditions:
  - lastTransitionTime: "2022-10-19T12:07:51Z"
    message: Profile bundle successfully parsed
    reason: Valid
    status: "True"
    type: Ready
  dataStreamStatus: VALID

1
セキュリティーコンテナーイメージ。

それぞれの ProfileBundle はデプロイメントでサポートされます。コンプライアンス Operator がコンテナーイメージダイジェストが変更されたことを検知すると、デプロイメントは変更を反映し、コンテンツを再び解析するように更新されます。タグの代わりにダイジェストを使用すると、安定した予測可能なプロファイルセットを使用できます。

5.7.3. 関連情報