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 35.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对象的名称。titleTailoredProfile的人类可读标题.disableRules名称和理由对列表。每个名称引用要禁用的规则对象的名称。合理值是人类可读的文本,描述禁用规则的原因。
manualRules名称和理由对列表。添加手动规则时,检查结果状态始终是
manual,且不会生成补救。此属性是自动的,在默认情况下,设置手动规则时没有值。enableRules名称和理由对列表。每个名称引用要启用的规则对象的名称。合理值是人类可读的文本,描述启用规则的原因。
description描述
TailoredProfile的人类可读文本.setValues名称、理由和值分组列表。每个名称都引用值集的名称。理由是人类可读的文本描述该集合。值是实际设置。
添加
tailoredProfile.spec.manualRules属性:示例
tailoredProfile.spec.manualRules.yamlapiVersion: 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