2.6. 지원되는 정책
지원되는 정책을 보고 Red Hat Advanced Cluster Management for Kubernetes에서 정책을 생성하고 관리할 때 허브 클러스터에 대한 규칙, 프로세스 및 제어를 정의하는 방법을 알아봅니다.
2.6.1. 샘플 구성 정책 표
다음 샘플 구성 정책을 확인합니다.
정책 샘플 | 설명 |
---|---|
네임스페이스 정책 | 네임스페이스를 사용하여 일관된 환경 격리 및 이름을 지정하십시오. Kubernetes 네임스페이스 설명서를 참조하십시오. |
Pod 정책 | 클러스터 워크로드 구성을 확인합니다. Kubernetes 포드 설명서를 참조하십시오. |
메모리 사용량 정책 | 제한 범위를 사용하여 워크로드 리소스 사용량을 제한합니다. 제한 범위 설명서를 참조하십시오. |
Pod 보안 정책(더 이상 사용되지 않음) | 일관된 워크로드 보안을 보장합니다. Kubernetes Pod 보안 정책 설명서를 참조하십시오. |
역할 정책 | 역할 및 역할 바인딩을 사용하여 역할 권한 및 바인딩을 관리합니다. Kubernetes RBAC 설명서를 참조하십시오. |
SCC(보안 콘텐츠 제약 조건) 정책 | 보안 컨텍스트 제약 조건을 사용하여 워크로드 권한을 관리합니다. OpenShift Container Platform 설명서의 보안 컨텍스트 제약 조건 설명서를 참조하십시오. |
ETCD 암호화 정책 | etcd 암호화를 사용하여 데이터 보안을 확인하십시오. OpenShift Container Platform 설명서에서 etcd 데이터 암호화를 참조하십시오. |
규정 준수 Operator 정책 | Compliance Operator를 배포하여 OpenSCAP을 활용하여 클러스터의 규정 준수 상태를 스캔하고 적용합니다. OpenShift Container Platform 설명서 의 Compliance Operator 이해 를 참조하십시오. |
컴플라이언스 Operator E8 검사 | Compliance Operator 정책을 적용한 후 Essential 8 (E8) 검사를 배포하여 E8 보안 프로필 준수를 확인하십시오. OpenShift Container Platform 설명서 의 Compliance Operator 이해 를 참조하십시오. |
컴플라이언스 Operator CIS 검사 | Compliance Operator 정책을 적용한 후 CIS(Center for Internet Security) 검사를 배포하여 CIS 보안 프로필 준수를 확인합니다. OpenShift Container Platform 설명서 의 Compliance Operator 이해 를 참조하십시오. |
이미지 취약점 정책 | Container Security Operator를 배포하고 클러스터에서 실행되는 Pod에서 알려진 이미지 취약점을 감지합니다. Container Security Operator GitHub 리포지토리를 참조하십시오. |
Gatekeeper Operator 배포 | Gatekeeper는 OCI(Open Policy Agent) 정책 엔진에서 실행하는 사용자 정의 리소스 정의 기반 정책을 적용하는 승인 Webhook입니다. Gatekeeper 문서를 참조하십시오. |
Gatekeeper 규정 준수 정책 | Gatekeeper를 클러스터에 배포한 후 이 샘플 Gatekeeper 정책을 배포하여 클러스터에 생성된 네임스페이스가 지정된 대로 레이블이 지정되도록 합니다. |
Red Hat OpenShift Platform Plus 정책 세트 |
Red Hat OpenShift Platform Plus는 여러 인프라의 애플리케이션을 안전하게 빌드, 배포, 실행 및 관리할 수 있는 하이브리드 클라우드 제품군입니다. Red Hat Advanced Cluster Management 애플리케이션을 통해 제공되는 |
Red Hat OpenShift Container Platform 4.x는 Red Hat Advanced Cluster Management 구성 정책도 지원합니다.
정책 적용 방법을 알아보려면 다음 정책 설명서를 확인합니다.
자세한 내용은 Governance 를 참조하십시오.
2.6.2. 네임스페이스 정책
Kubernetes 구성 정책 컨트롤러는 네임스페이스 정책의 상태를 모니터링합니다. 네임스페이스 정책을 적용하여 네임스페이스에 대한 특정 규칙을 정의합니다.
다음 섹션에서 네임스페이스 정책 구조에 대해 자세히 알아봅니다.
2.6.2.1. 네임스페이스 정책 YAML 구조
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: namespace: annotations: policy.open-cluster-management.io/standards: policy.open-cluster-management.io/categories: policy.open-cluster-management.io/controls: policy.open-cluster-management.io/description: spec: remediationAction: disabled: policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: spec: remediationAction: severity: object-templates: - complianceType: objectDefinition: kind: Namespace apiVersion: v1 metadata: name: ...
2.6.2.2. 네임스페이스 정책 YAML 테이블
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
정책 유형을 나타내려면 값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 필수 항목 | 정책의 네임스페이스입니다. |
| 선택 사항 |
정책 수정을 지정합니다. 매개변수 값은 |
| 필수 항목 |
값을 |
| 필수 항목 | 관리 클러스터에 평가하거나 적용해야 하는 Kubernetes 오브젝트가 포함된 구성 정책을 나열하는 데 사용됩니다. |
2.6.2.3. 네임스페이스 정책 샘플
정책 샘플을 보려면 policy-namespace.yaml
을 참조하십시오.
자세한 내용은 보안 정책 관리를 참조하십시오. 다른 구성 정책에 대한 자세한 내용은 정책 개요 설명서 및 Kubernetes 구성 정책 컨트롤러 를 참조하십시오.
2.6.3. Pod 정책
Kubernetes 구성 정책 컨트롤러는 Pod 정책의 상태를 모니터링합니다. Pod 정책을 적용하여 Pod의 컨테이너 규칙을 정의합니다. 이 정보를 사용하려면 Pod가 클러스터에 있어야 합니다.
다음 섹션에서 Pod 정책 구조에 대한 자세한 내용을 확인하십시오.
2.6.3.1. Pod 정책 YAML 구조
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: namespace: annotations: policy.open-cluster-management.io/standards: policy.open-cluster-management.io/categories: policy.open-cluster-management.io/controls: policy.open-cluster-management.io/description: spec: remediationAction: disabled: policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: spec: remediationAction: severity: namespaceSelector: exclude: include: matchLabels: matchExpressions: object-templates: - complianceType: objectDefinition: apiVersion: v1 kind: Pod metadata: name: spec: containers: - image: name: ...
2.6.3.2. Pod 정책 테이블
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
정책 유형을 나타내려면 값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 필수 항목 | 정책의 네임스페이스입니다. |
| 선택 사항 |
정책 수정을 지정합니다. 매개변수 값은 |
| 필수 항목 |
값을 |
| 필수 항목 | 관리 클러스터에 평가하거나 적용해야 하는 Kubernetes 오브젝트가 포함된 구성 정책을 나열하는 데 사용됩니다. |
2.6.3.3. Pod 정책 샘플
정책 샘플을 보려면 policy-pod.yaml
을 참조하십시오.
Kubernetes 구성 정책 컨트롤러 를 참조하여 구성 컨트롤러에서 모니터링하는 다른 구성 정책을 확인하고 정책 개요 설명서를 참조하여 정책 YAML 구조 및 추가 필드에 대한 전체 설명을 확인합니다. 다른 정책 관리로 돌아가 구성 정책 설명서로 돌아갑니다.
2.6.4. 메모리 사용량 정책
Kubernetes 구성 정책 컨트롤러는 메모리 사용 정책의 상태를 모니터링합니다. 메모리 사용량 정책을 사용하여 메모리 및 컴퓨팅 사용량을 제한하거나 제한합니다. 자세한 내용은 Kubernetes 문서 의 제한 범위를 참조하십시오.
다음 섹션에서 메모리 사용 정책 구조에 대해 자세히 알아봅니다.
2.6.4.1. 메모리 사용량 정책 YAML 구조
메모리 사용량 정책은 다음 YAML 파일과 유사할 수 있습니다.
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: namespace: annotations: policy.open-cluster-management.io/standards: policy.open-cluster-management.io/categories: policy.open-cluster-management.io/controls: policy.open-cluster-management.io/description: spec: remediationAction: disabled: policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: spec: remediationAction: severity: namespaceSelector: exclude: include: matchLabels: matchExpressions: object-templates: - complianceType: mustonlyhave objectDefinition: apiVersion: v1 kind: LimitRange metadata: name: spec: limits: - default: memory: defaultRequest: memory: type: ...
2.6.4.2. 메모리 사용량 정책 테이블
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
정책 유형을 나타내려면 값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 필수 항목 | 정책의 네임스페이스입니다. |
| 선택 사항 |
정책 수정을 지정합니다. 매개변수 값은 |
| 필수 항목 |
값을 |
| 필수 항목 | 관리 클러스터에 평가하거나 적용해야 하는 Kubernetes 오브젝트가 포함된 구성 정책을 나열하는 데 사용됩니다. |
2.6.4.3. 메모리 사용량 정책 샘플
정책 샘플을 보려면 policy-limitmemory.yaml
을 참조하십시오. 자세한 내용은 보안 정책 관리를 참조하십시오. 컨트롤러에서 모니터링하는 다른 구성 정책을 보려면 정책 개요 문서 및 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.6.5. Pod 보안 정책(더 이상 사용되지 않음)
Kubernetes 구성 정책 컨트롤러는 Pod 보안 정책의 상태를 모니터링합니다. Pod 보안 정책을 적용하여 Pod 및 컨테이너를 보호합니다.
다음 섹션에서 Pod 보안 정책 구조에 대한 자세한 내용을 확인하십시오.
2.6.5.1. Pod 보안 정책 YAML 구조
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: namespace: annotations: policy.open-cluster-management.io/standards: policy.open-cluster-management.io/categories: policy.open-cluster-management.io/controls: policy.open-cluster-management.io/description: spec: remediationAction: disabled: policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: spec: remediationAction: severity: namespaceSelector: exclude: include: matchLabels: matchExpressions: object-templates: - complianceType: objectDefinition: apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: annotations: seccomp.security.alpha.kubernetes.io/allowedProfileNames: spec: privileged: allowPrivilegeEscalation: allowedCapabilities: volumes: hostNetwork: hostPorts: hostIPC: hostPID: runAsUser: seLinux: supplementalGroups: fsGroup: ...
2.6.5.2. Pod 보안 정책 테이블
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
정책 유형을 나타내려면 값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 필수 항목 | 정책의 네임스페이스입니다. |
| 선택 사항 |
정책 수정을 지정합니다. 매개변수 값은 |
| 필수 항목 |
값을 |
| 필수 항목 | 관리 클러스터에 평가하거나 적용해야 하는 Kubernetes 오브젝트가 포함된 구성 정책을 나열하는 데 사용됩니다. |
2.6.5.3. Pod 보안 정책 샘플
Pod 보안 정책 지원은 OpenShift Container Platform 4.13 이상 및 Kubernetes v1.25 이상에서 제거됩니다. PodSecurityPolicy
리소스를 적용하면 다음과 같은 비호환 메시지가 표시될 수 있습니다.
violation - couldn't find mapping resource with kind PodSecurityPolicy, please check if you have CRD deployed
- 사용 중단 알림을 포함한 자세한 내용은 Kubernetes 문서의 Pod 보안 정책을 참조하십시오.
-
샘플 정책을 보려면
policy-psp.yaml
을 참조하십시오. 자세한 내용은 구성 정책 관리를 참조하십시오. - 정책 YAML 구조 및 Kubernetes 구성 정책 컨트롤러에 대한 자세한 설명은 정책 개요 설명서를 참조하여 컨트롤러에서 모니터링하는 다른 구성 정책을 확인합니다.
2.6.6. 역할 정책
Kubernetes 구성 정책 컨트롤러는 역할 정책의 상태를 모니터링합니다. 오브젝트 템플릿에서
역할을 정의하여 클러스터의 특정 역할에 대한 규칙 및 권한을 설정합니다.
다음 섹션에서 역할 정책 구조에 대해 자세히 알아봅니다.
2.6.6.1. 역할 정책 YAML 구조
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: namespace: annotations: policy.open-cluster-management.io/standards: policy.open-cluster-management.io/categories: policy.open-cluster-management.io/controls: policy.open-cluster-management.io/description: spec: remediationAction: disabled: policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: spec: remediationAction: severity: namespaceSelector: exclude: include: matchLabels: matchExpressions: object-templates: - complianceType: objectDefinition: apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: rules: - apiGroups: resources: verbs: ...
2.6.6.2. 역할 정책 테이블
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
정책 유형을 나타내려면 값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 필수 항목 | 정책의 네임스페이스입니다. |
| 선택 사항 |
정책 수정을 지정합니다. 매개변수 값은 |
| 필수 항목 |
값을 |
| 필수 항목 | 관리 클러스터에 평가하거나 적용해야 하는 Kubernetes 오브젝트가 포함된 구성 정책을 나열하는 데 사용됩니다. |
2.6.6.3. 역할 정책 샘플
클러스터의 특정 역할에 대한 규칙 및 권한을 설정하는 역할 정책을 적용합니다. 역할에 대한 자세한 내용은 역할 기반 액세스 제어를 참조하십시오. 역할 정책 샘플 보기 policy-role.yaml
을 참조하십시오.
역할 정책을 관리하는 방법에 대한 자세한 내용은 구성 정책 관리를 참조하십시오. 컨트롤러를 모니터링하는 다른 구성 정책을 보려면 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.6.7. 역할 바인딩 정책
Kubernetes 구성 정책 컨트롤러는 역할 바인딩 정책의 상태를 모니터링합니다. 관리 클러스터의 네임스페이스에 정책을 바인딩하는 역할 바인딩 정책을 적용합니다.
다음 섹션에서 네임스페이스 정책 구조에 대해 자세히 알아봅니다.
2.6.7.1. 역할 바인딩 정책 YAML 구조
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: namespace: annotations: policy.open-cluster-management.io/standards: policy.open-cluster-management.io/categories: policy.open-cluster-management.io/controls: policy.open-cluster-management.io/description: spec: remediationAction: disabled: policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: spec: remediationAction: severity: namespaceSelector: exclude: include: matchLabels: matchExpressions: object-templates: - complianceType: objectDefinition: kind: RoleBinding # role binding must exist apiVersion: rbac.authorization.k8s.io/v1 metadata: name: subjects: - kind: name: apiGroup: roleRef: kind: name: apiGroup: ...
2.6.7.2. 역할 바인딩 정책 테이블
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
정책 유형을 나타내려면 값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 필수 항목 | 정책의 네임스페이스입니다. |
| 선택 사항 |
정책 수정을 지정합니다. 매개변수 값은 |
| 필수 항목 |
값을 |
| 필수 항목 | 관리 클러스터에 평가하거나 적용해야 하는 Kubernetes 오브젝트가 포함된 구성 정책을 나열하는 데 사용됩니다. |
2.6.7.3. 역할 바인딩 정책 샘플
정책 샘플을 보려면 policy-rolebinding.yaml
을 참조하십시오. policy YAML 구조 및 추가 필드에 대한 전체 설명은 정책 개요 설명서 를 참조하십시오. 다른 구성 정책에 대한 자세한 내용은 Kubernetes 구성 정책 컨트롤러 설명서를 참조하십시오.
2.6.8. 보안 컨텍스트 제약 조건 정책
Kubernetes 구성 정책 컨트롤러는 SCC(보안 컨텍스트 제약 조건) 정책의 상태를 모니터링합니다. SCC(보안 컨텍스트 제약 조건) 정책을 적용하여 정책의 조건을 정의하여 Pod 권한을 제어합니다.
다음 섹션에서 SCC 정책에 대한 자세한 내용을 확인하십시오.
2.6.8.1. SCC 정책 YAML 구조
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: namespace: annotations: policy.open-cluster-management.io/standards: policy.open-cluster-management.io/categories: policy.open-cluster-management.io/controls: policy.open-cluster-management.io/description: spec: remediationAction: disabled: policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: spec: remediationAction: severity: namespaceSelector: exclude: include: matchLabels: matchExpressions: object-templates: - complianceType: objectDefinition: apiVersion: security.openshift.io/v1 kind: SecurityContextConstraints metadata: name: allowHostDirVolumePlugin: allowHostIPC: allowHostNetwork: allowHostPID: allowHostPorts: allowPrivilegeEscalation: allowPrivilegedContainer: fsGroup: readOnlyRootFilesystem: requiredDropCapabilities: runAsUser: seLinuxContext: supplementalGroups: users: volumes: ...
2.6.8.2. SCC 정책 테이블
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
정책 유형을 나타내려면 값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 필수 항목 | 정책의 네임스페이스입니다. |
| 선택 사항 |
정책 수정을 지정합니다. 매개변수 값은 |
| 필수 항목 |
값을 |
| 필수 항목 | 관리 클러스터에 평가하거나 적용해야 하는 Kubernetes 오브젝트가 포함된 구성 정책을 나열하는 데 사용됩니다. |
SCC 정책 콘텐츠에 대한 설명은 OpenShift Container Platform 설명서에서 보안 컨텍스트 제약 조건 관리를 참조하십시오.
2.6.8.3. SCC 정책 샘플
SCC(보안 컨텍스트 제약 조건) 정책을 적용하여 정책의 조건을 정의하여 Pod 권한을 제어합니다. 자세한 내용은 SCC(보안 컨텍스트 제약 조건) 관리를 참조하십시오.
정책 샘플을 보려면 policy-scc.yaml
을 참조하십시오. policy YAML 구조 및 추가 필드에 대한 전체 설명은 정책 개요 설명서를 참조하십시오. 다른 구성 정책에 대한 자세한 내용은 Kubernetes 구성 정책 컨트롤러 설명서를 참조하십시오.
2.6.9. ETCD 암호화 정책
etcd-encryption
정책을 적용하여 ETCD 데이터 저장소에서 중요한 데이터를 감지하거나 암호화를 활성화합니다. Kubernetes 구성 정책 컨트롤러는 etcd 암호화 정책의 상태를 모니터링합니다
. 자세한 내용은 OpenShift Container Platform 설명서에서 etcd 데이터 암호화를 참조하십시오. 참고: ETCD 암호화 정책은 Red Hat OpenShift Container Platform 4 이상만 지원합니다.
다음 섹션에서 etcd-encryption
정책 구조에 대한 자세한 내용을 확인하십시오.
2.6.9.1. ETCD 암호화 정책 YAML 구조
etcd-encryption
정책은 다음 YAML 파일과 유사할 수 있습니다.
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: namespace: annotations: policy.open-cluster-management.io/standards: policy.open-cluster-management.io/categories: policy.open-cluster-management.io/controls: policy.open-cluster-management.io/description: spec: remediationAction: disabled: policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: spec: remediationAction: severity: object-templates: - complianceType: objectDefinition: apiVersion: config.openshift.io/v1 kind: APIServer metadata: name: spec: encryption: ...
2.6.9.2. ETCD 암호화 정책 테이블
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
정책 유형을 나타내려면 값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 필수 항목 | 정책의 네임스페이스입니다. |
| 선택 사항 |
정책 수정을 지정합니다. 매개변수 값은 |
| 필수 항목 |
값을 |
| 필수 항목 | 관리 클러스터에 평가하거나 적용해야 하는 Kubernetes 오브젝트가 포함된 구성 정책을 나열하는 데 사용됩니다. |
2.6.9.3. ETCD 암호화 정책 샘플
정책 샘플은 policy-etcdencryption.yaml
을 참조하십시오. 정책 및 구성 정책 필드에 대한 자세한 내용은 정책 개요 설명서 및 Kubernetes 구성 정책 컨트롤러 를 참조하십시오.
2.6.10. Compliance Operator 정책
Compliance Operator를 사용하여 다양한 기술 구현을 자동화하고 업계 표준, 벤치마크 및 기준선의 특정 측면과 비교할 수 있습니다. Compliance Operator는 감사자가 아닙니다. 이러한 다양한 표준을 준수하거나 인증하려면 QSA(Qualified Security Assessor), 공동 인증 기관(JAB) 또는 사용자 환경을 평가할 수 있는 기타 업계의 규제 당국과 같은 승인된 감사인에 참여해야 합니다.
Compliance Operator에서 생성되는 권장 사항은 이러한 표준에 대한 일반적으로 사용 가능한 정보와 관행을 기반으로 하며, 수정을 지원할 수 있지만 실제 규정 준수는 귀하의 책임이 있습니다. 표준 준수를 위해 승인된 감사자와 협력합니다.
최신 업데이트는 Compliance Operator 릴리스 노트 를 참조하십시오.
2.6.10.1. Compliance Operator 정책 개요
Compliance Operator 정책을 사용하여 관리 클러스터에 Compliance Operator를 설치할 수 있습니다. Compliance Operator 정책은 Red Hat Advanced Cluster Management에서 Kubernetes 구성 정책으로 생성됩니다. OpenShift Container Platform은 규정 준수 Operator 정책을 지원합니다.
참고: Compliance Operator 정책은 IBM Power 또는 IBM Z 아키텍처에서 지원되지 않는 OpenShift Container Platform Compliance Operator를 사용합니다. Compliance Operator에 대한 자세한 내용은 OpenShift Container Platform 설명서의 Compliance Operator 이해 를 참조하십시오.
2.6.10.2. Compliance Operator 리소스
규정 준수 Operator 정책을 생성하면 다음 리소스가 생성됩니다.
-
Operator 설치를 위한 규정 준수 Operator 네임스페이스(
openshift-compliance
)
apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: comp-operator-ns spec: remediationAction: inform # will be overridden by remediationAction in parent policy severity: high object-templates: - complianceType: musthave objectDefinition: apiVersion: v1 kind: Namespace metadata: name: openshift-compliance
-
대상 네임스페이스를 지정하는 Operator 그룹(
compliance-operator
)입니다.
apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: comp-operator-operator-group spec: remediationAction: inform # will be overridden by remediationAction in parent policy severity: high object-templates: - complianceType: musthave objectDefinition: apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: compliance-operator namespace: openshift-compliance spec: targetNamespaces: - openshift-compliance
-
이름 및 채널을 참조하는 서브스크립션(
comp-operator-subscription
)입니다. 서브스크립션은 컨테이너에서 지원하는 프로필을 가져옵니다.4.x
를 대체하는 현재 버전으로 다음 샘플을 참조하십시오.
apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: comp-operator-subscription spec: remediationAction: inform # will be overridden by remediationAction in parent policy severity: high object-templates: - complianceType: musthave objectDefinition: apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: compliance-operator namespace: openshift-compliance spec: channel: "4.x" installPlanApproval: Automatic name: compliance-operator source: redhat-operators sourceNamespace: openshift-marketplace
규정 준수 Operator 정책을 설치한 후 compliance-operator
,ocp4
및 rhcos4
Pod가 생성됩니다. policy-compliance-operator-install.yaml
샘플을 참조하십시오.
2.6.10.3. 추가 리소스
- 자세한 내용은 OpenShift Container Platform 설명서에서 Compliance Operator 관리를 참조하십시오.
- 규정 준수 Operator를 설치한 후 E8 검사 정책 및 OpenShift CIS 검사 정책을 생성하고 적용할 수도 있습니다. 자세한 내용은 E8 검사 정책 및 OpenShift CIS 검사 정책을 참조하십시오.
- 규정 준수 Operator 정책 관리에 대한 자세한 내용은 보안 정책 관리를 참조하십시오. 구성 정책에 대한 자세한 내용은 Kubernetes 구성 정책 컨트롤러 를 참조하십시오.
2.6.11. E8 검사 정책
Essential 8(E8) 검사 정책은 마스터 및 작업자 노드에서 E8 보안 프로필을 준수하는지 확인하는 검사를 배포합니다. E8 검사 정책을 적용하려면 컴플라이언스 Operator를 설치해야 합니다.
E8 검사 정책은 Red Hat Advanced Cluster Management에서 Kubernetes 구성 정책으로 생성됩니다. OpenShift Container Platform은 E8 검사 정책을 지원합니다. 자세한 내용은 OpenShift Container Platform 설명서에서 Compliance Operator 관리를 참조하십시오.
2.6.11.1. E8 검사 정책 리소스
E8 검사 정책을 생성할 때 다음 리소스가 생성됩니다.
검사할 프로필을 식별하는
ScanSettingBinding
리소스(e8
)입니다.apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: compliance-suite-e8 spec: remediationAction: inform severity: high object-templates: - complianceType: musthave # this template checks if scan has completed by checking the status field objectDefinition: apiVersion: compliance.openshift.io/v1alpha1 kind: ScanSettingBinding metadata: name: e8 namespace: openshift-compliance profiles: - apiGroup: compliance.openshift.io/v1alpha1 kind: Profile name: ocp4-e8 - apiGroup: compliance.openshift.io/v1alpha1 kind: Profile name: rhcos4-e8 settingsRef: apiGroup: compliance.openshift.io/v1alpha1 kind: ScanSetting name: default
status
필드를 확인하여 검사가 완료되었는지 확인하는ComplianceSuite
리소스(compliance-suite-e8
)입니다.apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: compliance-suite-e8 spec: remediationAction: inform severity: high object-templates: - complianceType: musthave # this template checks if scan has completed by checking the status field objectDefinition: apiVersion: compliance.openshift.io/v1alpha1 kind: ComplianceSuite metadata: name: e8 namespace: openshift-compliance status: phase: DONE
ComplianceCheckResult
(CR)를 확인하여 검사 모음 결과를 보고하는 Compliance-suite-e8-
results .apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: compliance-suite-e8-results spec: remediationAction: inform severity: high object-templates: - complianceType: mustnothave # this template reports the results for scan suite: e8 by looking at ComplianceCheckResult CRs objectDefinition: apiVersion: compliance.openshift.io/v1alpha1 kind: ComplianceCheckResult metadata: namespace: openshift-compliance labels: compliance.openshift.io/check-status: FAIL compliance.openshift.io/suite: e8
참고: 자동 수정이 지원됩니다. ScanSettingBinding
리소스를 생성하도록 적용
하도록 수정 작업을 설정합니다.
policy-compliance-operator-e8-scan.yaml
샘플을 참조하십시오. 자세한 내용은 보안 정책 관리를 참조하십시오. 참고: E8 정책이 삭제되면 대상 클러스터 또는 클러스터에서 제거됩니다.
2.6.12. OpenShift CIS 검사 정책
OpenShift CIS 검사 정책은 마스터 노드와 작업자 노드에서 OpenShift CIS 보안 벤치마크를 준수하는지 확인하는 검사를 배포합니다. OpenShift CIS 정책을 적용하려면 규정 준수 Operator를 설치해야 합니다.
OpenShift CIS 검사 정책은 Red Hat Advanced Cluster Management에서 Kubernetes 구성 정책으로 생성됩니다. OpenShift Container Platform은 OpenShift CIS 검사 정책을 지원합니다. 자세한 내용은 OpenShift Container Platform 설명서 의 Compliance Operator 이해 를 참조하십시오.
2.6.12.1. OpenShift CIS 리소스
OpenShift CIS 검사 정책을 생성할 때 다음 리소스가 생성됩니다.
검사할 프로필을 식별하는
ScanSettingBinding
리소스(cis
)입니다.apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: compliance-cis-scan spec: remediationAction: inform severity: high object-templates: - complianceType: musthave # this template creates ScanSettingBinding:cis objectDefinition: apiVersion: compliance.openshift.io/v1alpha1 kind: ScanSettingBinding metadata: name: cis namespace: openshift-compliance profiles: - apiGroup: compliance.openshift.io/v1alpha1 kind: Profile name: ocp4-cis - apiGroup: compliance.openshift.io/v1alpha1 kind: Profile name: ocp4-cis-node settingsRef: apiGroup: compliance.openshift.io/v1alpha1 kind: ScanSetting name: default
status
필드를 확인하여 검사가 완료되었는지 확인하는ComplianceSuite
리소스(compliance-suite-cis
)입니다.apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: compliance-suite-cis spec: remediationAction: inform severity: high object-templates: - complianceType: musthave # this template checks if scan has completed by checking the status field objectDefinition: apiVersion: compliance.openshift.io/v1alpha1 kind: ComplianceSuite metadata: name: cis namespace: openshift-compliance status: phase: DONE
ComplianceCheckResult
(CR)를 확인하여 검사 모음 결과를 보고하는 Compliance-suite-cis-
results .apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: compliance-suite-cis-results spec: remediationAction: inform severity: high object-templates: - complianceType: mustnothave # this template reports the results for scan suite: cis by looking at ComplianceCheckResult CRs objectDefinition: apiVersion: compliance.openshift.io/v1alpha1 kind: ComplianceCheckResult metadata: namespace: openshift-compliance labels: compliance.openshift.io/check-status: FAIL compliance.openshift.io/suite: cis
policy-compliance-operator-cis-scan.yaml
파일의 샘플을 참조하십시오. 정책 생성에 대한 자세한 내용은 보안 정책 관리를 참조하십시오.
2.6.13. 이미지 취약점 정책
Container Security Operator를 활용하여 컨테이너 이미지에 취약점이 있는지 감지하려면 이미지 취약점 정책을 적용합니다. 이 정책은 관리 클러스터에 Container Security Operator가 설치되지 않은 경우 설치합니다.
이미지 취약점 정책은 Kubernetes 구성 정책 컨트롤러에서 확인합니다. Security Operator에 대한 자세한 내용은 Quay 리포지토리 의 Container Security Operator 를 참조하십시오.
참고:
- 이미지 취약점 정책은 연결이 끊긴 설치 중에 작동하지 않습니다.
-
IBM Power 및 IBM Z 아키텍처에서는 이미지 취약점 정책이 지원되지 않습니다. Quay Container Security Operator 를 사용합니다. container-security-operator 레지스트리에
ppc64le
또는s390x
이미지가 없습니다.
자세한 내용은 다음 섹션을 확인하십시오.
2.6.13.1. 이미지 취약점 정책 YAML 구조
컨테이너 보안 Operator 정책을 생성할 때 다음과 같은 정책이 포함됩니다.
이름과 채널을 참조하는 서브스크립션(
container-security-operator
)을 생성하는 정책입니다. 이 구성 정책에는 리소스를 생성하기 위해적용할
spec.remediationAction
이 설정되어 있어야 합니다. 서브스크립션은 컨테이너에서 서브스크립션을 지원하는 프로필을 가져옵니다. 다음 예제를 확인합니다.apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: policy-imagemanifestvuln-example-sub spec: remediationAction: enforce # will be overridden by remediationAction in parent policy severity: high object-templates: - complianceType: musthave objectDefinition: apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: container-security-operator namespace: openshift-operators spec: # channel: quay-v3.3 # specify a specific channel if desired installPlanApproval: Automatic name: container-security-operator source: redhat-operators sourceNamespace: openshift-marketplace
ClusterServiceVersion
을 감사하여 컨테이너 보안 Operator 설치에 성공했는지 확인하는정보
구성 정책입니다. 다음 예제를 확인합니다.apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: policy-imagemanifestvuln-status spec: remediationAction: inform # will be overridden by remediationAction in parent policy severity: high object-templates: - complianceType: musthave objectDefinition: apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: namespace: openshift-operators spec: displayName: Red Hat Quay Container Security Operator status: phase: Succeeded # check the CSV status to determine if operator is running or not
이미지 취약점 검사에서
ImageManifestVuln
오브젝트가 생성되었는지 여부를 감사하는정보
구성 정책입니다. 다음 예제를 확인합니다.apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: policy-imagemanifestvuln-example-imv spec: remediationAction: inform # will be overridden by remediationAction in parent policy severity: high namespaceSelector: exclude: ["kube-*"] include: ["*"] object-templates: - complianceType: mustnothave # mustnothave any ImageManifestVuln object objectDefinition: apiVersion: secscan.quay.redhat.com/v1alpha1 kind: ImageManifestVuln # checking for a Kind
2.6.13.2. 이미지 취약점 정책 샘플
policy-imagemanifestvuln.yaml
을 참조하십시오. 자세한 내용은 보안 정책 관리를 참조하십시오. 구성 컨트롤러에서 모니터링하는 다른 구성 정책을 보려면 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.6.14. Red Hat OpenShift Platform Plus 정책 세트
Red Hat OpenShift Platform Plus Plus를 설치하기 위해 OpenShift Platform Plus 정책 세트(openshift-plus
)를 구성하고 적용합니다.
OpenShift Platform Plus 정책 세트에는 배포된 두 개의 PolicySets
가 포함되어 있습니다. OpenShift Plus 정책 세트는 OpenShift Platform Plus 제품을 설치하도록 설정된 여러 정책을 적용합니다. Red Hat Advanced Cluster Security 보안 클러스터 서비스 및 Compliance Operator는 모든 OpenShift Container Platform 관리 클러스터에 배포됩니다.
2.6.14.1. 사전 요구 사항
- AWS(Amazon Web Services) 환경에 Red Hat OpenShift Container Platform 4.13 이상을 설치합니다.
- Red Hat Advanced Cluster Management for Kubernetes 2.7 이상을 설치합니다.
- Policy Generator Kustomize 플러그인을 설치합니다. 자세한 내용은 정책 생성기 설명서를 참조하십시오.
2.6.14.2. OpenShift Platform Plus 정책 세트 구성 요소
hub 클러스터에 설정된 정책을 적용하면 다음 OpenShift Platform Plus 구성 요소가 설치됩니다.
Component | 정책 | 설명 |
---|---|---|
Red Hat Advanced Cluster Security |
| Kubernetes 허브 클러스터 및 관리형 클러스터에 중앙 서버를 설치하는 데 사용되는 정책입니다. |
| Red Hat Advanced Cluster Security 상태를 수신하기 위한 배포. | |
| Red Hat Advanced Cluster Security 중앙 운영자 구성. | |
| Red Hat Advanced Cluster Security 리소스가 생성되었는지 확인하는 데 사용되는 정책입니다. | |
OpenShift Container Platform |
| 관리 허브 클러스터입니다. 관리 클러스터의 관리자입니다. |
Compliance Operator |
| Compliance Operator를 설치하는 데 사용되는 정책입니다. |
Red Hat Quay |
| Red Hat Quay의 구성 정책. |
| Red Hat Quay를 설치하는 데 사용되는 정책입니다. | |
| Red Hat Advanced Cluster Management Hub 클러스터에 설치되어 있어야 합니다. | |
Red Hat Advanced Cluster Management |
| Red Hat Advanced Cluster Management observability 서비스를 설정합니다. |
Red Hat OpenShift Data Platform |
| Red Hat Advanced Cluster Management observability 및 Quay에서 사용하는 허브 클러스터 구성 요소에 사용할 수 있는 스토리지입니다. |
| Red Hat OpenShift Data Platform 상태를 구성하는 데 사용되는 정책입니다. |
2.6.14.3. 추가 리소스
- 정책 세트를 사용하여 Red Hat OpenShift Platform Plus 설치를 참조하십시오.
- 정책 설정 컨트롤러로 돌아갑니다.
-
정책 세트에 포함된 모든 정책에 대한
openshift-plus
정책 세트 샘플을 확인합니다.