5.6. Compliance Operator 검사 관리
5.6.1. 지원되는 규정 준수 프로필 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator (CO) 설치의 일부로 사용할 수 있는 여러 프로필이 있습니다. 다음 프로필을 사용하여 클러스터의 격차를 평가할 수는 있지만 사용만으로는 특정 프로필의 준수를 유추하거나 보장하지 않으며 감사자가 아닙니다.
이러한 다양한 표준을 준수하거나 인증하려면 QSA(Qualified Security Assessor), 공동 인증 기관(JAB) 또는 기타 업계가 귀하의 환경을 평가할 수 있는 규제 당국을 고용해야 합니다. 표준을 준수하기 위해 권한 있는 감사자와 협력해야 합니다.
모든 Red Hat 제품의 규정 준수 지원에 대한 자세한 내용은 제품 규정 준수 를 참조하십시오.
Compliance Operator는 OpenShift Dedicated 및 Azure Red Hat OpenShift와 같은 일부 관리형 플랫폼에서 잘못된 결과를 보고할 수 있습니다. 자세한 내용은 Red Hat 지식베이스 솔루션 #6983418 을 참조하십시오.
5.6.1.1. 규정 준수 프로필 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator는 업계 표준 벤치마크를 충족하기 위한 프로필을 제공합니다.
다음 표에는 Compliance Operator에서 사용 가능한 최신 프로필이 반영되어 있습니다.
5.6.1.1.1. CIS 규정 준수 프로필 링크 복사링크가 클립보드에 복사되었습니다!
프로필 | 프로필 제목 | 애플리케이션 | 업계 컴플라이언스 벤치마크 | 지원되는 아키텍처 | 지원되는 플랫폼 |
---|---|---|---|---|---|
ocp4-cis [1] | CIS Red Hat OpenShift Container Platform Benchmark v1.7.0 | 플랫폼 | CIS 벤치마크 ™ [1] |
| |
ocp4-cis-1-4 [3] | CIS Red Hat OpenShift Container Platform Benchmark v1.4.0 | 플랫폼 | CIS 벤치마크 ™ [4] |
| |
ocp4-cis-1-5 | CIS Red Hat OpenShift Container Platform Benchmark v1.5.0 | 플랫폼 | CIS 벤치마크 ™ [4] |
| |
ocp4-cis-1-7 | CIS Red Hat OpenShift Container Platform Benchmark v1.7.0 | 플랫폼 | CIS 벤치마크 ™ [4] |
| |
ocp4-cis-node [1] | CIS Red Hat OpenShift Container Platform Benchmark v1.7.0 | 노드 [2] | CIS 벤치마크 ™ [4] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
ocp4-cis-node-1-4 [3] | CIS Red Hat OpenShift Container Platform Benchmark v1.4.0 | 노드 [2] | CIS 벤치마크 ™ [4] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
ocp4-cis-node-1-5 | CIS Red Hat OpenShift Container Platform Benchmark v1.5.0 | 노드 [2] | CIS 벤치마크 ™ [4] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
ocp4-cis-node-1-7 | CIS Red Hat OpenShift Container Platform Benchmark v1.7.0 | 노드 [2] | CIS 벤치마크 ™ [4] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
-
ocp4-cis
및ocp4-cis-node
프로필은 Compliance Operator에서 사용 가능하게 되면 CIS 벤치마크의 최신 버전을 유지합니다. CIS v1.4.0과 같은 특정 버전을 준수하려면ocp4-cis-1-4
및ocp4-cis-node-1-4
프로필을 사용합니다. - 노드 프로필은 관련 플랫폼 프로필과 함께 사용해야 합니다. 자세한 내용은 Compliance Operator 프로필 유형을 참조하십시오.
- CIS v1.4.0은 CIS v1.5.0에 의해 중첩되어 있습니다. 최신 프로필을 환경에 적용하는 것이 좋습니다.
- CIS OpenShift Container Platform v4 벤치마크를 찾으려면 CIS 벤치마크로 이동하여 최신 CIS 벤치마크 다운로드를 클릭합니다. 여기에서 등록하여 벤치마크를 다운로드할 수 있습니다.
5.6.1.1.2. Cryostat 프로파일 지원 링크 복사링크가 클립보드에 복사되었습니다!
독일의 연방 정보 보안국(Deedesamt Für Sicherheit in der Informationstechnik) 준수는 에너지, 의료, 통신과 같은 중요한 인프라 부문에 대한 독일의 IT 보안법(IT-Sicherheitsgesetz)에 따라 법적 요건을 규정하고 있습니다. Compliance Operator 1.7.0이 릴리스되면서 Cryostat 규정 준수 검사에서 Block SYS.1.6 Containerization 및 Block APP.4.4 Kubernetes를 확인할 수 있습니다. 자세한 내용은 Cryostat Quick Check 를 참조하십시오.
5.6.1.1.3. 필수 Eight 컴플라이언스 프로필 링크 복사링크가 클립보드에 복사되었습니다!
프로필 | 프로필 제목 | 애플리케이션 | 업계 컴플라이언스 벤치마크 | 지원되는 아키텍처 | 지원되는 플랫폼 |
---|---|---|---|---|---|
ocp4-e8 | Australian Cyber Security Centre (ACSC) Essential Eight | 플랫폼 |
| ||
rhcos4-e8 | Australian Cyber Security Centre (ACSC) Essential Eight | 노드 |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
5.6.1.1.4. FedRAMP High Compliance Profile 링크 복사링크가 클립보드에 복사되었습니다!
service-sshd-disabled
규칙을 사용하는 rhcos4-stig
와 같은 프로필에 자동 수정 사항을 적용하면 sshd
서비스가 자동으로 비활성화됩니다. 이 경우 컨트롤 플레인 노드 및 컴퓨팅 노드에 대한 SSH 액세스를 차단합니다. SSH 액세스를 계속 활성화하려면 TailoredProfile
오브젝트를 생성하고 disableRules
매개변수에 대해 rhcos4-service-sshd-disabled
규칙 값을 설정합니다.
프로필 | 프로필 제목 | 애플리케이션 | 업계 컴플라이언스 벤치마크 | 지원되는 아키텍처 | 지원되는 플랫폼 |
---|---|---|---|---|---|
ocp4-high [1] | NIST 800-53 High-Impact Baseline for Red Hat OpenShift - 플랫폼 수준 | 플랫폼 |
| ||
ocp4-high-node [1] | NIST 800-53 High-Impact Baseline for Red Hat OpenShift - 노드 수준 | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
ocp4-high-node-rev-4 | NIST 800-53 High-Impact Baseline for Red Hat OpenShift - 노드 수준 | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
ocp4-high-rev-4 | NIST 800-53 High-Impact Baseline for Red Hat OpenShift - 플랫폼 수준 | 플랫폼 |
| ||
rhcos4-high [1] | NIST 800-53 High-Impact Baseline for Red Hat Enterprise Linux CoreOS | 노드 |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
rhcos4-high-rev-4 | NIST 800-53 High-Impact Baseline for Red Hat Enterprise Linux CoreOS | 노드 |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
-
ocp4-high
,ocp4-high-node
및rhcos4-high
프로필은 Compliance Operator에서 사용할 수 있게 되면 FedRAMP High 표준의 최신 버전을 유지합니다. FedRAMP high R4와 같은 특정 버전을 준수하려면ocp4-high-rev-4
및ocp4-high-node-rev-4
프로필을 사용하십시오. - 노드 프로필은 관련 플랫폼 프로필과 함께 사용해야 합니다. 자세한 내용은 Compliance Operator 프로필 유형을 참조하십시오.
5.6.1.1.5. FedRAMP Moderate 규정 준수 프로필 링크 복사링크가 클립보드에 복사되었습니다!
프로필 | 프로필 제목 | 애플리케이션 | 업계 컴플라이언스 벤치마크 | 지원되는 아키텍처 | 지원되는 플랫폼 |
---|---|---|---|---|---|
ocp4-moderate [1] | NIST 800-53 Moderate-Impact Baseline for Red Hat OpenShift - 플랫폼 수준 | 플랫폼 |
| ||
ocp4-moderate-node [1] | NIST 800-53 Moderate-Impact Baseline for Red Hat OpenShift - 노드 수준 | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
ocp4-moderate-node-rev-4 | NIST 800-53 Moderate-Impact Baseline for Red Hat OpenShift - 노드 수준 | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
ocp4-moderate-rev-4 | NIST 800-53 Moderate-Impact Baseline for Red Hat OpenShift - 플랫폼 수준 | 플랫폼 |
| ||
rhcos4-moderate [1] | NIST 800-53 Moderate-Impact Baseline for Red Hat Enterprise Linux CoreOS | 노드 |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
rhcos4-moderate-rev-4 | NIST 800-53 Moderate-Impact Baseline for Red Hat Enterprise Linux CoreOS | 노드 |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
-
ocp4-moderate
,ocp4-moderate-node
및rhcos4-moderate
프로필은 Compliance Operator에서 사용 가능하게 되면 FedRAMP Moderate 표준의 최신 버전을 유지합니다. FedRAMP Moderate R4와 같은 특정 버전을 준수하려면ocp4-moderate-rev-4
및ocp4-moderate-node-rev-4
프로필을 사용하십시오. - 노드 프로필은 관련 플랫폼 프로필과 함께 사용해야 합니다. 자세한 내용은 Compliance Operator 프로필 유형을 참조하십시오.
5.6.1.1.6. NERC-CIP 준수 프로필 링크 복사링크가 클립보드에 복사되었습니다!
프로필 | 프로필 제목 | 애플리케이션 | 업계 컴플라이언스 벤치마크 | 지원되는 아키텍처 | 지원되는 플랫폼 |
---|---|---|---|---|---|
ocp4-nerc-cip | OpenShift Container Platform - 플랫폼 수준에 대한 North American Electric Reliability Corporation (NERC) Critical Infrastructure Protection (CIP) insecure standard profile for the OpenShift Container Platform - Platform level | 플랫폼 |
| ||
ocp4-nerc-cip-node | OpenShift Container Platform - 노드 수준에 대한 North American Electric Reliability Corporation (NERC) Critical Infrastructure Protection (CIP) insecure standard profile for the OpenShift Container Platform | 노드 [1] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
rhcos4-nerc-cip | Red Hat Enterprise Linux CoreOS에 대한 North American Electric Reliability Corporation (NERC) Critical Infrastructure Protection (CIP) securing standards profile for Red Hat Enterprise Linux CoreOS | 노드 |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
- 노드 프로필은 관련 플랫폼 프로필과 함께 사용해야 합니다. 자세한 내용은 Compliance Operator 프로필 유형을 참조하십시오.
5.6.1.1.7. PCI-DSS 규정 준수 프로필 링크 복사링크가 클립보드에 복사되었습니다!
프로필 | 프로필 제목 | 애플리케이션 | 업계 컴플라이언스 벤치마크 | 지원되는 아키텍처 | 지원되는 플랫폼 |
---|---|---|---|---|---|
ocp4-pci-dss [1] | OpenShift Container Platform 4의 PCI-DSS v4 Control Baseline | 플랫폼 |
| ||
ocp4-pci-dss-3-2 [3] | PCI-DSS v3.2.1 Control Baseline for OpenShift Container Platform 4 | 플랫폼 |
| ||
ocp4-pci-dss-4-0 | OpenShift Container Platform 4의 PCI-DSS v4 Control Baseline | 플랫폼 |
| ||
ocp4-pci-dss-node [1] | OpenShift Container Platform 4의 PCI-DSS v4 Control Baseline | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
ocp4-pci-dss-node-3-2 [3] | PCI-DSS v3.2.1 Control Baseline for OpenShift Container Platform 4 | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
ocp4-pci-dss-node-4-0 | OpenShift Container Platform 4의 PCI-DSS v4 Control Baseline | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
-
ocp4-pci-dss
및ocp4-pci-dss-node
프로필은 Compliance Operator에서 사용할 수 있게 되면 PCI-DSS 표준의 최신 버전을 유지합니다. PCI-DSS v3.2.1과 같은 특정 버전을 준수하려면ocp4-pci-dss-3-2
및ocp4-pci-dss-node-3-2
프로필을 사용합니다. - 노드 프로필은 관련 플랫폼 프로필과 함께 사용해야 합니다. 자세한 내용은 Compliance Operator 프로필 유형을 참조하십시오.
- PCI-DSS v3.2.1은 PCI-DSS v4에 의해 구동됩니다. 최신 프로필을 환경에 적용하는 것이 좋습니다.
5.6.1.1.8. STIG 준수 프로필 링크 복사링크가 클립보드에 복사되었습니다!
service-sshd-disabled
규칙을 사용하는 rhcos4-stig
와 같은 프로필에 자동 수정 사항을 적용하면 sshd
서비스가 자동으로 비활성화됩니다. 이 경우 컨트롤 플레인 노드 및 컴퓨팅 노드에 대한 SSH 액세스를 차단합니다. SSH 액세스를 계속 활성화하려면 TailoredProfile
오브젝트를 생성하고 disableRules
매개변수에 대해 rhcos4-service-sshd-disabled
규칙 값을 설정합니다.
프로필 | 프로필 제목 | 애플리케이션 | 업계 컴플라이언스 벤치마크 | 지원되는 아키텍처 | 지원되는 플랫폼 |
---|---|---|---|---|---|
ocp4-stig [1] | Red Hat Openshift용 DISA STIG(Security Technical Implementation Guide) | 플랫폼 |
| ||
ocp4-stig-node [1] | Red Hat Openshift용 DISA STIG(Security Technical Implementation Guide) | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
ocp4-stig-node-v1r1 [3] | Red Hat Openshift V1R1을 위한 DISA STIG(Security Agency Security Technical Implementation Guide) | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
ocp4-stig-node-v2r1 | Red Hat Openshift V2R1용 DISA STIG(Security Agency Security Technical Implementation Guide) | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
ocp4-stig-node-v2r2 | Red Hat Openshift V2R2용 DISA STIG(Security System Agency Security Technical Implementation Guide) | 노드 [2] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
ocp4-stig-v1r1 [3] | Red Hat Openshift V1R1을 위한 DISA STIG(Security Agency Security Technical Implementation Guide) | 플랫폼 |
| ||
ocp4-stig-v2r1 | Red Hat Openshift V2R1용 DISA STIG(Security Agency Security Technical Implementation Guide) | 플랫폼 |
| ||
ocp4-stig-v2r2 | Red Hat Openshift V2R2용 DISA STIG(Security System Agency Security Technical Implementation Guide) | 플랫폼 |
| ||
rhcos4-stig | Red Hat Openshift용 DISA STIG(Security Technical Implementation Guide) | 노드 |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
rhcos4-stig-v1r1 [3] | Red Hat Openshift V1R1을 위한 DISA STIG(Security Agency Security Technical Implementation Guide) | 노드 | DISA-STIG [3] |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
rhcos4-stig-v2r1 | Red Hat Openshift V2R1용 DISA STIG(Security Agency Security Technical Implementation Guide) | 노드 |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service | |
rhcos4-stig-v2r2 | Red Hat Openshift V2R2용 DISA STIG(Security System Agency Security Technical Implementation Guide) | 노드 |
| 호스팅된 컨트롤 플레인(ROSA HCP)을 사용하는 AWS의 Red Hat OpenShift Service |
-
ocp4-stig
,ocp4-stig-node
및rhcos4-stig
프로필은 Compliance Operator에서 사용할 수 있게 되면 DISA-STIG 벤치마크의 최신 버전을 유지합니다. DISA-STIG V2R1과 같은 특정 버전을 준수하려면ocp4-stig-v2r1
및ocp4-stig-node-v2r1
프로필을 사용하십시오. - 노드 프로필은 관련 플랫폼 프로필과 함께 사용해야 합니다. 자세한 내용은 Compliance Operator 프로필 유형을 참조하십시오.
- DISA-STIG V1R1은 DISA-STIG V2R1에 의해 중첩됩니다. 최신 프로필을 환경에 적용하는 것이 좋습니다.
5.6.1.1.9. 확장된 규정 준수 프로필 정보 링크 복사링크가 클립보드에 복사되었습니다!
일부 규정 준수 프로필에는 다음과 같은 업계 모범 사례를 필요로 하는 제어가 있어 일부 프로필이 다른 프로필을 확장할 수 있습니다. CIS(Center for Internet Security) 모범 사례를 NIST(National Institute of Standards and Technology) 보안 프레임워크와 결합하면 안전하고 호환되는 환경을 위한 경로가 설정됩니다.
예를 들어 NIST High-Impact 및 Moderate-Impact 프로필은 CIS 프로필을 확장하여 규정 준수를 달성합니다. 결과적으로 확장된 규정 준수 프로필을 사용하면 단일 클러스터에서 두 프로필을 모두 실행할 필요가 없습니다.
프로필 | 확장 |
---|---|
ocp4-pci-dss | ocp4-cis |
ocp4-pci-dss-node | ocp4-cis-node |
ocp4-high | ocp4-cis |
ocp4-high-node | ocp4-cis-node |
ocp4-moderate | ocp4-cis |
ocp4-moderate-node | ocp4-cis-node |
ocp4-nerc-cip | ocp4-moderate |
ocp4-nerc-cip-node | ocp4-moderate-node |
5.6.1.1.10. Compliance Operator 프로필 유형 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator 규칙은 프로필로 구성됩니다. 프로필은 OpenShift Container Platform의 플랫폼 또는 노드를 대상으로 지정할 수 있으며 일부 벤치마크에는 rhcos4
노드 프로필이 포함됩니다.
- 플랫폼
- 플랫폼 프로필은 OpenShift Container Platform 클러스터 구성 요소를 평가합니다. 예를 들어 플랫폼 수준 규칙은 APIServer 구성이 강력한 암호화 Ccyphers를 사용하는지 여부를 확인할 수 있습니다.
- 노드
-
노드 프로필은 각 호스트의 OpenShift 또는 RHCOS 구성을 평가합니다. 두 개의 노드 프로필
ocp4
노드 프로필 및rhcos4
노드 프로필을 사용할 수 있습니다.ocp4
노드 프로필은 각 호스트의 OpenShift 구성을 평가합니다. 예를 들어kubeconfig
파일에 규정 준수 표준을 충족할 수 있는 올바른 권한이 있는지 확인할 수 있습니다.rhcos4
노드 프로필은 각 호스트의 RHCOS(Red Hat Enterprise Linux CoreOS) 구성을 평가합니다. 예를 들어 SSHD 서비스가 암호 로그인을 비활성화하도록 구성되어 있는지 확인할 수 있습니다.
PCI-DSS와 같은 Node 및 Platform 프로필이 있는 벤치마크의 경우 OpenShift Container Platform 환경에서 두 프로필을 모두 실행해야 합니다.
ocp4
Platform, ocp4
Node 및 rhcos4
Node 프로필이 있는 벤치마크의 경우 OpenShift Container Platform 환경에서 세 개의 프로필을 모두 실행해야 합니다.
노드가 많은 클러스터에서 ocp4
Node 및 rhcos4
노드 검사를 완료하는 데 시간이 오래 걸릴 수 있습니다.
5.6.2. Compliance Operator 검사 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator를 사용하여 규정 준수 검사를 실행하도록 ScanSetting
및 ScanSettingBinding
API를 사용하는 것이 좋습니다. 이러한 API 오브젝트에 대한 자세한 내용을 보려면 다음을 실행합니다.
oc explain scansettings
$ oc explain scansettings
또는
oc explain scansettingbindings
$ oc explain scansettingbindings
5.6.2.1. 규정 준수 검사 실행 링크 복사링크가 클립보드에 복사되었습니다!
CIS(Center for Internet Security) 프로필을 사용하여 검사를 실행할 수 있습니다. 편의를 위해 Compliance Operator는 시작 시 적절한 기본값을 사용하여 ScanSetting
오브젝트를 생성합니다. 이 ScanSetting
오브젝트의 이름은 default
입니다.
올인원 컨트롤 플레인 및 작업자 노드의 경우 규정 준수 검사가 작업자 및 컨트롤 플레인 노드에서 두 번 실행됩니다. 규정 준수 검사에서 일관성 없는 검사 결과가 생성될 수 있습니다. ScanSetting
오브젝트에서 단일 역할만 정의하여 일관성 없는 결과를 방지할 수 있습니다.
Compliance Operator는 컨트롤 플레인에서 aarch64
또는 x86
CPU를 사용하는지 여부에 관계없이 다중 아키텍처 컴퓨팅 머신이 있는 클러스터에서 INCONSISTENT
를 보고합니다. 이는 다른 아키텍처에서 다르게 작동하는 것과 동일한 규칙 때문입니다. Compliance Operator가 여러 노드의 결과를 단일 결과로 집계하는 노드 검사에만 적용 가능해야 합니다.
일관성 없는 검사 결과에 대한 자세한 내용은 Compliance Operator에 INCONSISTENT 검사 결과가 작업자 노드와 함께 표시됩니다.
프로세스
다음 명령을 실행하여
ScanSetting
오브젝트를 검사합니다.oc describe scansettings default -n openshift-compliance
$ oc describe scansettings default -n openshift-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Compliance Operator는 검사 결과가 포함된 PV(영구 볼륨)를 생성합니다. 기본적으로 PV는 Compliance Operator에서 클러스터에 구성된 스토리지 클래스에 대한 가정을 할 수 없기 때문에 액세스 모드
ReadWriteOnce
를 사용합니다. 대부분의 클러스터에서ReadWriteOnce
액세스 모드를 사용할 수 있습니다. 검사 결과를 가져오려면 볼륨을 바인딩하는 도우미 Pod를 사용하여 이를 수행할 수 있습니다.ReadWriteOnce
액세스 모드를 사용하는 볼륨은 한 번에 하나의 Pod에서만 마운트할 수 있으므로 도우미 Pod를 삭제해야 합니다. 그러지 않으면 Compliance Operator가 후속 검사에 볼륨을 재사용할 수 없습니다. - 2
- Compliance Operator는 세 번의 후속 검사 결과를 볼륨에 보관합니다. 이전 검사는 순환됩니다.
- 3
- Compliance Operator는 검사 결과에 대해 1GB의 스토리지를 할당합니다.
- 4
scansetting.rawResultStorage.storageClassName
필드는 원시 결과를 저장하기 위해PersistentVolumeClaim
오브젝트를 생성할 때 사용할storageClassName
값을 지정합니다. 기본값은 null이며 클러스터에 구성된 기본 스토리지 클래스를 사용하려고 합니다. 기본 클래스가 지정되지 않은 경우 기본 클래스를 설정해야 합니다.- 5 6
- 검사 설정에서 클러스터 노드를 검사하는 프로필을 사용하는 경우 이러한 노드 역할을 검사합니다.
- 7
- 기본 검사 설정 오브젝트는 모든 노드를 검사합니다.
- 8
- 기본 검사 설정 오브젝트는 매일 01:00에 검사를 실행합니다.
기본 검사 설정 대신 다음과 같은 설정이 있는
default-auto-apply
를 사용할 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본
ScanSetting
오브젝트에 바인딩하는ScanSettingBinding
오브젝트를 생성하고cis
및cis-node
프로파일을 사용하여 클러스터를 검사합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음을 실행하여
ScanSettingBinding
오브젝트를 생성합니다.oc create -f <file-name>.yaml -n openshift-compliance
$ oc create -f <file-name>.yaml -n openshift-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 프로세스의 이 시점에서
ScanSettingBinding
오브젝트는Binding
및Bound
설정을 기반으로 조정됩니다. Compliance Operator는ComplianceSuite
오브젝트 및 관련ComplianceScan
오브젝트를 생성합니다.다음을 실행하여 컴플라이언스 검사 진행 상황을 따르십시오.
oc get compliancescan -w -n openshift-compliance
$ oc get compliancescan -w -n openshift-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 검사는 스캔 단계를 통해 진행되며 완료되면
DONE
단계에 도달합니다. 대부분의 경우 검사 결과는NON-COMPLIANT
입니다. 검사 결과를 검토하고 업데이트 적용 작업을 시작하여 클러스터를 준수하도록 할 수 있습니다. 자세한 내용은 Compliance Operator 수정 관리를 참조하십시오.
5.6.2.2. 결과에 대한 사용자 정의 스토리지 크기 설정 링크 복사링크가 클립보드에 복사되었습니다!
ComplianceCheckResult
와 같은 사용자 정의 리소스는 검사한 모든 노드에서 집계한 한 번의 점검 결과를 나타내지만 스캐너에서 생성한 원시 결과를 검토하는 것이 유용할 수 있습니다. 원시 결과는 ARF 형식으로 생성되며 크기가 클 수 있습니다(노드당 수십 메가바이트). 따라서 etcd
키-값 저장소에서 지원하는 Kubernetes 리소스에 저장하는 것은 비현실적입니다. 대신 검사할 때마다 기본 크기가 1GB인 영구 볼륨(PV)이 생성됩니다. 환경에 따라 적절하게 PV 크기를 늘릴 수 있습니다. 크기를 늘리려면 ScanSetting
및 ComplianceScan
리소스 모두에 노출되는 rawResultStorage.size
특성을 사용하면 됩니다.
관련 매개변수는 rawResultStorage.rotation
으로, 이전 검사가 되풀이되기 전에 PV에 유지되는 검사 수를 조절합니다. 기본값은 3이며 되풀이 정책을 0으로 설정하면 되풀이가 비활성화됩니다. 기본 되풀이 정책과 원시 ARF 검사 보고서당 100MB의 추정치가 지정되면 환경에 적합한 PV 크기를 계산할 수 있습니다.
5.6.2.2.1. 사용자 정의 결과 스토리지 값 사용 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 다양한 퍼블릭 클라우드 또는 베어 메탈에 배포할 수 있으므로 Compliance Operator에서는 사용 가능한 스토리지 구성을 결정할 수 없습니다. 기본적으로 Compliance Operator는 클러스터의 기본 스토리지 클래스를 사용하여 결과를 저장하는 PV를 생성하지만 사용자 정의 스토리지 클래스는 rawResultStorage.StorageClassName
특성을 사용하여 구성할 수 있습니다.
클러스터에서 기본 스토리지 클래스를 지정하지 않는 경우 이 특성을 설정해야 합니다.
표준 스토리지 클래스를 사용하고 마지막 결과 10개를 유지하는 10GB 크기의 영구 볼륨을 만들도록 ScanSetting
사용자 정의 리소스를 구성합니다.
예제 ScanSetting
CR
5.6.2.3. 작업자 노드에서 결과 서버 Pod 예약 링크 복사링크가 클립보드에 복사되었습니다!
결과 서버 Pod는 원시 자산 보고 형식(ARF) 검사 결과를 저장하는 PV(영구 볼륨)를 마운트합니다. nodeSelector
및 허용 오차
속성을 사용하면 결과 서버 Pod의 위치를 구성할 수 있습니다.
이는 컨트롤 플레인 노드가 영구 볼륨을 마운트할 수 없는 환경에 유용합니다.
프로세스
Compliance Operator에 대한
ScanSetting
CR(사용자 정의 리소스)을 생성합니다.ScanSetting
CR을 정의하고 YAML 파일(예:rs-workers.yaml
)을 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ScanSetting
CR을 생성하려면 다음 명령을 실행합니다.oc create -f rs-workers.yaml
$ oc create -f rs-workers.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
ScanSetting
오브젝트가 생성되었는지 확인하려면 다음 명령을 실행합니다.oc get scansettings rs-on-workers -n openshift-compliance -o yaml
$ oc get scansettings rs-on-workers -n openshift-compliance -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.2.4. ScanSetting 사용자 정의 리소스 링크 복사링크가 클립보드에 복사되었습니다!
ScanSetting
사용자 정의 리소스를 사용하면 검사 제한 속성을 통해 스캐너 Pod의 기본 CPU 및 메모리 제한을 덮어쓸 수 있습니다. Compliance Operator는 500Mi 메모리, 스캐너 컨테이너의 경우 100m CPU, api-resource-collector
컨테이너의 100m CPU가 있는 200Mi 메모리를 사용합니다. Operator의 메모리 제한을 설정하려면 OLM 또는 Operator 배포 자체를 통해 설치된 경우 Subscription
오브젝트를 수정합니다.
Compliance Operator의 기본 CPU 및 메모리 제한을 늘리려면 Compliance Operator 리소스 제한 증가를 참조하십시오.
기본 제한이 충분하지 않고 OOM(Out Of Memory) 프로세스에서 Operator 또는 스캐너 Pod를 종료하는 경우 Compliance Operator 또는 스캐너 Pod의 메모리 제한을 늘려야 합니다. 자세한 내용은 Compliance Operator 리소스 제한 증가를 참조하십시오.
5.6.2.5. 호스트된 컨트롤 플레인 관리 클러스터 구성 링크 복사링크가 클립보드에 복사되었습니다!
자체 호스팅 컨트롤 플레인 또는 Hypershift 환경을 호스팅하고 관리 클러스터에서 호스팅된 클러스터를 검사하려면 대상 호스팅 클러스터의 이름 및 접두사 네임스페이스를 설정해야 합니다. TailoredProfile
을 생성하여 이를 수행할 수 있습니다.
이 절차는 자체 호스팅 컨트롤 플레인 환경을 관리하는 사용자에게만 적용됩니다.
호스트된 컨트롤 플레인 관리 클러스터에서 ocp4-cis
및 ocp4-pci-dss
프로필만 지원됩니다.
사전 요구 사항
- Compliance Operator는 관리 클러스터에 설치됩니다.
프로세스
다음 명령을 실행하여 검사할 호스팅 클러스터의
이름과
네임스페이스
를 가져옵니다.oc get hostedcluster -A
$ oc get hostedcluster -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE local-cluster 79136a1bdb84b3c13217 4.13.5 79136a1bdb84b3c13217-admin-kubeconfig Completed True False The hosted control plane is available
NAMESPACE NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE local-cluster 79136a1bdb84b3c13217 4.13.5 79136a1bdb84b3c13217-admin-kubeconfig Completed True False The hosted control plane is available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 클러스터에서 검사 프로필을 확장한
TailoredProfile
을 생성하고 스캔할 Hosted Cluster의 이름과 네임스페이스를 정의합니다.management-tailoredprofile.yaml
의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow TailoredProfile
을 생성합니다.oc create -n openshift-compliance -f mgmt-tp.yaml
$ oc create -n openshift-compliance -f mgmt-tp.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.2.6. 리소스 요청 및 제한 적용 링크 복사링크가 클립보드에 복사되었습니다!
kubelet은 컨테이너를 Pod의 일부로 시작하면 kubelet은 해당 컨테이너의 메모리 및 CPU에 대한 요청 및 제한을 컨테이너 런타임으로 전달합니다. Linux에서 컨테이너 런타임은 사용자가 정의한 제한을 적용하고 적용하는 커널 cgroup을 구성합니다.
CPU 제한은 컨테이너에서 사용할 수 있는 CPU 시간을 정의합니다. 각 스케줄링 간격 동안 Linux 커널은 이 제한이 초과되었는지 확인합니다. 이 경우 커널은 cgroup 실행이 다시 시작될 때까지 기다립니다.
일련의 시스템에서 여러 다른 컨테이너(cgroups)를 실행하려는 경우 더 큰 CPU 요청이 있는 워크로드가 작은 요청이 있는 워크로드보다 더 많은 CPU 시간이 할당됩니다. 메모리 요청은 Pod 예약 중에 사용됩니다. cgroups v2를 사용하는 노드에서 컨테이너 런타임은 메모리 요청을 힌트로 사용하여 memory.min
및 memory.low
값을 설정할 수 있습니다.
컨테이너가 이 제한보다 많은 메모리를 할당하려고 하면 Linux 커널 메모리 부족 하위 시스템이 활성화되고 메모리를 할당하려는 컨테이너의 프로세스 중 하나를 중지하여 개입합니다. Pod 또는 컨테이너의 메모리 제한은 emptyDir과 같이 메모리 지원 볼륨의 페이지에도 적용할 수 있습니다.
kubelet은 로컬 임시 스토리지 대신 컨테이너 메모리가 사용되므로 tmpfs
emptyDir
볼륨을 추적합니다. 컨테이너가 메모리 요청을 초과하고 실행 중인 노드가 전체 메모리가 되면 Pod의 컨테이너가 제거될 수 있습니다.
컨테이너는 연장된 기간 동안 CPU 제한을 초과할 수 없습니다. 컨테이너 실행 시간은 과도한 CPU 사용을 위해 Pod 또는 컨테이너를 중지하지 않습니다. 리소스 제한으로 인해 컨테이너를 예약할 수 없거나 종료되는지 확인하려면 Compliance Operator 문제 해결을 참조하십시오.
5.6.2.7. 컨테이너 리소스 요청을 사용하여 Pod 예약 링크 복사링크가 클립보드에 복사되었습니다!
Pod가 생성되면 스케줄러에서 Pod를 실행할 노드를 선택합니다. 각 노드에는 Pod에 제공할 수 있는 CPU 및 메모리 양의 각 리소스 유형에 대한 최대 용량이 있습니다. 스케줄러는 예약된 컨테이너의 리소스 요청 합계가 각 리소스 유형의 용량 노드보다 작은지 확인합니다.
노드의 메모리 또는 CPU 리소스 사용량이 매우 낮지만 용량 검사에서 노드의 리소스 부족으로부터 보호하지 못하는 경우에도 스케줄러에서 노드에 Pod를 배치하지 못할 수 있습니다.
각 컨테이너에 대해 다음 리소스 제한 및 요청을 지정할 수 있습니다.
개별 컨테이너에 대한 요청 및 제한을 지정할 수 있지만 Pod에 대한 전체 리소스 요청 및 제한을 고려하는 것도 유용합니다. 특정 리소스의 경우 컨테이너 리소스 요청 또는 제한은 Pod의 각 컨테이너에 대한 리소스 요청 또는 제한의 합계입니다.
컨테이너 리소스 요청 및 제한의 예
5.6.3. Compliance Operator 조정 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator는 즉시 사용할 수 있는 프로필과 함께 제공되지만 조직의 필요 및 요구 사항에 맞게 수정해야 합니다. 프로필을 수정하는 프로세스를 조정이라고 합니다.
Compliance Operator는 프로필을 조정하는 데 도움이 되도록 TailoredProfile
오브젝트를 제공합니다.
5.6.3.1. 새 맞춤형 프로파일 생성 링크 복사링크가 클립보드에 복사되었습니다!
TailoredProfile
오브젝트를 사용하여 처음부터 맞춤형 프로필을 작성할 수 있습니다. 적절한 title
및 description
을 설정하고 extends
필드를 비워 둡니다. Compliance Operator에 이 사용자 정의 프로파일에서 생성할 검사 유형을 나타냅니다.
- 노드 검사: 운영 체제를 검사합니다.
- 플랫폼 검사: OpenShift Container Platform 구성을 검사합니다.
프로세스
-
TailoredProfile
오브젝트에 다음 주석을 설정합니다.
예: new-profile.yaml
5.6.3.2. 맞춤형 프로필을 사용하여 기존 ProfileBundles 확장 링크 복사링크가 클립보드에 복사되었습니다!
TailoredProfile
CR에서는 가장 일반적인 맞춤 작업을 수행할 수 있지만 XCCDF 표준을 사용하면 OpenSCAP 프로필 맞춤 시 유연성이 훨씬 더 향상됩니다. 또한 조직에서 이전에 OpenScap을 사용한 적이 있는 경우 기존 XCCDF 맞춤 파일이 있을 수 있으며 이 파일을 다시 사용할 수 있습니다.
ComplianceSuite
오브젝트에는 사용자 정의 맞춤 파일을 가리킬 수 있는 선택적 TailoringConfigMap
특성이 포함되어 있습니다. TailoringConfigMap
특성 값은 구성 맵의 이름으로, 이 맵에는 tailoring.xml
이라는 키가 포함되어야 하며 이 키의 값은 맞춤 콘텐츠입니다.
프로세스
RHCOS(Red Hat Enterprise Linux CoreOS)
ProfileBundle
에 사용 가능한 규칙을 찾습니다.oc get rules.compliance -n openshift-compliance -l compliance.openshift.io/profile-bundle=rhcos4
$ oc get rules.compliance -n openshift-compliance -l compliance.openshift.io/profile-bundle=rhcos4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 해당
ProfileBundle
에서 사용 가능한 변수를 찾습니다.oc get variables.compliance -n openshift-compliance -l compliance.openshift.io/profile-bundle=rhcos4
$ oc get variables.compliance -n openshift-compliance -l compliance.openshift.io/profile-bundle=rhcos4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nist-moderate-modified
라는 맞춤형 프로필을 만듭니다.nist-moderate-modified
맞춤형 프로필에 추가할 규칙을 선택합니다. 이 예제에서는 두 개의 규칙을 비활성화하고 하나의 값을 변경하여rhcos4-moderate
프로필을 확장합니다.rationale
값을 사용하여 이러한 변경이 이루어진 이유를 설명합니다.예:
new-profile-node.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 표 5.9. spec 변수의 속성 속성 설명 extends
이
TailoredProfile
이 빌드되는Profile
오브젝트의 이름입니다.title
TailoredProfile
의 사람이 읽을 수 있는 제목입니다.disableRules
이름 및 이유 쌍 목록입니다. 각 이름은 비활성화할 규칙 오브젝트의 이름을 나타냅니다. 이유 값은 규칙이 비활성화된 이유를 설명하는 사람이 읽을 수 있는 텍스트입니다.
manualRules
이름 및 이유 쌍 목록입니다. 수동 규칙이 추가되면 검사 결과 상태가 항상
수동
이 되고 수정 사항이 생성되지 않습니다. 이 속성은 자동이며 기본적으로 수동 규칙으로 설정할 때 값이 없습니다.enableRules
이름 및 이유 쌍 목록입니다. 각 이름은 활성화할 규칙 오브젝트의 이름을 나타냅니다. 이유 값은 규칙이 활성화된 이유를 설명하는 사람이 읽을 수 있는 텍스트입니다.
description
TailoredProfile
을 설명하는 사람이 읽을 수 있는 텍스트입니다.setValues
이름, 이유 및 값 그룹화 목록입니다. 각 이름은 설정된 값의 이름을 나타냅니다. 이유는 집합을 설명하는 사람이 읽을 수 있는 텍스트입니다. 값은 실제 설정입니다.
tailoredProfile.spec.manualRules
속성을 추가합니다.예제
tailoredProfile.spec.manualRules.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TailoredProfile
오브젝트를 생성합니다.oc create -n openshift-compliance -f new-profile-node.yaml
$ oc create -n openshift-compliance -f new-profile-node.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
TailoredProfile
오브젝트는 기본openshift-compliance
네임스페이스에 생성됩니다.
출력 예
tailoredprofile.compliance.openshift.io/nist-moderate-modified created
tailoredprofile.compliance.openshift.io/nist-moderate-modified created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
새
nist-moderate-modified
맞춤형 프로필을 기본ScanSetting
오브젝트에 바인딩하도록ScanSettingBinding
오브젝트를 정의합니다.예제
new-scansettingbinding.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ScanSettingBinding
오브젝트를 생성합니다.oc create -n openshift-compliance -f new-scansettingbinding.yaml
$ oc create -n openshift-compliance -f new-scansettingbinding.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
scansettingbinding.compliance.openshift.io/nist-moderate-modified created
scansettingbinding.compliance.openshift.io/nist-moderate-modified created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.4. Compliance Operator 원시 결과 검색 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 클러스터의 규정 준수를 입증할 때 감사 목적으로 검사 결과를 제공해야 할 수 있습니다.
5.6.4.1. 영구 볼륨에서 Compliance Operator 원시 결과 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
Compliance Operator는 원시 결과를 생성하여 영구 볼륨에 저장합니다. 이러한 결과는 자산 보고 형식(ARF)으로 되어 있습니다.
ComplianceSuite
오브젝트를 살펴봅니다.oc get compliancesuites nist-moderate-modified \ -o json -n openshift-compliance | jq '.status.scanStatuses[].resultsStorage'
$ oc get compliancesuites nist-moderate-modified \ -o json -n openshift-compliance | jq '.status.scanStatuses[].resultsStorage'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 원시 결과에 액세스할 수 있는 영구 볼륨 클레임이 표시됩니다.
결과 중 하나의 이름과 네임스페이스를 사용하여 원시 데이터 위치를 확인합니다.
oc get pvc -n openshift-compliance rhcos4-moderate-worker
$ oc get pvc -n openshift-compliance rhcos4-moderate-worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE rhcos4-moderate-worker Bound pvc-548f6cfe-164b-42fe-ba13-a07cfbc77f3a 1Gi RWO gp2 92m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE rhcos4-moderate-worker Bound pvc-548f6cfe-164b-42fe-ba13-a07cfbc77f3a 1Gi RWO gp2 92m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 볼륨을 마운트하는 Pod를 생성하고 결과를 복사하여 원시 결과를 가져옵니다.
oc create -n openshift-compliance -f pod.yaml
$ oc create -n openshift-compliance -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pod.yaml의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod가 실행되면 결과를 다운로드합니다.
oc cp pv-extract:/workers-scan-results -n openshift-compliance .
$ oc cp pv-extract:/workers-scan-results -n openshift-compliance .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요영구 볼륨을 마운트하는 Pod를 생성하면 클레임이
Bound
로 유지됩니다. 사용 중인 볼륨의 스토리지 클래스에ReadWriteOnce
로 설정된 권한이 있는 경우 한 번에 하나의 Pod에서만 볼륨을 마운트할 수 있습니다. 완료 시 Pod를 삭제해야 합니다. 그러지 않으면 Operator에서 Pod를 예약하고 이 위치에 결과를 계속 저장할 수 없습니다.추출이 완료되면 Pod를 삭제할 수 있습니다.
oc delete pod pv-extract -n openshift-compliance
$ oc delete pod pv-extract -n openshift-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.5. Compliance Operator 결과 및 수정 관리 링크 복사링크가 클립보드에 복사되었습니다!
각 ComplianceCheckResult
는 하나의 규정 준수 규칙 검사 결과를 나타냅니다. 규칙을 자동으로 수정할 수 있는 경우 ComplianceCheckResult
가 소유한 동일한 이름의 ComplianceRemediation
오브젝트가 생성됩니다. 요청하지 않는 경우 수정은 자동으로 적용되지 않으므로 OpenShift Container Platform 관리자는 수정을 통해 수행되는 작업을 검토하고 확인한 후에만 수정을 적용할 수 있습니다.
FIPS(Federal Information Processing Standards) 준수를 완전히 해결하려면 클러스터에 FIPS 모드를 활성화해야 합니다. FIPS 모드를 활성화하려면 FIPS 모드에서 작동하도록 구성된 RHEL(Red Hat Enterprise Linux) 컴퓨터에서 설치 프로그램을 실행해야 합니다. RHEL에서 FIPS 모드 구성에 대한 자세한 내용은 FIPS 모드에서 시스템 설치를 참조하십시오.
FIPS 모드는 다음 아키텍처에서 지원됩니다.
-
x86_64
-
ppc64le
-
s390x
5.6.5.1. 규정 준수 검사 결과에 대한 필터 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 ComplianceCheckResult
오브젝트에는 검사를 쿼리하고 결과가 생성된 후 다음 단계를 결정할 수 있는 몇 가지 유용한 레이블이 지정됩니다.
특정 제품군에 속하는 검사를 나열합니다.
oc get -n openshift-compliance compliancecheckresults \ -l compliance.openshift.io/suite=workers-compliancesuite
$ oc get -n openshift-compliance compliancecheckresults \
-l compliance.openshift.io/suite=workers-compliancesuite
특정 검사에 속하는 검사를 나열합니다.
oc get -n openshift-compliance compliancecheckresults \ -l compliance.openshift.io/scan=workers-scan
$ oc get -n openshift-compliance compliancecheckresults \
-l compliance.openshift.io/scan=workers-scan
일부 ComplianceCheckResult
오브젝트가 ComplianceRemediation
오브젝트를 생성하는 것은 아닙니다. 자동으로 업데이트를 적용할 수 있는 ComplianceCheckResult
오브젝트만 해당합니다. ComplianceCheckResult
오브젝트에 compliance.openshift.io/automated-remediation
레이블이 지정된 경우 관련된 업데이트 적용이 있습니다. 업데이트 적용의 이름은 검사 이름과 동일합니다.
자동으로 업데이트를 적용할 수 있는 모든 실패한 검사를 나열합니다.
oc get -n openshift-compliance compliancecheckresults \ -l 'compliance.openshift.io/check-status=FAIL,compliance.openshift.io/automated-remediation'
$ oc get -n openshift-compliance compliancecheckresults \
-l 'compliance.openshift.io/check-status=FAIL,compliance.openshift.io/automated-remediation'
심각도별로 정렬된 실패한 모든 검사를 나열합니다.
oc get compliancecheckresults -n openshift-compliance \ -l 'compliance.openshift.io/check-status=FAIL,compliance.openshift.io/check-severity=high'
$ oc get compliancecheckresults -n openshift-compliance \
-l 'compliance.openshift.io/check-status=FAIL,compliance.openshift.io/check-severity=high'
출력 예
수동으로 업데이트를 적용해야 하는 모든 실패한 검사를 나열합니다.
oc get -n openshift-compliance compliancecheckresults \ -l 'compliance.openshift.io/check-status=FAIL,!compliance.openshift.io/automated-remediation'
$ oc get -n openshift-compliance compliancecheckresults \
-l 'compliance.openshift.io/check-status=FAIL,!compliance.openshift.io/automated-remediation'
수동 업데이트 적용 단계는 일반적으로 ComplianceCheckResult
오브젝트의 description
속성에 저장됩니다.
ComplianceCheckResult 상태 | 설명 |
---|---|
PASS | 규정 준수 검사가 완료된 후 통과되었습니다. |
FAIL | 규정 준수 검사가 완료되도록 실행되었으며 실패했습니다. |
INFO | 컴플라이언스 검사가 완료되기 위해 실행되었으며 오류로 간주할 만큼 심각하지 않은 것을 발견했습니다. |
MANUAL | 규정 준수 확인에는 성공 또는 실패를 자동으로 평가할 방법이 없으며 수동으로 확인해야 합니다. |
일관성 없음 | 규정 준수 검사에서는 일반적으로 클러스터 노드와 다른 소스와 다른 결과를 보고합니다. |
ERROR | 컴플라이언스 검사가 실행되었지만 제대로 완료되지 못했습니다. |
해당 없음 | 규정 준수 검사가 적용되지 않거나 선택되지 않았기 때문에 실행되지 않았습니다. |
5.6.5.2. 수정 검토 링크 복사링크가 클립보드에 복사되었습니다!
수정이 포함된 ComplianceRemediation
오브젝트 및 ComplianceCheckResult
오브젝트를 모두 검토합니다. ComplianceCheckResult
오브젝트에는 검사에서 수행하는 작업과 방지를 위한 강화 작업에 관해 사람이 있을 수 있는 설명과 심각도 및 관련 보안 제어와 같은 기타 메타데이터
가 포함되어 있습니다. ComplianceRemediation
오브젝트는 ComplianceCheckResult
에서 설명하는 문제를 해결하는 방법을 나타냅니다. 첫 번째 검사 후 MissingDependencies
상태로 수정을 확인합니다.
다음은 sysctl-net-ipv4-conf-all-accept-redirects
라는 검사와 수정의 예입니다. 이 예는 spec
및 status
만 표시하고 metadata
는 생략하도록 수정되었습니다.
수정 페이로드는 spec.current
특성에 저장됩니다. 페이로드는 임의의 Kubernetes 오브젝트일 수 있지만 이 수정은 노드 검사를 통해 생성되었기 때문에 위 예의 수정 페이로드는 MachineConfig
오브젝트입니다. 플랫폼 검사의 경우 수정 페이로드는 종종 다른 종류의 오브젝트(예: ConfigMap
또는 Secret
오브젝트)에 해당하지만 일반적으로 이러한 수정을 적용하는 것은 관리자의 몫입니다. 그러지 않으면 일반 Kubernetes 오브젝트를 조작하기 위해 Compliance Operator에 매우 광범위한 권한이 있어야 하기 때문입니다. 플랫폼 검사를 수정하는 예는 본문 뒷부분에 있습니다.
수정 적용 시 수행되는 작업을 정확히 확인하기 위해 MachineConfig
오브젝트 콘텐츠에서는 구성에 Ignition 오브젝트를 사용합니다. 형식에 대한 자세한 내용은 Ignition 사양을 참조하십시오. 이 예에서 spec.config.storage.files[0].path
특성은 이 수정(/etc/sysctl.d/75-sysctl_net_ipv4_conf_all_accept_redirects.conf
)으로 생성되는 파일을 지정하고, spec.config.storage.files[0].contents.source
특성은 해당 파일의 콘텐츠를 지정합니다.
파일 내용은 URL로 인코딩됩니다.
콘텐츠를 보려면 다음 Python 스크립트를 사용합니다.
echo "net.ipv4.conf.all.accept_redirects%3D0" | python3 -c "import sys, urllib.parse; print(urllib.parse.unquote(''.join(sys.stdin.readlines())))"
$ echo "net.ipv4.conf.all.accept_redirects%3D0" | python3 -c "import sys, urllib.parse; print(urllib.parse.unquote(''.join(sys.stdin.readlines())))"
출력 예
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.all.accept_redirects=0
Compliance Operator는 수정 사이에 발생할 수 있는 종속성 문제를 자동으로 해결하지 않습니다. 정확한 결과를 보장하기 위해 수정을 적용한 후 다시 스캔해야 합니다.
5.6.5.3. 사용자 지정 머신 구성 풀을 사용할 때 수정 적용 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 MachineConfigPool
을 생성할 때 KubeletConfig
에 있는 machineConfigPoolSelector
가 MachineConfigPool
과 함께 레이블을 일치시킬 수 있도록 MachineConfigPool
에 레이블을 추가합니다.
Compliance Operator가 수정 적용을 완료한 후 MachineConfigPool
오브젝트가 예기치 않게 일시 중지 해제될 수 있으므로 KubeletConfig
파일에 protectKernelDefaults: false
를 설정하지 마십시오.
프로세스
노드를 나열합니다.
oc get nodes -n openshift-compliance
$ oc get nodes -n openshift-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드에 레이블을 추가합니다.
oc -n openshift-compliance \ label node ip-10-0-166-81.us-east-2.compute.internal \ node-role.kubernetes.io/<machine_config_pool_name>=
$ oc -n openshift-compliance \ label node ip-10-0-166-81.us-east-2.compute.internal \ node-role.kubernetes.io/<machine_config_pool_name>=
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
node/ip-10-0-166-81.us-east-2.compute.internal labeled
node/ip-10-0-166-81.us-east-2.compute.internal labeled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 지정
MachineConfigPool
CR을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
labels
필드는 MCP(Machine config pool)에 추가할 레이블 이름을 정의합니다.
MCP가 성공적으로 생성되었는지 확인합니다.
oc get mcp -w
$ oc get mcp -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.5.4. 기본 구성 값에 대해 KubeletConfig 규칙 평가 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 인프라에는 런타임에 불완전한 구성 파일이 포함될 수 있으며 노드는 누락된 구성 옵션에 대한 기본 구성 값을 가정합니다. 일부 구성 옵션은 명령줄 인수로 전달할 수 있습니다. 결과적으로 Compliance Operator는 규칙 검사에 사용되는 옵션이 누락될 수 있으므로 노드의 구성 파일이 완료되었는지 확인할 수 없습니다.
기본 구성 값이 검사를 전달하는 잘못된 결과를 방지하기 위해 Compliance Operator는 Node/Proxy API를 사용하여 노드 풀의 각 노드에 대한 구성을 가져온 다음 노드 풀의 노드 간에 일관된 모든 구성 옵션이 해당 노드 풀 내의 모든 노드에 대한 구성을 나타내는 파일에 저장됩니다. 이렇게 하면 검사 결과의 정확성이 높아집니다.
기본 마스터
및 작업자
노드 풀 구성과 함께 이 기능을 사용하려면 추가 구성 변경이 필요하지 않습니다.
5.6.5.5. 사용자 정의 노드 풀 스캔 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator는 각 노드 풀 구성의 사본을 유지 관리하지 않습니다. Compliance Operator는 단일 노드 풀 내의 모든 노드에 대한 일관된 구성 옵션을 구성 파일의 하나의 사본으로 집계합니다. 그런 다음 Compliance Operator는 특정 노드 풀의 구성 파일을 사용하여 해당 풀 내의 노드에 대한 규칙을 평가합니다.
프로세스
ScanSettingBinding
CR에 저장될ScanSetting
오브젝트에예제
역할을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ScanSettingBinding
CR을 사용하는 검사를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Platform KubeletConfig 규칙은
Node/Proxy
오브젝트를 통해 확인합니다. 다음 명령을 실행하여 해당 규칙을 찾을 수 있습니다.oc get rules -o json | jq '.items[] | select(.checkType == "Platform") | select(.metadata.name | contains("ocp4-kubelet-")) | .metadata.name'
$ oc get rules -o json | jq '.items[] | select(.checkType == "Platform") | select(.metadata.name | contains("ocp4-kubelet-")) | .metadata.name'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.5.6. KubeletConfig 하위 풀 수정 링크 복사링크가 클립보드에 복사되었습니다!
KubeletConfig
수정 레이블은 MachineConfigPool
하위 풀에 적용할 수 있습니다.
프로세스
하위 풀
MachineConfigPool
CR에 라벨을 추가합니다.oc label mcp <sub-pool-name> pools.operator.machineconfiguration.openshift.io/<sub-pool-name>=
$ oc label mcp <sub-pool-name> pools.operator.machineconfiguration.openshift.io/<sub-pool-name>=
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.5.7. 수정 적용 링크 복사링크가 클립보드에 복사되었습니다!
부울 특성 spec.apply
는 Compliance Operator에서 수정을 적용해야 하는지를 제어합니다. 특성을 true
로 설정하면 수정을 적용할 수 있습니다.
oc -n openshift-compliance \ patch complianceremediations/<scan-name>-sysctl-net-ipv4-conf-all-accept-redirects \ --patch '{"spec":{"apply":true}}' --type=merge
$ oc -n openshift-compliance \
patch complianceremediations/<scan-name>-sysctl-net-ipv4-conf-all-accept-redirects \
--patch '{"spec":{"apply":true}}' --type=merge
Compliance Operator에서 적용된 수정을 처리하면 status.ApplicationState
특성이 Applied로 변경되거나 잘못된 경우 Error로 변경됩니다. 시스템 구성 수정이 적용되면 적용된 기타 모든 수정과 함께 해당 수정이 75-$scan-name-$suite-name
이라는 MachineConfig
오브젝트로 렌더링됩니다. 이후 Machine Config Operator에서 MachineConfig
오브젝트를 렌더링하고 마지막으로 각 노드에서 실행되는 머신 제어 데몬 인스턴스에서 머신 구성 풀의 모든 노드에 이 오브젝트를 적용합니다.
Machine Config Operator에서 새 MachineConfig
오브젝트를 풀의 노드에 적용하면 풀에 속하는 모든 노드가 재부팅됩니다. 이러한 방법은 복합적인 75-$scan-name-$suite-name
MachineConfig
오브젝트를 각각 다시 렌더링하는 수정을 여러 번 적용할 때 불편할 수 있습니다. 수정을 즉시 적용하지 않으려면 MachineConfigPool
오브젝트의 .spec.paused
특성을 true
로 설정하여 머신 구성 풀을 일시 중지하면 됩니다.
Compliance Operator는 수정을 자동으로 적용할 수 있습니다. ScanSetting
최상위 오브젝트에 autoApplyRemediations: true
를 설정합니다.
수정 사항 자동 적용은 신중하게 고려해야 합니다.
Compliance Operator는 수정 사이에 발생할 수 있는 종속성 문제를 자동으로 해결하지 않습니다. 정확한 결과를 보장하기 위해 수정을 적용한 후 다시 스캔해야 합니다.
5.6.5.8. 플랫폼 점검 수동 수정 링크 복사링크가 클립보드에 복사되었습니다!
플랫폼 검사에 대한 점검은 일반적으로 다음 두 가지 이유로 관리자가 수동으로 수정해야 합니다.
- 설정해야 하는 값을 자동으로 결정할 수 없는 경우가 있습니다. 검사 중 하나를 통해 허용된 레지스트리 목록을 제공해야 하지만 스캐너에서는 조직이 허용하려는 레지스트리를 알 수 없습니다.
-
다양한 점검에서 여러 API 오브젝트를 수정하므로 클러스터의 오브젝트를 수정하려면
root
또는 슈퍼 유저 액세스 권한을 가져오기 위해 자동 수정이 필요합니다. 이 방법은 바람직하지 않습니다.
프로세스
아래 예제에서는
ocp4-ocp-allowed-registries-for-import
규칙을 사용하며 기본 OpenShift Container Platform 설치에서 실패합니다.oc get rule.compliance/ocp4-ocp-allowed-registries-for-import -oyaml
규칙을 검사합니다. 이 규칙은allowedRegistriesForImport
특성을 설정하여 사용자가 이미지를 가져올 수 있는 레지스트리를 제한합니다. 규칙의 warning 특성에는 점검된 API 오브젝트도 표시되므로 이를 수정하고 문제를 해결할 수 있습니다.oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 검사를 다시 실행합니다.
oc -n openshift-compliance \ annotate compliancescans/rhcos4-e8-worker compliance.openshift.io/rescan=
$ oc -n openshift-compliance \ annotate compliancescans/rhcos4-e8-worker compliance.openshift.io/rescan=
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.5.9. 수정 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
새 버전의 규정 준수 콘텐츠를 사용하는 경우 이전 버전과 다른 새 버전의 수정을 제공할 수 있습니다. Compliance Operator는 이전 버전의 수정을 적용한 상태로 유지됩니다. OpenShift Container Platform 관리자에게는 검토하고 적용할 새 버전에 대한 알림이 제공됩니다. 이전에 적용되었지만 업데이트된 ComplianceRemediation 오브젝트는 상태가 Outdated로 변경됩니다. 오래된 오브젝트는 쉽게 검색할 수 있도록 레이블이 지정됩니다.
이전에 적용된 수정 내용은 ComplianceRemediation
오브젝트의 spec.outdated
특성에 저장되고 새로 업데이트된 내용은 spec.current
특성에 저장됩니다. 콘텐츠가 최신 버전으로 업데이트되면 관리자는 수정을 검토해야 합니다. spec.outdated
특성이 존재하는 동안에는 결과 MachineConfig
오브젝트를 렌더링하는 데 사용됩니다. spec.outdated
특성이 제거되면 Compliance Operator에서 결과 MachineConfig
오브젝트를 다시 렌더링하고 이로 인해 Operator에서 구성을 노드로 푸시합니다.
프로세스
오래된 수정을 검색합니다.
oc -n openshift-compliance get complianceremediations \ -l complianceoperator.openshift.io/outdated-remediation=
$ oc -n openshift-compliance get complianceremediations \ -l complianceoperator.openshift.io/outdated-remediation=
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATE workers-scan-no-empty-passwords Outdated
NAME STATE workers-scan-no-empty-passwords Outdated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 현재 적용된 수정은
Outdated
특성에 저장되고 적용되지 않은 새 수정은Current
특성에 저장됩니다. 새 버전에 만족한다면Outdated
필드를 제거하십시오. 업데이트된 콘텐츠를 유지하려면Current
및Outdated
특성을 제거하십시오.최신 버전의 수정을 적용합니다.
oc -n openshift-compliance patch complianceremediations workers-scan-no-empty-passwords \ --type json -p '[{"op":"remove", "path":/spec/outdated}]'
$ oc -n openshift-compliance patch complianceremediations workers-scan-no-empty-passwords \ --type json -p '[{"op":"remove", "path":/spec/outdated}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 수정 상태가
Outdated
에서Applied
로 전환됩니다.oc get -n openshift-compliance complianceremediations workers-scan-no-empty-passwords
$ oc get -n openshift-compliance complianceremediations workers-scan-no-empty-passwords
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATE workers-scan-no-empty-passwords Applied
NAME STATE workers-scan-no-empty-passwords Applied
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 노드에 최신 수정 버전이 적용되고 노드가 재부팅됩니다.
Compliance Operator는 수정 사이에 발생할 수 있는 종속성 문제를 자동으로 해결하지 않습니다. 정확한 결과를 보장하기 위해 수정을 적용한 후 다시 스캔해야 합니다.
5.6.5.10. 수정 적용 취소 링크 복사링크가 클립보드에 복사되었습니다!
이전에 적용한 수정을 적용 취소해야 할 수 있습니다.
프로세스
apply
플래그를false
로 설정합니다.oc -n openshift-compliance \ patch complianceremediations/rhcos4-moderate-worker-sysctl-net-ipv4-conf-all-accept-redirects \ --patch '{"spec":{"apply":false}}' --type=merge
$ oc -n openshift-compliance \ patch complianceremediations/rhcos4-moderate-worker-sysctl-net-ipv4-conf-all-accept-redirects \ --patch '{"spec":{"apply":false}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 수정 상태가
NotApplied
로 변경되고 복합MachineConfig
오브젝트가 수정을 포함하지 않도록 다시 렌더링됩니다.중요수정으로 영향을 받는 모든 노드가 재부팅됩니다.
Compliance Operator는 수정 사이에 발생할 수 있는 종속성 문제를 자동으로 해결하지 않습니다. 정확한 결과를 보장하기 위해 수정을 적용한 후 다시 스캔해야 합니다.
5.6.5.11. KubeletConfig 수정 제거 링크 복사링크가 클립보드에 복사되었습니다!
KubeletConfig
수정은 노드 수준 프로필에 포함되어 있습니다. KubeletConfig 수정을 제거하려면 KubeletConfig
오브젝트에서 수동으로 제거해야 합니다. 이 예에서는 one-rule-tp-node-kubelet-eviction-thresholds-set-hard-imagefs-available
수정의 규정 준수 검사를 제거하는 방법을 보여줍니다.
프로세스
one-rule-tp-node-master-kubelet-eviction-thresholds-set-hard-imagefs-available
수정의scan-name
및 컴플라이언스 검사를 찾습니다.oc -n openshift-compliance get remediation \ one-rule-tp-node-master-kubelet-eviction-thresholds-set-hard-imagefs-available -o yaml
$ oc -n openshift-compliance get remediation \ one-rule-tp-node-master-kubelet-eviction-thresholds-set-hard-imagefs-available -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고수정을 통해
evictionHard
kubelet 구성을 호출하는 경우 모든evictionHard
매개변수:memory.available
,nodefs.available
,nodefs.inodesFree
,imagefs.available
,imagefs.inodesFree
를 지정해야 합니다. 모든 매개변수를 지정하지 않으면 지정된 매개변수만 적용되고 수정이 제대로 작동하지 않습니다.수정을 제거합니다.
수정 오브젝트에 대해
apply
to false로 설정합니다.oc -n openshift-compliance patch \ complianceremediations/one-rule-tp-node-master-kubelet-eviction-thresholds-set-hard-imagefs-available \ -p '{"spec":{"apply":false}}' --type=merge
$ oc -n openshift-compliance patch \ complianceremediations/one-rule-tp-node-master-kubelet-eviction-thresholds-set-hard-imagefs-available \ -p '{"spec":{"apply":false}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow scan-name
을 사용하여 수정 사항이 적용된KubeletConfig
오브젝트를 찾습니다.oc -n openshift-compliance get kubeletconfig \ --selector compliance.openshift.io/scan-name=one-rule-tp-node-master
$ oc -n openshift-compliance get kubeletconfig \ --selector compliance.openshift.io/scan-name=one-rule-tp-node-master
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE compliance-operator-kubelet-master 2m34s
NAME AGE compliance-operator-kubelet-master 2m34s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KubeletConfig
오브젝트에서 수동으로 수정imagefs.available: 10%
를 제거합니다.oc edit -n openshift-compliance KubeletConfig compliance-operator-kubelet-master
$ oc edit -n openshift-compliance KubeletConfig compliance-operator-kubelet-master
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요수정으로 영향을 받는 모든 노드가 재부팅됩니다.
또한 수정을 자동으로 적용하는 맞춤형 프로필의 예약된 검사에서 규칙을 제외해야 합니다. 그러지 않으면 다음 스케줄링된 검사 중에 수정이 다시 적용됩니다.
5.6.5.12. 일관되지 않은 ComplianceScan 링크 복사링크가 클립보드에 복사되었습니다!
ScanSetting
오브젝트는 ScanSetting
또는 ScanSettingBinding
오브젝트에서 생성한 규정 준수 검사에서 검사할 노드 역할을 나열합니다. 각 노드 역할은 일반적으로 머신 구성 풀에 매핑됩니다.
머신 구성 풀의 모든 머신이 동일하고 풀에 있는 노드의 모든 검사 결과가 동일해야 합니다.
일부 결과가 다른 결과와 다른 경우 Compliance Operator는 일부 노드에서 INCONSISTENT
로 보고하는 ComplianceCheckResult
오브젝트에 플래그를 지정합니다. 또한 모든 ComplianceCheckResult
오브젝트에는 compliance.openshift.io/inconsistent-check
레이블이 지정됩니다.
풀의 머신 수가 상당히 많을 수 있기 때문에 Compliance Operator는 가장 일반적인 상태를 찾고 일반적인 상태와 다른 노드를 나열하려고 합니다. 가장 일반적인 상태는 compliance.openshift.io/most-common-status
주석에 저장되고 주석 compliance.openshift.io/inconsistent-source
에는 가장 일반적인 상태와 다른 점검 상태의 hostname:status
쌍이 포함됩니다. 일반적인 상태를 찾을 수 없는 경우 모든 hostname:status
쌍이 compliance.openshift.io/inconsistent-source annotation
에 나열됩니다.
가능한 경우 클러스터가 규정 준수 상태에 통합될 수 있도록 수정이 계속 생성됩니다. 그러나 이러한 통합이 항상 가능한 것은 아니며 노드 간 차이를 수동으로 수정해야 합니다. compliance.openshift.io/rescan=
옵션으로 검사에 주석을 달아 일관된 결과를 가져오도록 규정 준수 검사를 다시 실행해야 합니다.
oc -n openshift-compliance \ annotate compliancescans/rhcos4-e8-worker compliance.openshift.io/rescan=
$ oc -n openshift-compliance \
annotate compliancescans/rhcos4-e8-worker compliance.openshift.io/rescan=
5.6.6. 고급 Compliance Operator 작업 수행 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator에는 디버깅 또는 기존 툴과의 통합에 필요한 고급 사용자용 옵션이 포함되어 있습니다.
5.6.6.1. ComplianceSuite 및 ComplianceScan 오브젝트 직접 사용 링크 복사링크가 클립보드에 복사되었습니다!
사용자가 ScanSetting
및 ScanSettingBinding
오브젝트를 활용하여 모음과 검사를 정의하는 것이 바람직하지만 ComplianceSuite
오브젝트를 직접 정의하는 유효한 사용 사례가 있습니다.
-
검사할 단일 규칙만 지정합니다. 그러지 않으면 디버그 모드가 매우 상세하게 표시되는 경향이 있으므로 이 방법은 OpenSCAP 스캐너의 상세 수준을 높이는
debug: true
특성과 함께 디버깅하는 데 유용할 수 있습니다. 테스트를 하나의 규칙으로 제한하면 디버그 정보의 양을 줄이는 데 도움이 됩니다. - 사용자 정의 nodeSelector를 제공합니다. 수정을 적용하려면 nodeSelector가 풀과 일치해야 합니다.
- 맞춤 파일을 사용하여 맞춤형 구성 맵을 검사합니다.
- 번들의 프로파일을 구문 분석하는 오버헤드가 필요하지 않은 경우의 테스트 또는 개발에 해당합니다.
다음 예제에서는 단일 규칙으로만 작업자 머신을 검사하는 ComplianceSuite
를 보여줍니다.
위에서 언급한 ComplianceSuite
오브젝트 및 ComplianceScan
오브젝트는 여러 특성을 OpenSCAP에서 예상하는 형식으로 지정합니다.
프로필, 콘텐츠 또는 규칙 값을 찾으려면 ScanSetting
및 ScanSettingBinding
에서 유사한 모음을 생성하여 시작하거나 규칙 또는 프로필과 같이 ProfileBundle
오브젝트에서 구문 분석한 오브젝트를 검사하면 됩니다. 이러한 오브젝트에는 ComplianceSuite
에서 참조하는 데 사용할 수 있는 xccdf_org
식별자가 포함되어 있습니다.
5.6.6.2. ScanSetting 검사의 PriorityClass 설정 링크 복사링크가 클립보드에 복사되었습니다!
대규모 환경에서는 기본 PriorityClass
오브젝트가 너무 낮아 Pod가 시간 내에 검사를 실행할 수 있도록 할 수 있습니다. 컴플라이언스를 유지 관리하거나 자동화된 검사를 보장해야 하는 클러스터의 경우 Compliance Operator가 리소스 제한 상황에서 항상 우선 순위를 지정하도록 PriorityClass
변수를 설정하는 것이 좋습니다.
사전 요구 사항
-
선택 사항:
PriorityClass
오브젝트를 생성했습니다. 자세한 내용은 추가 리소스 의 "우선 순위 및 선점 구성"을 참조하십시오.
프로세스
PriorityClass
변수를 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ScanSetting
에서 참조하는PriorityClass
를 찾을 수 없는 경우 Operator는PriorityClass
를 비워 두고 경고를 발행하며PriorityClass
없이 계속 스케줄링 검사를 수행합니다.
5.6.6.3. 원시 맞춤형 프로필 사용 링크 복사링크가 클립보드에 복사되었습니다!
TailoredProfile
CR에서는 가장 일반적인 맞춤 작업을 수행할 수 있지만 XCCDF 표준을 사용하면 OpenSCAP 프로필 맞춤 시 유연성이 훨씬 더 향상됩니다. 또한 조직에서 이전에 OpenScap을 사용한 적이 있는 경우 기존 XCCDF 맞춤 파일이 있을 수 있으며 이 파일을 다시 사용할 수 있습니다.
ComplianceSuite
오브젝트에는 사용자 정의 맞춤 파일을 가리킬 수 있는 선택적 TailoringConfigMap
특성이 포함되어 있습니다. TailoringConfigMap
특성 값은 구성 맵의 이름으로, 이 맵에는 tailoring.xml
이라는 키가 포함되어야 하며 이 키의 값은 맞춤 콘텐츠입니다.
프로세스
파일에서
ConfigMap
오브젝트를 만듭니다.oc -n openshift-compliance \ create configmap nist-moderate-modified \ --from-file=tailoring.xml=/path/to/the/tailoringFile.xml
$ oc -n openshift-compliance \ create configmap nist-moderate-modified \ --from-file=tailoring.xml=/path/to/the/tailoringFile.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모음에 속하는 검사의 맞춤 파일을 참조합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.6.4. 재검사 수행 링크 복사링크가 클립보드에 복사되었습니다!
일반적으로 매주 월요일 또는 매일 등 정의된 일정에 따라 검사를 다시 실행하려고 할 것입니다. 노드 문제를 해결한 후 다시 한 번 검사를 실행하는 것도 유용할 수 있습니다. 단일 검사를 수행하려면 compliance.openshift.io/rescan=
옵션을 사용하여 검사에 주석을 답니다.
oc -n openshift-compliance \ annotate compliancescans/rhcos4-e8-worker compliance.openshift.io/rescan=
$ oc -n openshift-compliance \
annotate compliancescans/rhcos4-e8-worker compliance.openshift.io/rescan=
rescan은 rhcos-moderate
프로필에 대해 4개의 추가 mc
를 생성합니다.
oc get mc
$ oc get mc
출력 예
75-worker-scan-chronyd-or-ntpd-specify-remote-server 75-worker-scan-configure-usbguard-auditbackend 75-worker-scan-service-usbguard-enabled 75-worker-scan-usbguard-allow-hid-and-hub
75-worker-scan-chronyd-or-ntpd-specify-remote-server
75-worker-scan-configure-usbguard-auditbackend
75-worker-scan-service-usbguard-enabled
75-worker-scan-usbguard-allow-hid-and-hub
검사 설정 default-auto-apply
레이블이 적용되면 수정 사항이 자동으로 적용되고 오래된 수정 사항이 자동으로 업데이트됩니다. 종속 항목 또는 오래된 수정 사항으로 인해 적용되지 않은 업데이트 적용이 있는 경우 다시 검사하면 업데이트가 적용되고 재부팅이 트리거될 수 있습니다. MachineConfig
오브젝트를 사용하는 업데이트 적용만 재부팅을 트리거합니다. 적용할 업데이트 또는 종속 항목이 없는 경우 재부팅이 수행되지 않습니다.
5.6.6.5. 결과에 대한 사용자 정의 스토리지 크기 설정 링크 복사링크가 클립보드에 복사되었습니다!
ComplianceCheckResult
와 같은 사용자 정의 리소스는 검사한 모든 노드에서 집계한 한 번의 점검 결과를 나타내지만 스캐너에서 생성한 원시 결과를 검토하는 것이 유용할 수 있습니다. 원시 결과는 ARF 형식으로 생성되며 크기가 클 수 있습니다(노드당 수십 메가바이트). 따라서 etcd
키-값 저장소에서 지원하는 Kubernetes 리소스에 저장하는 것은 비현실적입니다. 대신 검사할 때마다 기본 크기가 1GB인 영구 볼륨(PV)이 생성됩니다. 환경에 따라 적절하게 PV 크기를 늘릴 수 있습니다. 크기를 늘리려면 ScanSetting
및 ComplianceScan
리소스 모두에 노출되는 rawResultStorage.size
특성을 사용하면 됩니다.
관련 매개변수는 rawResultStorage.rotation
으로, 이전 검사가 되풀이되기 전에 PV에 유지되는 검사 수를 조절합니다. 기본값은 3이며 되풀이 정책을 0으로 설정하면 되풀이가 비활성화됩니다. 기본 되풀이 정책과 원시 ARF 검사 보고서당 100MB의 추정치가 지정되면 환경에 적합한 PV 크기를 계산할 수 있습니다.
5.6.6.5.1. 사용자 정의 결과 스토리지 값 사용 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 다양한 퍼블릭 클라우드 또는 베어 메탈에 배포할 수 있으므로 Compliance Operator에서는 사용 가능한 스토리지 구성을 결정할 수 없습니다. 기본적으로 Compliance Operator는 클러스터의 기본 스토리지 클래스를 사용하여 결과를 저장하는 PV를 생성하지만 사용자 정의 스토리지 클래스는 rawResultStorage.StorageClassName
특성을 사용하여 구성할 수 있습니다.
클러스터에서 기본 스토리지 클래스를 지정하지 않는 경우 이 특성을 설정해야 합니다.
표준 스토리지 클래스를 사용하고 마지막 결과 10개를 유지하는 10GB 크기의 영구 볼륨을 만들도록 ScanSetting
사용자 정의 리소스를 구성합니다.
예제 ScanSetting
CR
5.6.6.6. 제품군 검사에서 생성된 수정 사항 적용 링크 복사링크가 클립보드에 복사되었습니다!
ComplianceSuite
오브젝트에서 autoApplyRemediations
부울 매개 변수를 사용할 수 있지만, 대신 compliance.openshift.io/apply-remediations
로 오브젝트에 주석을 달 수 있습니다. 이를 통해 Operator는 생성된 모든 수정 사항을 적용할 수 있습니다.
프로세스
-
다음을 실행하여
compliance.openshift.io/apply-remediations
주석을 적용합니다.
oc -n openshift-compliance \ annotate compliancesuites/workers-compliancesuite compliance.openshift.io/apply-remediations=
$ oc -n openshift-compliance \
annotate compliancesuites/workers-compliancesuite compliance.openshift.io/apply-remediations=
5.6.6.7. 수정 사항 자동 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
경우에 따라 최신 콘텐츠가 있는 검사에서 OUTDATED
로 업데이트 적용을 표시할 수 있습니다. 관리자는 compliance.openshift.io/remove-outdated
주석을 적용하여 새 업데이트를 적용하고 오래된 항목을 제거할 수 있습니다.
프로세스
-
compliance.openshift.io/remove-outdated
주석을 적용합니다.
oc -n openshift-compliance \ annotate compliancesuites/workers-compliancesuite compliance.openshift.io/remove-outdated=
$ oc -n openshift-compliance \
annotate compliancesuites/workers-compliancesuite compliance.openshift.io/remove-outdated=
또는 ScanSetting
또는 ComplianceSuite
오브젝트에 autoUpdateRemediations
플래그를 설정하여 수정 사항을 자동으로 업데이트합니다.
5.6.6.8. Compliance Operator에 대한 사용자 정의 SCC 생성 링크 복사링크가 클립보드에 복사되었습니다!
일부 환경에서는 Compliance Operator api-resource-collector
에서 올바른 권한을 사용할 수 있도록 사용자 정의 SCC(보안 컨텍스트 제약 조건) 파일을 생성해야 합니다.
사전 요구 사항
-
admin
권한이 있어야 합니다.
프로세스
이름이
restricted-adjusted-compliance.yaml
인 YAML 파일에 SCC를 정의합니다.SecurityContextConstraints
오브젝트 정의Copy to Clipboard Copied! Toggle word wrap Toggle overflow SCC를 생성합니다.
oc create -n openshift-compliance -f restricted-adjusted-compliance.yaml
$ oc create -n openshift-compliance -f restricted-adjusted-compliance.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
securitycontextconstraints.security.openshift.io/restricted-adjusted-compliance created
securitycontextconstraints.security.openshift.io/restricted-adjusted-compliance created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
SCC가 생성되었는지 확인합니다.
oc get -n openshift-compliance scc restricted-adjusted-compliance
$ oc get -n openshift-compliance scc restricted-adjusted-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME PRIV CAPS SELINUX RUNASUSER FSGROUP SUPGROUP PRIORITY READONLYROOTFS VOLUMES restricted-adjusted-compliance false <no value> MustRunAs MustRunAsRange MustRunAs RunAsAny 30 false ["configMap","downwardAPI","emptyDir","persistentVolumeClaim","projected","secret"]
NAME PRIV CAPS SELINUX RUNASUSER FSGROUP SUPGROUP PRIORITY READONLYROOTFS VOLUMES restricted-adjusted-compliance false <no value> MustRunAs MustRunAsRange MustRunAs RunAsAny 30 false ["configMap","downwardAPI","emptyDir","persistentVolumeClaim","projected","secret"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.7. Compliance Operator 검사 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 Compliance Operator 문제 해결 방법에 대해 설명합니다. 이 정보는 문제를 진단하거나 버그 보고서에 정보를 제공하는 데 유용할 수 있습니다. 몇 가지 일반적인 정보:
Compliance Operator는 중요한 일이 발생할 때 Kubernetes 이벤트를 생성합니다. 다음 명령을 사용하여 클러스터의 모든 이벤트를 볼 수 있습니다.
oc get events -n openshift-compliance
$ oc get events -n openshift-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 다음 명령을 사용하여 검사와 같은 오브젝트 이벤트를 볼 수 있습니다.
oc describe -n openshift-compliance compliancescan/cis-compliance
$ oc describe -n openshift-compliance compliancescan/cis-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compliance Operator는 대략 API 오브젝트당 하나씩 여러 개의 컨트롤러로 구성됩니다. 문제가 있는 API 오브젝트에 해당하는 컨트롤러만 필터링하는 것이 유용할 수 있습니다.
ComplianceRemediation
을 적용할 수 없는 경우remediationctrl
컨트롤러의 메시지를 확인하십시오.jq
를 사용하여 구문 분석하면 단일 컨트롤러의 메시지를 필터링할 수 있습니다.oc -n openshift-compliance logs compliance-operator-775d7bddbd-gj58f \ | jq -c 'select(.logger == "profilebundlectrl")'
$ oc -n openshift-compliance logs compliance-operator-775d7bddbd-gj58f \ | jq -c 'select(.logger == "profilebundlectrl")'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 타임스탬프는 UTC의 UNIX epoch 이후의 초로 기록됩니다. 사람이 읽을 수 있는 날짜로 변환하려면
date -d @timestamp --utc
를 사용하십시오. 예를 들면 다음과 같습니다.date -d @1596184628.955853 --utc
$ date -d @1596184628.955853 --utc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
많은 사용자 정의 리소스 중에서도 가장 중요한
ComplianceSuite
및ScanSetting
에서는debug
옵션을 설정할 수 있습니다. 이 옵션을 활성화하면 OpenSCAP 스캐너 Pod 및 기타 도우미 Pod의 상세 수준이 높아집니다. -
단일 규칙이 예기치 않게 통과 또는 실패하는 경우 해당 규칙만 사용하여 단일 스캔 또는 모음을 실행하고 해당
ComplianceCheckResult
오브젝트에서 규칙 ID를 찾은 후 이를Scan
CR에서rule
특성 값으로 사용하는 것이 도움이 될 수 있습니다. 그러면debug
옵션이 활성화된 상태에서 스캐너 Pod의scanner
컨테이너 로그에 원시 OpenSCAP 로그가 표시됩니다.
5.6.7.1. 검사 구조 링크 복사링크가 클립보드에 복사되었습니다!
다음 섹션에서는 Compliance Operator 검사의 구성 요소 및 단계를 간략하게 설명합니다.
5.6.7.1.1. 규정 준수 소스 링크 복사링크가 클립보드에 복사되었습니다!
규정 준수 콘텐츠는 ProfileBundle
오브젝트에서 생성되는 Profile
오브젝트에 저장됩니다. Compliance Operator는 클러스터와 클러스터 노드에 대해 각각 하나의 ProfileBundle
오브젝트를 생성합니다.
oc get -n openshift-compliance profilebundle.compliance
$ oc get -n openshift-compliance profilebundle.compliance
oc get -n openshift-compliance profile.compliance
$ oc get -n openshift-compliance profile.compliance
ProfileBundle
오브젝트는 Bundle
이라는 이름으로 레이블이 지정된 배포에서 처리합니다. Bundle
문제를 해결하려면 배포를 찾은 후 해당 배포에서 Pod 로그를 보면 됩니다.
oc logs -n openshift-compliance -lprofile-bundle=ocp4 -c profileparser
$ oc logs -n openshift-compliance -lprofile-bundle=ocp4 -c profileparser
oc get -n openshift-compliance deployments,pods -lprofile-bundle=ocp4
$ oc get -n openshift-compliance deployments,pods -lprofile-bundle=ocp4
oc logs -n openshift-compliance pods/<pod-name>
$ oc logs -n openshift-compliance pods/<pod-name>
oc describe -n openshift-compliance pod/<pod-name> -c profileparser
$ oc describe -n openshift-compliance pod/<pod-name> -c profileparser
5.6.7.1.2. ScanSetting 및 ScanSettingBinding 오브젝트 라이프사이클 및 디버깅 링크 복사링크가 클립보드에 복사되었습니다!
유효한 준수 콘텐츠 소스를 사용하면 높은 수준의 ScanSetting
및 ScanSettingBinding
오브젝트를 사용하여 ComplianceSuite
및 ComplianceScan
오브젝트를 생성할 수 있습니다.
ScanSetting
및 ScanSettingBinding
오브젝트는 모두 logger=scansettingbindingctrl
태그가 지정된 동일한 컨트롤러에서 처리합니다. 이러한 오브젝트에는 상태가 없습니다. 모든 문제는 이벤트 형식으로 전달됩니다.
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuiteCreated 9m52s scansettingbindingctrl ComplianceSuite openshift-compliance/my-companys-compliance-requirements created
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuiteCreated 9m52s scansettingbindingctrl ComplianceSuite openshift-compliance/my-companys-compliance-requirements created
이제 ComplianceSuite
오브젝트가 생성되었습니다. flow는 새로 생성된 ComplianceSuite
를 계속 조정합니다.
5.6.7.1.3. ComplianceSuite 사용자 정의 리소스 라이프사이클 및 디버깅 링크 복사링크가 클립보드에 복사되었습니다!
ComplianceSuite
CR은 ComplianceScan
관련 래퍼입니다. ComplianceSuite
CR은 logger=suitectrl
태그가 지정된 컨트롤러에서 처리합니다. 이 컨트롤러는 모음의 검사 생성을 처리하고 개별 검사 상태를 단일 모음 상태로 조정 및 집계합니다. 모음이 주기적으로 실행되도록 설정된 경우에는 초기 실행이 완료된 후 suitectrl
에서도 CronJob
CR 생성을 처리합니다.
oc get cronjobs
$ oc get cronjobs
출력 예
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE <cron_name> 0 1 * * * False 0 <none> 151m
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
<cron_name> 0 1 * * * False 0 <none> 151m
가장 중요한 문제의 경우 이벤트가 생성됩니다. oc describe compliancesuites/<name>
으로 문제를 확인하십시오. Suite
오브젝트에는 이 모음에 속한 Scan
오브젝트에서 Status
하위 리소스를 업데이트할 때 업데이트되는 Status
하위 리소스도 있습니다. 예상되는 모든 검사가 생성되면 제어가 검사 컨트롤러로 전달됩니다.
5.6.7.1.4. ComplianceScan 사용자 정의 리소스 라이프사이클 및 디버깅 링크 복사링크가 클립보드에 복사되었습니다!
ComplianceScan
CR은 scanctrl
컨트롤러에 의해 처리됩니다. 여기에서 실제 검사가 발생하고 검사 결과가 생성됩니다. 각 검사는 여러 단계를 거칩니다.
5.6.7.1.4.1. 보류 단계 링크 복사링크가 클립보드에 복사되었습니다!
이 단계에서는 검사의 정확성을 확인합니다. 스토리지 크기와 같은 일부 매개변수가 잘못된 경우 검사가 ‘오류와 함께 완료’ 결과로 전환되고, 그러지 않으면 시작 단계가 진행됩니다.
5.6.7.1.4.2. 시작 단계 링크 복사링크가 클립보드에 복사되었습니다!
이 단계에서는 스캐너 Pod에 대한 환경이나 스캐너 Pod를 평가할 스크립트를 직접 포함하는 여러 구성 맵이 있습니다. 구성 맵을 나열합니다.
oc -n openshift-compliance get cm \ -l compliance.openshift.io/scan-name=rhcos4-e8-worker,complianceoperator.openshift.io/scan-script=
$ oc -n openshift-compliance get cm \
-l compliance.openshift.io/scan-name=rhcos4-e8-worker,complianceoperator.openshift.io/scan-script=
이러한 구성 맵은 스캐너 Pod에서 사용합니다. 스캐너 동작을 수정하거나 스캐너 디버그 수준을 변경하거나 원시 결과를 출력해야 하는 경우 구성 맵을 수정하는 것이 좋습니다. 이후 원시 ARF 결과를 저장하기 위해 검사별 영구 볼륨 클레임이 생성됩니다.
oc get pvc -n openshift-compliance -lcompliance.openshift.io/scan-name=rhcos4-e8-worker
$ oc get pvc -n openshift-compliance -lcompliance.openshift.io/scan-name=rhcos4-e8-worker
PVC는 검사별 ResultServer
배포로 마운트됩니다. ResultServer
는 개별 스캐너 Pod에서 전체 ARF 결과를 업로드하는 간단한 HTTP 서버입니다. 각 서버는 다른 노드에서 실행될 수 있습니다. 전체 ARF 결과는 매우 클 수 있으며 동시에 여러 노드에서 마운트할 수 있는 볼륨을 생성할 수 있다고 가정해서는 안 됩니다. 검사가 완료되면 ResultServer
배포가 축소됩니다. 원시 결과가 있는 PVC는 다른 사용자 정의 Pod에서 마운트할 수 있으며 결과를 가져오거나 검사할 수 있습니다. 스캐너 Pod와 ResultServer
간 트래픽은 상호 TLS 프로토콜로 보호됩니다.
마지막으로 이 단계에서는 스캐너 Pod가 시작되는데, Platform
검사 인스턴스용 스캐너 Pod 1개와 node
검사 인스턴스에 일치하는 노드당 스캐너 Pod 1개입니다. 노드별 Pod는 노드 이름으로 레이블이 지정됩니다. 각 Pod는 항상 ComplianceScan
이라는 이름으로 레이블이 지정됩니다.
oc get pods -lcompliance.openshift.io/scan-name=rhcos4-e8-worker,workload=scanner --show-labels
$ oc get pods -lcompliance.openshift.io/scan-name=rhcos4-e8-worker,workload=scanner --show-labels
출력 예
NAME READY STATUS RESTARTS AGE LABELS rhcos4-e8-worker-ip-10-0-169-90.eu-north-1.compute.internal-pod 0/2 Completed 0 39m compliance.openshift.io/scan-name=rhcos4-e8-worker,targetNode=ip-10-0-169-90.eu-north-1.compute.internal,workload=scanner
NAME READY STATUS RESTARTS AGE LABELS
rhcos4-e8-worker-ip-10-0-169-90.eu-north-1.compute.internal-pod 0/2 Completed 0 39m compliance.openshift.io/scan-name=rhcos4-e8-worker,targetNode=ip-10-0-169-90.eu-north-1.compute.internal,workload=scanner
그런 다음 검사가 실행 중 단계로 진행됩니다.
5.6.7.1.4.3. 실행 단계 링크 복사링크가 클립보드에 복사되었습니다!
실행 단계는 스캐너 Pod가 종료될 때까지 대기합니다. 다음은 실행 단계에서 사용되는 용어 및 프로세스입니다.
-
init container:
content-container
라는 하나의 init 컨테이너가 있습니다. contentImage 컨테이너를 실행하고 이 Pod의 다른 컨테이너와 공유하는/content
디렉터리에 contentFile을 복사하는 단일 명령을 실행합니다. -
scanner: 이 컨테이너는 검사를 실행합니다. 노드 검사의 경우 컨테이너는 노드 파일 시스템을
/host
로 마운트하고 init 컨테이너에서 제공하는 콘텐츠를 마운트합니다. 컨테이너는 또한 시작 단계에서 생성된entrypoint
ConfigMap
을 마운트하고 실행합니다. 진입점ConfigMap
의 기본 스크립트는 OpenSCAP을 실행하고 Pod 컨테이너 간 공유하는/results
디렉터리에 결과 파일을 저장합니다. 이 Pod의 로그를 보고 OpenSCAP 스캐너에서 점검한 사항을 확인할 수 있습니다. 더 자세한 출력 내용은debug
플래그를 사용하여 볼 수 있습니다. logcollector: logcollector 컨테이너는 스캐너 컨테이너가 종료될 때까지 대기합니다. 그런 다음 전체 ARF 결과를
ResultServer
에 업로드하고 XCCDF 결과를 검사 결과 및 OpenSCAP 결과 코드와 함께ConfigMap
으로 별도로 업로드합니다. 이러한 결과 구성 맵은 검사 이름(compliance.openshift.io/scan-name=rhcos4-e8-worker
)으로 레이블이 지정됩니다.oc describe cm/rhcos4-e8-worker-ip-10-0-169-90.eu-north-1.compute.internal-pod
$ oc describe cm/rhcos4-e8-worker-ip-10-0-169-90.eu-north-1.compute.internal-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Platform
검사를 위한 스캐너 Pod는 다음을 제외하고 비슷합니다.
-
api-resource-collector
라는 하나의 추가 init 컨테이너가 있습니다. 이 컨테이너는 content-container init 컨테이너에서 제공하는 OpenSCAP 콘텐츠를 읽고, 해당 콘텐츠에서 검사해야 하는 API 리소스를 파악한 후scanner
컨테이너에서 이러한 API 리소스를 읽는 공유 디렉터리에 저장합니다. -
scanner
컨테이너는 호스트 파일 시스템을 마운트할 필요가 없습니다.
스캐너 Pod가 완료되면 검사가 집계 단계로 이동합니다.
5.6.7.1.4.4. 집계 단계 링크 복사링크가 클립보드에 복사되었습니다!
검사 컨트롤러는 집계 단계에서 집계기 Pod라는 또 다른 Pod를 생성합니다. 그 목적은 결과 ConfigMap
오브젝트를 가져와서 결과를 읽고 각 점검 결과에 해당하는 Kubernetes 오브젝트를 만드는 것입니다. 점검 실패를 자동으로 수정할 수 있는 경우 ComplianceRemediation
오브젝트가 생성됩니다. 또한 집계기 Pod는 사람이 읽을 수 있는 점검 및 수정용 메타데이터를 제공하기 위해 init 컨테이너를 사용하여 OpenSCAP 콘텐츠도 마운트합니다.
집계기 Pod에서 구성 맵을 처리하면 구성 맵에 compliance-remediations/processed
라는 레이블이 지정됩니다. 이 단계의 결과는 ComplianceCheckResult
오브젝트
oc get compliancecheckresults -lcompliance.openshift.io/scan-name=rhcos4-e8-worker
$ oc get compliancecheckresults -lcompliance.openshift.io/scan-name=rhcos4-e8-worker
출력 예
NAME STATUS SEVERITY rhcos4-e8-worker-accounts-no-uid-except-zero PASS high rhcos4-e8-worker-audit-rules-dac-modification-chmod FAIL medium
NAME STATUS SEVERITY
rhcos4-e8-worker-accounts-no-uid-except-zero PASS high
rhcos4-e8-worker-audit-rules-dac-modification-chmod FAIL medium
및 ComplianceRemediation
오브젝트입니다.
oc get complianceremediations -lcompliance.openshift.io/scan-name=rhcos4-e8-worker
$ oc get complianceremediations -lcompliance.openshift.io/scan-name=rhcos4-e8-worker
출력 예
이러한 CR이 생성되면 집계기 Pod가 종료되고 검사가 완료 단계로 전환됩니다.
5.6.7.1.4.5. 완료 단계 링크 복사링크가 클립보드에 복사되었습니다!
최종 검사 단계에서는 필요한 경우 검사 리소스가 정리되고 ResultServer
배포가 축소되거나(검사가 1회인 경우) 삭제됩니다(검사가 계속되는 경우). 삭제하는 경우 다음 검사 인스턴스에서 배포를 다시 생성합니다.
또한 주석을 달아 완료 단계에서 검사 재실행을 트리거할 수도 있습니다.
oc -n openshift-compliance \ annotate compliancescans/rhcos4-e8-worker compliance.openshift.io/rescan=
$ oc -n openshift-compliance \
annotate compliancescans/rhcos4-e8-worker compliance.openshift.io/rescan=
autoApplyRemediations: true
를 사용하여 수정을 자동 적용하도록 설정하지 않으면 검사가 완료 단계에 도달한 후 자체적으로 수행되는 작업이 없습니다. OpenShift Container Platform 관리자가 수정 사항을 검토하고 필요에 따라 적용합니다. 수정을 자동 적용하도록 설정하면 완료 단계에서 ComplianceSuite
컨트롤러에 설정이 전달되고, 이 컨트롤러에서 검사가 매핑되는 머신 구성 풀을 일시 중지한 후 모든 수정을 한 번에 적용합니다. 수정은 ComplianceRemediation
컨트롤러에서 대신 적용합니다.
5.6.7.1.5. ComplianceRemediation 컨트롤러 라이프사이클 및 디버깅 링크 복사링크가 클립보드에 복사되었습니다!
예제 검사에서 몇 가지 결과가 보고되었습니다. apply
특성을 true
로 전환하여 수정 중 하나를 활성화할 수 있습니다.
oc patch complianceremediations/rhcos4-e8-worker-audit-rules-dac-modification-chmod --patch '{"spec":{"apply":true}}' --type=merge
$ oc patch complianceremediations/rhcos4-e8-worker-audit-rules-dac-modification-chmod --patch '{"spec":{"apply":true}}' --type=merge
ComplianceRemediation
컨트롤러(logger=remediationctrl
)는 수정된 오브젝트를 조정합니다. 조정으로 인해 조정된 수정 오브젝트의 상태가 변경될 뿐만 아니라 적용된 모든 수정이 포함되는 렌더링된 모음별 MachineConfig
오브젝트도 변경됩니다.
MachineConfig
오브젝트는 항상 75-
로 시작하며 검사 및 모음 이름을 따서 이름이 지정됩니다.
oc get mc | grep 75-
$ oc get mc | grep 75-
출력 예
75-rhcos4-e8-worker-my-companys-compliance-requirements 3.2.0 2m46s
75-rhcos4-e8-worker-my-companys-compliance-requirements 3.2.0 2m46s
현재 mc
가 구성되어 있는 수정이 머신 구성의 주석에 나열됩니다.
oc describe mc/75-rhcos4-e8-worker-my-companys-compliance-requirements
$ oc describe mc/75-rhcos4-e8-worker-my-companys-compliance-requirements
출력 예
Name: 75-rhcos4-e8-worker-my-companys-compliance-requirements Labels: machineconfiguration.openshift.io/role=worker Annotations: remediation/rhcos4-e8-worker-audit-rules-dac-modification-chmod:
Name: 75-rhcos4-e8-worker-my-companys-compliance-requirements
Labels: machineconfiguration.openshift.io/role=worker
Annotations: remediation/rhcos4-e8-worker-audit-rules-dac-modification-chmod:
ComplianceRemediation
컨트롤러 알고리즘은 다음과 같이 작동합니다.
- 현재 적용된 모든 수정은 초기 수정 세트로 해석됩니다.
- 조정된 수정을 적용해야 하는 경우 이 세트에 추가됩니다.
-
MachineConfig
오브젝트는 해당 세트에서 렌더링되고 세트의 수정 이름으로 주석이 달립니다. 세트가 비어 있는 경우(마지막 수정이 적용되지 않음) 렌더링된MachineConfig
오브젝트가 제거됩니다. - 렌더링된 머신 구성이 클러스터에 이미 적용된 구성과 다른 경우에만 적용된 MC가 업데이트되거나 생성 또는 삭제됩니다.
-
MachineConfig
오브젝트를 생성하거나 수정하면machineconfiguration.openshift.io/role
레이블과 일치하는 노드의 재부팅이 트리거됩니다. 자세한 내용은 Machine Config Operator 설명서를 참조하십시오.
필요한 경우 렌더링된 머신 구성을 업데이트하고 조정된 수정 오브젝트 상태를 업데이트하면 수정 루프가 종료됩니다. 예제의 경우 수정을 적용하면 재부팅이 트리거됩니다. 재부팅 후 검사에 주석을 달아 다시 실행합니다.
oc -n openshift-compliance \ annotate compliancescans/rhcos4-e8-worker compliance.openshift.io/rescan=
$ oc -n openshift-compliance \
annotate compliancescans/rhcos4-e8-worker compliance.openshift.io/rescan=
검사가 실행되고 완료됩니다. 전달할 수정을 확인합니다.
oc -n openshift-compliance \ get compliancecheckresults/rhcos4-e8-worker-audit-rules-dac-modification-chmod
$ oc -n openshift-compliance \
get compliancecheckresults/rhcos4-e8-worker-audit-rules-dac-modification-chmod
출력 예
NAME STATUS SEVERITY rhcos4-e8-worker-audit-rules-dac-modification-chmod PASS medium
NAME STATUS SEVERITY
rhcos4-e8-worker-audit-rules-dac-modification-chmod PASS medium
5.6.7.1.6. 유용한 레이블 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator에서 생성하는 각 Pod는 특별히 해당 Pod가 속하는 검사와 수행하는 작업을 사용하여 레이블이 지정됩니다. 검사 식별자는 compliance.openshift.io/scan-name
으로 레이블이 지정됩니다. 워크로드 식별자는 workload
로 레이블이 지정됩니다.
Compliance Operator는 다음 워크로드를 예약합니다.
- scanner: 적합성 검사를 수행합니다.
- resultserver: 준수 검사에 대한 원시 결과를 저장합니다.
- aggregator: 결과를 집계하고, 불일치를 감지하고, 결과 오브젝트를 출력합니다(검사 결과 및 수정).
- suitererunner: 재실행할 모음에 태그를 지정합니다(일정이 설정된 경우).
- profileparser: 데이터 스트림을 구문 분석하고 적절한 프로필, 규칙, 변수를 만듭니다.
특정 워크로드에 디버깅 및 로그가 필요한 경우 다음을 실행합니다.
oc logs -l workload=<workload_name> -c <container_name>
$ oc logs -l workload=<workload_name> -c <container_name>
5.6.7.2. Compliance Operator 리소스 제한 증가 링크 복사링크가 클립보드에 복사되었습니다!
경우에 따라 Compliance Operator에 기본 제한에서 허용하는 것보다 더 많은 메모리가 필요할 수 있습니다. 이 문제를 완화하는 가장 좋은 방법은 사용자 정의 리소스 제한을 설정하는 것입니다.
스캐너 Pod의 기본 메모리 및 CPU 제한을 늘리려면 'ScanSetting' 사용자 정의 리소스 를 참조하십시오.
프로세스
Operator의 메모리 제한을 500Mi로 늘리려면
co-memlimit-patch.yaml
이라는 다음 패치 파일을 생성합니다.spec: config: resources: limits: memory: 500Mi
spec: config: resources: limits: memory: 500Mi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 패치 파일을 적용합니다.
oc patch sub compliance-operator -nopenshift-compliance --patch-file co-memlimit-patch.yaml --type=merge
$ oc patch sub compliance-operator -nopenshift-compliance --patch-file co-memlimit-patch.yaml --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.7.3. Operator 리소스 제약 조건 구성 링크 복사링크가 클립보드에 복사되었습니다!
resources
필드는 OLM(Operator Lifecycle Manager)에서 생성한 Pod의 모든 컨테이너에 대한 리소스 제약 조건을 정의합니다.
이 프로세스에 적용된 리소스 제약 조건은 기존 리소스 제약 조건을 덮어씁니다.
프로세스
Subscription
오브젝트를 편집하여 0.25 cpu 및 64 Mi의 메모리 요청을 삽입하고 각 컨테이너에 0.5 cpu 및 128 Mi의 메모리 제한을 삽입합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.7.4. ScanSetting 리소스 구성 링크 복사링크가 클립보드에 복사되었습니다!
500개 이상의 MachineConfig가 포함된 클러스터에서 Compliance Operator를 사용하는 경우 플랫폼
검사를 수행할 때 ocp4-pci-dss-api-checks-pod
Pod가 init
단계에서 일시 중지될 수 있습니다.
이 프로세스에 적용된 리소스 제약 조건은 기존 리소스 제약 조건을 덮어씁니다.
프로세스
ocp4-pci-dss-api-checks-pod
Pod가Init:OOMKilled
상태에 있는지 확인합니다.oc get pod ocp4-pci-dss-api-checks-pod -w
$ oc get pod ocp4-pci-dss-api-checks-pod -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE ocp4-pci-dss-api-checks-pod 0/2 Init:1/2 8 (5m56s ago) 25m ocp4-pci-dss-api-checks-pod 0/2 Init:OOMKilled 8 (6m19s ago) 26m
NAME READY STATUS RESTARTS AGE ocp4-pci-dss-api-checks-pod 0/2 Init:1/2 8 (5m56s ago) 25m ocp4-pci-dss-api-checks-pod 0/2 Init:OOMKilled 8 (6m19s ago) 26m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ScanSetting
CR에서scanLimits
속성을 편집하여ocp4-pci-dss-api-checks-pod
Pod에 사용 가능한 메모리를 늘립니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 기본 설정은
500Mi
입니다.
ScanSetting
CR을 클러스터에 적용합니다.oc apply -f scansetting.yaml
$ oc apply -f scansetting.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.7.5. ScanSetting 시간 초과 구성 링크 복사링크가 클립보드에 복사되었습니다!
ScanSetting
오브젝트에는 1h30m
과 같은 기간 문자열로 ComplianceScanSetting
오브젝트에 지정할 수 있는 시간 초과 옵션이 있습니다. 지정된 시간 초과 내에 검사가 완료되지 않으면 maxRetryOnTimeout
제한에 도달할 때까지 검사 다시 시도합니다.
5.6.7.6. 지원 요청 링크 복사링크가 클립보드에 복사되었습니다!
이 문서에 설명된 절차 또는 일반적으로 OpenShift Container Platform에 문제가 발생하는 경우 Red Hat 고객 포털에 액세스하십시오.
고객 포털에서 다음을 수행할 수 있습니다.
- Red Hat 제품과 관련된 기사 및 솔루션에 대한 Red Hat 지식베이스를 검색하거나 살펴볼 수 있습니다.
- Red Hat 지원에 대한 지원 케이스 제출할 수 있습니다.
- 다른 제품 설명서에 액세스 가능합니다.
클러스터 문제를 식별하기 위해 OpenShift Cluster Manager 에서 Insights를 사용할 수 있습니다. Insights는 문제에 대한 세부 정보 및 문제 해결 방법에 대한 정보를 제공합니다.
이 문서를 개선하기 위한 제안이 있거나 오류를 발견한 경우 가장 관련 문서 구성 요소에 대해 Jira 문제를 제출합니다. 섹션 이름 및 OpenShift Container Platform 버전과 같은 구체적인 정보를 제공합니다.
5.6.8. oc-compliance 플러그인 사용 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator 는 클러스터에 대한 많은 검사 및 수정을 자동화하지만 클러스터를 규정 준수 상태로 전환하려면 관리자가 Compliance Operator API 및 기타 구성 요소와 상호 작용해야 하는 경우가 많습니다. oc-compliance
플러그인을 사용하면 프로세스를 더 쉽게 수행할 수 있습니다.
5.6.8.1. oc-compliance 플러그인 설치 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
oc-compliance
이미지를 추출하여oc-compliance
바이너리를 가져옵니다.podman run --rm -v ~/.local/bin:/mnt/out:Z registry.redhat.io/compliance/oc-compliance-rhel8:stable /bin/cp /usr/bin/oc-compliance /mnt/out/
$ podman run --rm -v ~/.local/bin:/mnt/out:Z registry.redhat.io/compliance/oc-compliance-rhel8:stable /bin/cp /usr/bin/oc-compliance /mnt/out/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
W0611 20:35:46.486903 11354 manifest.go:440] Chose linux/amd64 manifest from the manifest list.
W0611 20:35:46.486903 11354 manifest.go:440] Chose linux/amd64 manifest from the manifest list.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이제
oc-compliance
를 실행할 수 있습니다.
5.6.8.2. 원시 결과 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
규정 준수 검사가 완료되면 결과 ComplianceCheckResult
CR(사용자 정의 리소스)에 개별 검사 결과가 나열됩니다. 그러나 관리자 또는 감사자는 검사에 대한 전체 세부 정보가 필요할 수 있습니다. OpenSCAP 툴은 자세한 결과를 사용하여 AMQP(Advanced Recording Format) 포맷 파일을 생성합니다. 이 ARF 파일은 구성 맵 또는 기타 표준 Kubernetes 리소스에 저장하기에 너무 크므로 이를 포함할 영구 볼륨(PV)이 생성됩니다.
프로세스
Compliance Operator를 사용하여 PV에서 결과를 가져오는 작업은 4단계 프로세스입니다. 그러나
oc-compliance
플러그인을 사용하면 단일 명령을 사용할 수 있습니다.oc compliance fetch-raw <object-type> <object-name> -o <output-path>
$ oc compliance fetch-raw <object-type> <object-name> -o <output-path>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<object-type>
은 검사가 시작된 오브젝트에 따라scansettingbinding
,compliancescan
또는compliancesuite
일 수 있습니다. <object-name>
은 ARF 파일을 수집할 바인딩, 제품군 또는 검사 오브젝트의 이름이고<output-path>
는 결과를 배치할 로컬 디렉터리입니다.예를 들면 다음과 같습니다.
oc compliance fetch-raw scansettingbindings my-binding -o /tmp/
$ oc compliance fetch-raw scansettingbindings my-binding -o /tmp/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
디렉터리에서 파일 목록을 확인합니다.
ls /tmp/ocp4-cis-node-master/
$ ls /tmp/ocp4-cis-node-master/
출력 예
ocp4-cis-node-master-ip-10-0-128-89.ec2.internal-pod.xml.bzip2 ocp4-cis-node-master-ip-10-0-150-5.ec2.internal-pod.xml.bzip2 ocp4-cis-node-master-ip-10-0-163-32.ec2.internal-pod.xml.bzip2
ocp4-cis-node-master-ip-10-0-128-89.ec2.internal-pod.xml.bzip2 ocp4-cis-node-master-ip-10-0-150-5.ec2.internal-pod.xml.bzip2 ocp4-cis-node-master-ip-10-0-163-32.ec2.internal-pod.xml.bzip2
결과를 추출합니다.
bunzip2 -c resultsdir/worker-scan/worker-scan-stage-459-tqkg7-compute-0-pod.xml.bzip2 > resultsdir/worker-scan/worker-scan-ip-10-0-170-231.us-east-2.compute.internal-pod.xml
$ bunzip2 -c resultsdir/worker-scan/worker-scan-stage-459-tqkg7-compute-0-pod.xml.bzip2 > resultsdir/worker-scan/worker-scan-ip-10-0-170-231.us-east-2.compute.internal-pod.xml
결과를 확인합니다.
ls resultsdir/worker-scan/
$ ls resultsdir/worker-scan/
출력 예
worker-scan-ip-10-0-170-231.us-east-2.compute.internal-pod.xml worker-scan-stage-459-tqkg7-compute-0-pod.xml.bzip2 worker-scan-stage-459-tqkg7-compute-1-pod.xml.bzip2
worker-scan-ip-10-0-170-231.us-east-2.compute.internal-pod.xml
worker-scan-stage-459-tqkg7-compute-0-pod.xml.bzip2
worker-scan-stage-459-tqkg7-compute-1-pod.xml.bzip2
5.6.8.3. 검사 재실행 링크 복사링크가 클립보드에 복사되었습니다!
예약된 작업으로 스캔을 실행할 수 있지만 수정을 적용한 후 또는 클러스터에 대한 기타 변경이 이루어진 경우 필요에 따라 검사를 다시 실행해야 합니다.
프로세스
Compliance Operator를 사용하여 검사를 다시 실행하려면 검사 오브젝트에서 주석을 사용해야 합니다. 그러나
oc-compliance
플러그인을 사용하면 단일 명령으로 검사를 재실행할 수 있습니다.my-binding
:이라는ScanSettingBinding
오브젝트에 대한 검사를 재실행하려면 다음 명령을 입력합니다.oc compliance rerun-now scansettingbindings my-binding
$ oc compliance rerun-now scansettingbindings my-binding
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Rerunning scans from 'my-binding': ocp4-cis Re-running scan 'openshift-compliance/ocp4-cis'
Rerunning scans from 'my-binding': ocp4-cis Re-running scan 'openshift-compliance/ocp4-cis'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.8.4. ScanSettingBinding 사용자 정의 리소스 사용 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator에서 제공하는 ScanSetting
및 ScanSettingBinding
CR(사용자 정의 리소스)을 사용하는 경우 schedule
, machine roles
, tolerations
등과 같은 공통 검사 옵션 세트를 사용하는 동안 여러 프로필 검사를 실행할 수 있습니다. 여러 ComplianceSuite
또는 ComplianceScan
오브젝트로 작업하는 것보다 쉽지만 새로운 사용자를 혼란스럽게 할 수 있습니다.
oc compliance bind
하위 명령은 ScanSettingBinding
CR을 생성하는 데 도움이 됩니다.
프로세스
다음을 실행합니다.
oc compliance bind [--dry-run] -N <binding name> [-S <scansetting name>] <objtype/objname> [..<objtype/objname>]
$ oc compliance bind [--dry-run] -N <binding name> [-S <scansetting name>] <objtype/objname> [..<objtype/objname>]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-S
플래그를 생략하면 Compliance Operator에서 제공하는default
검사 설정이 사용됩니다. -
오브젝트 유형은 Kubernetes 오브젝트 유형으로
profile
또는tailoredprofile
일 수 있습니다. 두 개 이상의 오브젝트를 제공할 수 있습니다. -
오브젝트 이름은 Kubernetes 리소스의 이름입니다 (예:
.metadata.name
). --dry-run
옵션을 추가하여 생성된 오브젝트의 YAML 파일을 표시합니다.예를 들어 다음 프로필 및 검사 설정이 제공됩니다.
oc get profile.compliance -n openshift-compliance
$ oc get profile.compliance -n openshift-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get scansettings -n openshift-compliance
$ oc get scansettings -n openshift-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE default 10m default-auto-apply 10m
NAME AGE default 10m default-auto-apply 10m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
default
설정을ocp4-cis
및ocp4-cis-node
프로필에 적용하려면 다음을 실행합니다.oc compliance bind -N my-binding profile/ocp4-cis profile/ocp4-cis-node
$ oc compliance bind -N my-binding profile/ocp4-cis profile/ocp4-cis-node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Creating ScanSettingBinding my-binding
Creating ScanSettingBinding my-binding
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ScanSettingBinding
CR이 생성되면 바인딩된 프로파일은 관련 설정으로 두 프로필의 스캔을 시작합니다. 전반적으로 이것은 Compliance Operator로 스캔을 시작하는 가장 빠른 방법입니다.
5.6.8.5. 인쇄 제어 링크 복사링크가 클립보드에 복사되었습니다!
컴플라이언스 표준은 일반적으로 다음과 같이 계층 구조로 구성됩니다.
- 벤치마크는 특정 표준에 대한 제어 집합의 최상위 정의입니다. 예를 들어 FedRAMP Moderate 또는 Center for Internet Security (CIS) v.1.6.0입니다.
- 제어는 벤치마크를 준수하기 위해 충족되어야 하는 일련의 요구 사항을 설명합니다. 예: FedRAMP AC-01(액세스 제어 정책 및 절차)
- 규칙은 규정을 준수하는 시스템에 특정한 단일 검사이며 이러한 규칙 중 하나 이상이 제어에 매핑됩니다.
- Compliance Operator는 단일 벤치마크의 프로필로 규칙 그룹화를 처리합니다. 프로필의 규칙 집합이 충족되도록 제어하는 것을 결정하기 어려울 수 있습니다.
프로세스
oc compliance
control
하위 명령은 표준에 대한 보고서를 제공하고 지정된 프로필이 충족되도록 제어합니다.oc compliance controls profile ocp4-cis-node
$ oc compliance controls profile ocp4-cis-node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.8.6. 컴플라이언스 수정 세부 정보 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator는 클러스터를 준수하는 데 필요한 변경 사항을 자동화하는 데 사용되는 수정 오브젝트를 제공합니다. fetch-fixes
하위 명령은 어떤 구성 수정이 사용되는지 정확하게 이해하는 데 도움이 될 수 있습니다. fetch-fixes
하위 명령을 사용하여 프로필, 규칙 또는 ComplianceRemediation
오브젝트에서 검사할 디렉터리로 수정 오브젝트를 추출합니다.
프로세스
프로필의 수정을 확인합니다.
oc compliance fetch-fixes profile ocp4-cis -o /tmp
$ oc compliance fetch-fixes profile ocp4-cis -o /tmp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 규칙을 자동으로 수정할 수 없거나 수정이 제공되지 않았기 때문에 프로필에 해당 수정 조치가 없는 규칙이 있을 때마다
No fixes to persist
경고가 예상됩니다.
YAML 파일의 샘플을 볼 수 있습니다.
head
명령은 처음 10행을 표시합니다.head /tmp/ocp4-api-server-audit-log-maxsize.yaml
$ head /tmp/ocp4-api-server-audit-log-maxsize.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 검사 후 생성된
ComplianceRemediation
오브젝트에서 수정을 확인합니다.oc get complianceremediations -n openshift-compliance
$ oc get complianceremediations -n openshift-compliance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATE ocp4-cis-api-server-encryption-provider-cipher NotApplied ocp4-cis-api-server-encryption-provider-config NotApplied
NAME STATE ocp4-cis-api-server-encryption-provider-cipher NotApplied ocp4-cis-api-server-encryption-provider-config NotApplied
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc compliance fetch-fixes complianceremediations ocp4-cis-api-server-encryption-provider-cipher -o /tmp
$ oc compliance fetch-fixes complianceremediations ocp4-cis-api-server-encryption-provider-cipher -o /tmp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Persisted compliance remediation fix to /tmp/ocp4-cis-api-server-encryption-provider-cipher.yaml
Persisted compliance remediation fix to /tmp/ocp4-cis-api-server-encryption-provider-cipher.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML 파일의 샘플을 볼 수 있습니다.
head
명령은 처음 10행을 표시합니다.head /tmp/ocp4-cis-api-server-encryption-provider-cipher.yaml
$ head /tmp/ocp4-cis-api-server-encryption-provider-cipher.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
수정을 직접 적용하기 전에 주의하십시오. 중간 프로파일의 usbguard 규칙과 같은 일부 수정 사항은 일괄적으로 적용되지 않을 수 있습니다. 이 경우 종속성을 해결하고 클러스터가 정상 상태로 유지되도록 Compliance Operator가 규칙을 적용하도록 허용합니다.
5.6.8.7. ComplianceCheckResult 오브젝트 세부 정보 보기 링크 복사링크가 클립보드에 복사되었습니다!
검사 실행이 완료되면 개별 검사 규칙에 대해 ComplianceCheckResult
오브젝트가 생성됩니다. view-result
하위 명령은 사용자가 읽을 수 있는 ComplianceCheckResult
오브젝트 세부 정보 출력을 제공합니다.
프로세스
다음을 실행합니다.
oc compliance view-result ocp4-cis-scheduler-no-bind-address
$ oc compliance view-result ocp4-cis-scheduler-no-bind-address
Copy to Clipboard Copied! Toggle word wrap Toggle overflow