×

虽然合规操作员附带了可立即使用的配置文件,但必须根据组织的需求和要求对其进行修改。修改配置文件的过程称为定制

合规操作员提供TailoredProfile对象来帮助定制配置文件。

创建新的定制配置文件

您可以使用TailoredProfile对象从头开始编写定制配置文件。设置合适的titledescription,并将extends字段留空。指示合规操作员此自定义配置文件将生成哪种类型的扫描。

  • 节点扫描:扫描操作系统。

  • 平台扫描:扫描OpenShift容器平台配置。

步骤
  • TailoredProfile对象上设置以下注释

示例new-profile.yaml
apiVersion: compliance.openshift.io/v1alpha1
kind: TailoredProfile
metadata:
  name: new-profile
  annotations:
    compliance.openshift.io/product-type: Node (1)
spec:
  extends: ocp4-cis-node (2)
  description: My custom profile (3)
  title: Custom profile (4)
  enableRules:
    - name: ocp4-etcd-unique-ca
      rationale: We really need to enable this
  disableRules:
    - name: ocp4-file-groupowner-cni-conf
      rationale: This does not apply to the cluster
1 相应地设置NodePlatform
2 extends字段是可选的。
3 使用description字段描述新的TailoredProfile对象的功能。
4 使用title字段为您的TailoredProfile对象设置标题。

TailoredProfile对象的name字段中添加-node后缀类似于添加Node产品类型注释,并生成操作系统扫描。

使用定制配置文件扩展现有ProfileBundles

虽然TailoredProfile CR支持最常见的定制操作,但XCCDF标准允许在定制OpenSCAP配置文件方面具有更大的灵活性。此外,如果您的组织以前一直使用OpenScap,您可能拥有现有的XCCDF定制文件,并且可以重用它。

ComplianceSuite对象包含一个可选的TailoringConfigMap属性,您可以将其指向自定义定制文件。TailoringConfigMap属性的值是配置映射的名称,该名称必须包含一个名为tailoring.xml的键,并且此键的值是定制内容。

步骤
  1. 浏览Red Hat Enterprise Linux CoreOS (RHCOS) ProfileBundle的可用规则

    $ oc get rules.compliance -n openshift-compliance -l compliance.openshift.io/profile-bundle=rhcos4
  2. 浏览相同ProfileBundle中的可用变量

    $ oc get variables.compliance -n openshift-compliance -l compliance.openshift.io/profile-bundle=rhcos4
  3. 创建一个名为nist-moderate-modified的定制配置文件

    1. 选择要添加到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
      表1. spec变量的属性
      属性 描述

      extends

      TailoredProfile构建在其上的Profile对象的名称。

      title

      TailoredProfile的可读标题。

      disableRules

      名称和理由对的列表。每个名称都指代要禁用的规则对象的名称。理由值是描述为什么禁用该规则的可读文本。

      manualRules

      名称和理由对的列表。添加手动规则时,检查结果状态将始终为manual,并且不会生成补救措施。此属性是自动的,当设置为手动规则时,默认情况下没有值。

      enableRules

      名称和理由对的列表。每个名称都指代要启用的规则对象的名称。理由值是描述为什么启用该规则的可读文本。

      description

      描述TailoredProfile的可读文本。

      setValues

      名称、理由和值分组的列表。每个名称都指代值集的名称。理由是描述该集的可读文本。值是实际设置。

    2. 添加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
    3. 创建TailoredProfile对象

      $ oc create -n openshift-compliance -f new-profile-node.yaml (1)
      1 TailoredProfile对象在默认的openshift-compliance命名空间中创建。
      示例输出
      tailoredprofile.compliance.openshift.io/nist-moderate-modified created
  4. 定义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
  5. 创建ScanSettingBinding对象

    $ oc create -n openshift-compliance -f new-scansettingbinding.yaml
    示例输出
    scansettingbinding.compliance.openshift.io/nist-moderate-modified created