5.8. 定制 Compliance Operator
虽然 Compliance Operator 附带随时可用的配置集,但必须对其进行修改才能满足机构的需求和要求。修改配置集的过程称为定制。
Compliance Operator 提供了 TailoredProfile
对象来帮助定制配置集。
5.8.1. 创建新的定制配置集
您可以使用 TailoredProfile
对象从头开始编写定制的配置集。设置适当的 title
和 description
,并将 extends
字段留空。向 Compliance Operator 指明此自定义配置集生成的扫描类型:
- 节点扫描:扫描操作系统。
- 平台扫描 :扫描 OpenShift 配置。
流程
在 TailoredProfile
对象中设置以下注解:
+ .Example new-profile.yaml
apiVersion: compliance.openshift.io/v1alpha1 kind: TailoredProfile metadata: name: new-profile annotations: compliance.openshift.io/product-type: Node 1 spec: extends: description: My custom profile 2 title: Custom profile 3
5.8.2. 使用定制配置集扩展现有 ProfileBundle
尽管 TailoredProfile
CR 支持最常见的定制操作,但 XCCDF 标准在定制 OpenSCAP 配置集方面具有更大的灵活性。此外,如果您的机构之前一直使用 OpenScap,则您可能有一个现有的 XCCDF 定制文件可重复使用。
ComplianceSuite
对象包含可指向自定义定制文件的可选 TailoringConfigMap
属性。TailoringConfigMap
属性的值是一个配置映射的名称,它必须包含名为 tailoring.xml
的键,这个键的值是定制内容。
流程
浏览 Red Hat Enterprise Linux CoreOS (RHCOS)
ProfileBundle
的可用规则:$ oc get rules.compliance -n openshift-compliance -l compliance.openshift.io/profile-bundle=rhcos4
浏览同一
ProfileBundle
中的可用变量:$ oc get variables.compliance -n openshift-compliance -l compliance.openshift.io/profile-bundle=rhcos4
创建名为
nist-moderate-modified
的定制配置集:选择您要添加到
nist-moderate-modified
定制配置集中的规则。这个示例通过禁用两个规则并更改一个值来扩展rhcos4-moderate
配置集。使用rationale
值描述进行这些更改的原因:new-profile-node.yaml
示例apiVersion: compliance.openshift.io/v1alpha1 kind: TailoredProfile metadata: name: nist-moderate-modified spec: extends: rhcos4-moderate description: NIST moderate profile title: My modified NIST moderate profile disableRules: - name: rhcos4-file-permissions-var-log-messages rationale: The file contains logs of error messages in the system - name: rhcos4-account-disable-post-pw-expiration rationale: No need to check this as it comes from the IdP setValues: - name: rhcos4-var-selinux-state rationale: Organizational requirements value: permissive
表 5.2. spec 变量的属性 属性 描述 extends
构建此
TailoredProfile
的Profile
对象的名称。title
TailoredProfile
的人类可读标题.disableRules
名称和理由对列表。每个名称引用要禁用的规则对象的名称。合理值是人类可读的文本,描述禁用规则的原因。
manualRules
名称和理由对列表。添加手动规则时,检查结果状态始终是
manual
,且不会生成补救。此属性是自动的,在默认情况下,设置手动规则时没有值。enableRules
名称和理由对列表。每个名称引用要启用的规则对象的名称。合理值是人类可读的文本,描述启用规则的原因。
description
描述
TailoredProfile
的人类可读文本.setValues
名称、理由和值分组列表。每个名称都引用值集的名称。理由是人类可读的文本描述该集合。值是实际设置。
添加
tailoredProfile.spec.manualRules
属性:示例
tailoredProfile.spec.manualRules.yaml
apiVersion: compliance.openshift.io/v1alpha1 kind: TailoredProfile metadata: name: ocp4-manual-scc-check spec: extends: ocp4-cis description: This profile extends ocp4-cis by forcing the SCC check to always return MANUAL title: OCP4 CIS profile with manual SCC check manualRules: - name: ocp4-scc-limit-container-allowed-capabilities rationale: We use third party software that installs its own SCC with extra privileges
创建
TailoredProfile
对象:$ oc create -n openshift-compliance -f new-profile-node.yaml 1
- 1
TailoredProfile
对象在默认的openshift-compliance
命名空间中创建。
输出示例
tailoredprofile.compliance.openshift.io/nist-moderate-modified created
定义
ScanSettingBinding
对象,将新的nist-moderate-modified
定制配置集绑定到默认的ScanSetting
对象。new-scansettingbinding.yaml
示例apiVersion: compliance.openshift.io/v1alpha1 kind: ScanSettingBinding metadata: name: nist-moderate-modified profiles: - apiGroup: compliance.openshift.io/v1alpha1 kind: Profile name: ocp4-moderate - apiGroup: compliance.openshift.io/v1alpha1 kind: TailoredProfile name: nist-moderate-modified settingsRef: apiGroup: compliance.openshift.io/v1alpha1 kind: ScanSetting name: default
创建
ScanSettingBinding
对象:$ oc create -n openshift-compliance -f new-scansettingbinding.yaml
输出示例
scansettingbinding.compliance.openshift.io/nist-moderate-modified created