2.5. 지원되는 정책
Red Hat Advanced Cluster Management for Kubernetes에서 정책을 생성하고 관리할 때 hub 클러스터에서 규칙, 프로세스 및 제어를 정의하는 방법을 알아보려면 지원되는 정책을 확인하십시오.
참고: 의 기존 정책을 복사하여 Policy YAML 에 붙여넣을 수 있습니다. 기존 정책을 붙여넣을 때 매개변수 필드의 값이 자동으로 입력됩니다. 검색 기능을 사용하여 정책 YAML 파일에서 콘텐츠를 검색할 수도 있습니다.
2.5.1. 즉시 사용 가능한 정책에 대한 지원 매트릭스 링크 복사링크가 클립보드에 복사되었습니다!
| 정책 | Red Hat OpenShift Container Platform 3.11 | Red Hat OpenShift Container Platform 4 |
|---|---|---|
| 메모리 사용량 정책 | x | x |
| 네임스페이스 정책 | x | x |
| 이미지 취약점 정책 | x | x |
| Pod 정책 | x | x |
| Pod 보안 정책(더 이상 사용되지 않음) | ||
| 역할 정책 | x | x |
| 역할 바인딩 정책 | x | x |
| SCC(보안 컨텍스트 제약 조건 정책) | x | x |
| ETCD 암호화 정책 | x | |
| 게이트 키퍼 정책 | x | |
| 컴플라이언스 Operator 정책 | x | |
| E8 검사 정책 | x | |
| OpenShift CIS 검사 정책 | x | |
| 정책 세트 | x | |
| Kyverno add network | x | |
| Kyverno add quota | x | |
| Kyverno 동기화 시크릿 | x |
특정 정책이 적용되는 방법을 보려면 다음 정책 샘플을 확인합니다.
자세한 내용은 관리에서 참조하십시오.
2.5.2. 메모리 사용량 정책 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes 구성 정책 컨트롤러는 메모리 사용량 정책의 상태를 모니터링합니다. 메모리 사용 정책을 사용하여 메모리 및 컴퓨팅 사용량을 제한하거나 제한합니다. 자세한 내용은 Kubernetes 문서 의 제한 범위를 참조하십시오.
다음 섹션의 메모리 사용 정책 구조에 대해 자세히 알아보십시오.
2.5.2.1. 메모리 사용량 정책 YAML 구조 링크 복사링크가 클립보드에 복사되었습니다!
메모리 사용량 정책은 다음 YAML 파일과 유사합니다.
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name: policy-limitrange
namespace:
spec:
complianceType:
remediationAction:
namespaces:
exclude:
include:
object-templates:
- complianceType:
objectDefinition:
apiVersion:
kind:
metadata:
name:
spec:
limits:
- default:
memory:
defaultRequest:
memory:
type:
...
2.5.2.2. 메모리 사용량 정책 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 필드 | 설명 |
|---|---|
| apiVersion |
필수 항목입니다. 값을 |
| kind |
필수 항목입니다. 정책 유형을 나타내려면 값을 |
| metadata.name | 필수 항목입니다. 정책 리소스를 식별하는 이름입니다. |
| metadata.namespaces | 선택 사항: |
| spec.namespace |
필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 |
| remediationAction |
선택 사항: 정책 수정을 지정합니다. 매개변수 값은 |
| disabled |
필수 항목입니다. 값을 |
| spec.complianceType |
필수 항목입니다. 값을 |
| spec.object-template | 선택 사항: 관리 클러스터에 평가하거나 적용해야 하는 기타 Kubernetes 오브젝트를 나열하는 데 사용합니다. |
2.5.2.3. 메모리 사용량 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
정책 샘플을 보려면 policy-limitmemory.yaml 을 참조하십시오. 자세한 내용은 보안 정책 관리를 참조하십시오. 컨트롤러에서 모니터링하는 다른 구성 정책을 보려면 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.3. 네임스페이스 정책 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes 구성 정책 컨트롤러는 네임스페이스 정책의 상태를 모니터링합니다. 네임스페이스 정책을 적용하여 네임스페이스에 대한 특정 규칙을 정의합니다.
다음 섹션에서 네임스페이스 정책 구조에 대한 자세한 내용을 확인하십시오.
2.5.3.1. 네임스페이스 정책 YAML 구조 링크 복사링크가 클립보드에 복사되었습니다!
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name: policy-namespace-1
namespace:
spec:
complianceType:
remediationAction:
namespaces:
exclude:
include:
object-templates:
- complianceType:
objectDefinition:
kind:
apiVersion:
metadata:
name:
...
2.5.3.2. 네임스페이스 정책 YAML 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 필드 | 설명 |
|---|---|
| apiVersion |
필수 항목입니다. 값을 |
| kind |
필수 항목입니다. 정책 유형을 나타내려면 값을 |
| metadata.name | 필수 항목입니다. 정책 리소스를 식별하는 이름입니다. |
| metadata.namespaces | 선택 사항: |
| spec.namespace |
필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 |
| remediationAction |
선택 사항: 정책 수정을 지정합니다. 매개변수 값은 |
| disabled |
필수 항목입니다. 값을 |
| spec.complianceType |
필수 항목입니다. 값을 |
| spec.object-template | 선택 사항: 관리 클러스터에 평가하거나 적용해야 하는 기타 Kubernetes 오브젝트를 나열하는 데 사용합니다. |
2.5.3.3. 네임스페이스 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
정책 샘플을 보려면 policy-namespace.yaml 을 참조하십시오.
자세한 내용은 보안 정책 관리를 참조하십시오. 다른 구성 정책에 대한 자세한 내용은 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.4. 이미지 취약점 정책 링크 복사링크가 클립보드에 복사되었습니다!
컨테이너 보안 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.5.4.1. 이미지 취약점 정책 YAML 구조 링크 복사링크가 클립보드에 복사되었습니다!
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name: policy-imagemanifestvulnpolicy
namespace: default
annotations:
policy.open-cluster-management.io/standards: NIST-CSF
policy.open-cluster-management.io/categories: DE.CM Security Continuous Monitoring
policy.open-cluster-management.io/controls: DE.CM-8 Vulnerability Scans
spec:
remediationAction:
disabled:
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name:
spec:
remediationAction:
severity: high
object-templates:
- complianceType:
objectDefinition:
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: container-security-operator
namespace:
spec:
channel:
installPlanApproval:
name:
source:
sourceNamespace:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name:
spec:
remediationAction:
severity:
namespaceSelector:
exclude:
include:
object-templates:
- complianceType:
objectDefinition:
apiVersion: secscan.quay.redhat.com/v1alpha1
kind: ImageManifestVuln # checking for a kind
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
name: binding-policy-imagemanifestvulnpolicy
namespace: default
placementRef:
name:
kind:
apiGroup:
subjects:
- name:
kind:
apiGroup:
---
apiVersion: apps.open-cluster-management.io/v1
kind: PlacementRule
metadata:
name: placement-policy-imagemanifestvulnpolicy
namespace: default
spec:
clusterConditions:
- status:
type:
clusterSelector:
matchExpressions:
[] # selects all clusters if not specified
2.5.4.2. 이미지 취약점 정책 YAML 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 필드 | 설명 |
|---|---|
| apiVersion |
필수 항목입니다. 값을 |
| kind |
필수 항목입니다. 정책 유형을 나타내려면 값을 |
| metadata.name | 필수 항목입니다. 정책 리소스를 식별하는 이름입니다. |
| metadata.namespaces | 선택 사항: |
| spec.namespace |
필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 |
| remediationAction |
선택 사항: 정책 수정을 지정합니다. 매개변수 값은 |
| disabled |
필수 항목입니다. 값을 |
| spec.complianceType |
필수 항목입니다. 값을 |
| spec.object-template | 선택 사항: 관리 클러스터에 평가하거나 적용해야 하는 기타 Kubernetes 오브젝트를 나열하는 데 사용합니다. |
2.5.4.3. 이미지 취약점 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
policy-imagemanifestvuln.yaml 을 참조하십시오. 자세한 내용은 보안 정책 관리를 참조하십시오.
구성 컨트롤러에서 모니터링하는 다른 구성 정책을 보려면 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.5. Pod 정책 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes 구성 정책 컨트롤러는 Pod 정책의 상태를 모니터링합니다. Pod 정책을 적용하여 Pod의 컨테이너 규칙을 정의합니다. 이 정보를 사용하려면 클러스터에 Pod가 있어야 합니다.
다음 섹션의 Pod 정책 구조에 대한 자세한 내용을 확인하십시오.
2.5.5.1. Pod 정책 YAML 구조 링크 복사링크가 클립보드에 복사되었습니다!
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name: policy-pod
namespace:
spec:
complianceType:
remediationAction:
namespaces:
exclude:
include:
object-templates:
- complianceType:
objectDefinition:
apiVersion:
kind: Pod # pod must exist
metadata:
name:
spec:
containers:
- image:
name:
ports:
- containerPort:
...
2.5.5.2. Pod 정책 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 필드 | 설명 |
|---|---|
| apiVersion |
필수 항목입니다. 값을 |
| kind |
필수 항목입니다. 정책 유형을 나타내려면 값을 |
| metadata.name | 필수 항목입니다. 정책 리소스를 식별하는 이름입니다. |
| metadata.namespaces | 선택 사항: |
| spec.namespace |
필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 |
| remediationAction |
선택 사항: 정책 수정을 지정합니다. 매개변수 값은 |
| disabled |
필수 항목입니다. 값을 |
| spec.complianceType |
필수 항목입니다. 값을 |
| spec.object-template | 선택 사항: 관리 클러스터에 평가하거나 적용해야 하는 기타 Kubernetes 오브젝트를 나열하는 데 사용합니다. |
2.5.5.3. Pod 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
정책 샘플을 보려면 policy-pod.yaml 을 참조하십시오.
구성 컨트롤러에서 모니터링하는 다른 구성 정책을 보려면 Kubernetes 구성 정책 컨트롤러를 참조하십시오. 다른 정책을 관리하려면 구성 정책 관리를 참조하십시오.
2.5.6. Pod 보안 정책 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes 구성 정책 컨트롤러는 Pod 보안 정책의 상태를 모니터링합니다. Pod 보안 정책을 적용하여 Pod 및 컨테이너를 보호합니다. 자세한 내용은 Kubernetes 문서의 Pod 보안 정책을 참조하십시오.
다음 섹션의 Pod 보안 정책 구조에 대해 자세히 알아보십시오.
2.5.6.1. Pod 보안 정책 YAML 구조 링크 복사링크가 클립보드에 복사되었습니다!
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name: policy-podsecuritypolicy
namespace:
spec:
complianceType:
remediationAction:
namespaces:
exclude:
include:
object-templates:
- complianceType:
objectDefinition:
apiVersion:
kind: PodSecurityPolicy # no privileged pods
metadata:
name:
annotations:
spec:
privileged:
allowPrivilegeEscalation:
allowedCapabilities:
volumes:
hostNetwork:
hostPorts:
hostIPC:
hostPID:
runAsUser:
rule:
seLinux:
rule:
supplementalGroups:
rule:
fsGroup:
rule:
...
2.5.6.2. Pod 보안 정책 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 필드 | 설명 |
|---|---|
| apiVersion |
필수 항목입니다. 값을 |
| kind |
필수 항목입니다. 정책 유형을 나타내려면 값을 |
| metadata.name | 필수 항목입니다. 정책 리소스를 식별하는 이름입니다. |
| metadata.namespaces | 선택 사항: |
| spec.namespace |
필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 |
| remediationAction |
선택 사항: 정책 수정을 지정합니다. 매개변수 값은 |
| disabled |
필수 항목입니다. 값을 |
| spec.complianceType |
필수 항목입니다. 값을 |
| spec.object-template | 선택 사항: 관리 클러스터에 평가하거나 적용해야 하는 기타 Kubernetes 오브젝트를 나열하는 데 사용합니다. |
2.5.6.3. Pod 보안 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
샘플 정책을 보려면 policy-psp.yaml 을 참조하십시오. 자세한 내용은 구성 정책 관리를 참조하십시오.
컨트롤러에서 모니터링하는 다른 구성 정책을 보려면 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.7. 역할 정책 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes 구성 정책 컨트롤러는 역할 정책의 상태를 모니터링합니다. object-template 에서 역할을 정의하여 클러스터의 특정 역할에 대한 규칙과 권한을 설정합니다.
다음 섹션의 역할 정책 구조에 대해 자세히 알아보십시오.
2.5.7.1. 역할 정책 YAML 구조 링크 복사링크가 클립보드에 복사되었습니다!
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name: policy-role
namespace:
annotations:
policy.open-cluster-management.io/standards: NIST-CSF
policy.open-cluster-management.io/categories: PR.AC Identity Management Authentication and Access Control
policy.open-cluster-management.io/controls: PR.AC-4 Access Control
spec:
remediationAction: inform
disabled: false
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: policy-role-example
spec:
remediationAction: inform # will be overridden by remediationAction in parent policy
severity: high
namespaceSelector:
include: ["default"]
object-templates:
- complianceType: mustonlyhave # role definition should exact match
objectDefinition:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: sample-role
rules:
- apiGroups: ["extensions", "apps"]
resources: ["deployments"]
verbs: ["get", "list", "watch", "delete","patch"]
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
name: binding-policy-role
namespace:
placementRef:
name: placement-policy-role
kind: PlacementRule
apiGroup: apps.open-cluster-management.io
subjects:
- name: policy-role
kind: Policy
apiGroup: policy.open-cluster-management.io
---
apiVersion: apps.open-cluster-management.io/v1
kind: PlacementRule
metadata:
name: placement-policy-role
namespace:
spec:
clusterConditions:
- type: ManagedClusterConditionAvailable
status: "True"
clusterSelector:
matchExpressions:
[]
...
2.5.7.2. 역할 정책 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 필드 | 설명 |
|---|---|
| apiVersion |
필수 항목입니다. 값을 |
| kind |
필수 항목입니다. 정책 유형을 나타내려면 값을 |
| metadata.name | 필수 항목입니다. 정책 리소스를 식별하는 이름입니다. |
| metadata.namespaces | 선택 사항: |
| spec.namespace |
필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 |
| remediationAction |
선택 사항: 정책 수정을 지정합니다. 매개변수 값은 |
| disabled |
필수 항목입니다. 값을 |
| spec.complianceType |
필수 항목입니다. 값을 |
| spec.object-template | 선택 사항: 관리 클러스터에 평가하거나 적용해야 하는 기타 Kubernetes 오브젝트를 나열하는 데 사용합니다. |
2.5.7.3. 역할 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
클러스터의 특정 역할에 대한 규칙과 권한을 설정하기 위해 역할 정책을 적용합니다. 역할에 대한 자세한 내용은 역할 기반 액세스 제어를 참조하십시오. 역할 정책의 샘플을 확인합니다. policy-role.yaml 을 참조하십시오.
역할 정책을 관리하는 방법에 대한 자세한 내용은 구성 정책 관리를 참조하십시오. 컨트롤러를 모니터링하는 다른 구성 정책을 보려면 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.8. 역할 바인딩 정책 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes 구성 정책 컨트롤러는 역할 바인딩 정책의 상태를 모니터링합니다. 관리 클러스터의 네임스페이스에 정책을 바인딩하려면 역할 바인딩 정책을 적용합니다.
다음 섹션에서 네임스페이스 정책 구조에 대한 자세한 내용을 확인하십시오.
2.5.8.1. 역할 바인딩 정책 YAML 구조 링크 복사링크가 클립보드에 복사되었습니다!
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name:
namespace:
spec:
complianceType:
remediationAction:
namespaces:
exclude:
include:
object-templates:
- complianceType:
objectDefinition:
kind: RoleBinding # role binding must exist
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: operate-pods-rolebinding
subjects:
- kind: User
name: admin # Name is case sensitive
apiGroup:
roleRef:
kind: Role #this must be Role or ClusterRole
name: operator # this must match the name of the Role or ClusterRole you wish to bind to
apiGroup: rbac.authorization.k8s.io
...
2.5.8.2. 역할 바인딩 정책 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 필드 | 설명 |
|---|---|
| apiVersion |
필수 항목입니다. 값을 |
| kind |
필수 항목입니다. 정책 유형을 나타내려면 값을 |
| metadata.name | 필수 항목입니다. 정책 리소스를 식별하는 이름입니다. |
| metadata.namespaces | 필수 항목입니다. 정책이 생성되는 관리형 클러스터 내의 네임스페이스입니다. |
| spec | 필수 항목입니다. 규정 준수 위반을 식별하고 수정하는 방법에 대한 사양입니다. |
| metadata.name | 필수 항목입니다. 정책 리소스를 식별하는 이름입니다. |
| metadata.namespaces | 선택 사항: |
| spec.complianceType |
필수 항목입니다. 값을 |
| spec.namespace |
필수 항목입니다. 정책을 적용하려는 관리형 클러스터 네임스페이스입니다. 정책에 적용할 |
| spec.remediationAction |
필수 항목입니다. 정책 수정을 지정합니다. 매개변수 값은 |
| spec.object-template | 필수 항목입니다. 관리 클러스터에 평가하거나 적용해야 하는 기타 Kubernetes 오브젝트를 나열하는 데 사용합니다. |
2.5.8.3. 역할 바인딩 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
정책 샘플을 보려면 policy-rolebinding.yaml 을 참조하십시오. 다른 정책 관리에 대한 자세한 내용은 구성 정책 관리를 참조하십시오.
다른 구성 정책에 대한 자세한 내용은 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.9. 보안 컨텍스트 제약 조건 정책 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes 구성 정책 컨트롤러는 SCC(보안 컨텍스트 제약 조건) 정책의 상태를 모니터링합니다. 정책에서 조건을 정의하여 Pod에 대한 권한을 제어하는 SCC(보안 컨텍스트 제약 조건) 정책을 적용합니다.
다음 섹션에서 SCC 정책에 대해 자세히 알아보십시오.
2.5.9.1. SCC 정책 YAML 구조 링크 복사링크가 클립보드에 복사되었습니다!
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name: policy-scc
namespace: open-cluster-management-policies
spec:
complianceType:
remediationAction:
namespaces:
exclude:
include:
object-templates:
- complianceType:
objectDefinition:
apiVersion:
kind: SecurityContextConstraints # restricted scc
metadata:
annotations:
kubernetes.io/description:
name: sample-restricted-scc
allowHostDirVolumePlugin:
allowHostIPC:
allowHostNetwork:
allowHostPID:
allowHostPorts:
allowPrivilegeEscalation:
allowPrivilegedContainer:
allowedCapabilities:
defaultAddCapabilities:
fsGroup:
type:
groups:
- system:
priority:
readOnlyRootFilesystem:
requiredDropCapabilities:
runAsUser:
type:
seLinuxContext:
type:
supplementalGroups:
type:
users:
volumes:
2.5.9.2. SCC 정책 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 필드 | 설명 |
|---|---|
| apiVersion |
필수 항목입니다. 값을 |
| kind |
필수 항목입니다. 정책 유형을 나타내려면 값을 |
| metadata.name | 필수 항목입니다. 정책 리소스를 식별하는 이름입니다. |
| metadata.namespace | 필수 항목입니다. 정책이 생성되는 관리형 클러스터 내의 네임스페이스입니다. |
| spec.complianceType |
필수 항목입니다. 값을 |
| spec.remediationAction |
필수 항목입니다. 정책 수정을 지정합니다. 매개변수 값은 |
| spec.namespace |
필수 항목입니다. 정책을 적용하려는 관리형 클러스터 네임스페이스입니다. 정책에 적용할 |
| spec.object-template | 필수 항목입니다. 관리 클러스터에 평가하거나 적용해야 하는 기타 Kubernetes 오브젝트를 나열하는 데 사용합니다. |
SCC 정책의 콘텐츠에 대한 자세한 내용은 OpenShift Container Platform 설명서에서 보안 컨텍스트 제약 조건 관리를 참조하십시오.
2.5.9.3. SCC 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
정책에서 조건을 정의하여 Pod에 대한 권한을 제어하는 SCC(보안 컨텍스트 제약 조건) 정책을 적용합니다. 자세한 내용은 Managing Security Context Constraints (SCC) 에서 참조하십시오.
정책 샘플을 보려면 policy-scc.yaml 을 참조하십시오. 다른 정책 관리에 대한 자세한 내용은 구성 정책 관리를 참조하십시오.
다른 구성 정책에 대한 자세한 내용은 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.10. ETCD 암호화 정책 링크 복사링크가 클립보드에 복사되었습니다!
etcd 암호화 정책을 적용하여 ETCD 데이터 저장소에서 중요한 데이터의 암호화를 감지하거나 활성화합니다. Kubernetes 구성 정책 컨트롤러는 etcd-encryption 정책의 상태를 모니터링합니다. 자세한 내용은 OpenShift Container Platform 설명서의 etcd 데이터 암호화 를 참조하십시오. 참고: ETCD 암호화 정책은 Red Hat OpenShift Container Platform 4 이상만 지원합니다.
다음 섹션에서 etcd-encryption 정책 구조에 대한 자세한 내용을 확인하십시오.
2.5.10.1. ETCD 암호화 정책 YAML 구조 링크 복사링크가 클립보드에 복사되었습니다!
etcd-encryption 정책은 다음 YAML 파일과 유사합니다.
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: policy-etcdencryption
namespace:
spec:
complianceType:
remediationAction:
namespaces:
exclude:
include:
object-templates:
- complianceType:
objectDefinition:
apiVersion: config.openshift.io/v1
kind: APIServer
metadata:
name: cluster
spec:
encryption:
type:
...
2.5.10.2. ETCD 암호화 정책 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 필드 | 설명 |
|---|---|
| apiVersion |
필수 항목입니다. 값을 |
| kind |
필수 항목입니다. 정책 유형을 나타내는 값을 |
| metadata.name | 필수 항목입니다. 정책 리소스를 식별하는 이름입니다. |
| metadata.namespaces | 선택 사항: |
| spec.namespace |
필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 |
| remediationAction |
선택 사항: 정책 수정을 지정합니다. 매개변수 값은 |
| disabled |
필수 항목입니다. 값을 |
| spec.complianceType |
필수 항목입니다. 값을 |
| spec.object-template | 선택 사항: 관리 클러스터에 평가하거나 적용해야 하는 기타 Kubernetes 오브젝트를 나열하는 데 사용합니다. OpenShift Container Platform 설명서의 etcd 데이터 암호화 를 참조하십시오. |
2.5.10.3. etcd 암호화 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
정책 샘플은 policy-etcdencryption.yaml 을 참조하십시오. 자세한 내용은 보안 정책 관리를 참조하십시오.
컨트롤러에서 모니터링하는 다른 구성 정책을 보려면 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.11. 컴플라이언스 Operator 정책 링크 복사링크가 클립보드에 복사되었습니다!
Compliance Operator는 OpenSCAP을 실행하는 Operator이며 필요한 보안 벤치마크와 함께 Red Hat OpenShift Container Platform 클러스터를 계속 준수할 수 있습니다. Compliance Operator 정책을 사용하여 관리 클러스터에 규정 준수 Operator를 설치할 수 있습니다.
규정 준수 Operator 정책은 Red Hat Advanced Cluster Management에서 Kubernetes 구성 정책으로 생성됩니다. OpenShift Container Platform 4.7 및 4.6은 규정 준수 Operator 정책을 지원합니다. 자세한 내용은 OpenShift Container Platform 설명서 의 Compliance Operator 이해를 참조하십시오.
참고: Compliance Operator 정책은 IBM Power 또는 IBM Z 아키텍처에서 지원되지 않는 OpenShift Container Platform Compliance Operator를 사용합니다. Compliance Operator에 대한 자세한 내용은 OpenShift Container Platform 설명서의 Compliance Operator 이해를 참조하십시오.
2.5.11.1. 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)입니다. 서브스크립션은 다음을 지원하는 컨테이너로 프로필을 가져옵니다.
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.7"
installPlanApproval: Automatic
name: compliance-operator
source: redhat-operators
sourceNamespace: openshift-marketplace
컴플라이언스 운영자 정책을 설치하면 compliance-operator,ocp4 및 rhcos4 의 포드가 생성됩니다. policy-compliance-operator-install.yaml 샘플을 참조하십시오.
규정 준수 Operator를 설치한 후 E8 검사 정책 및 OpenShift CIS 검사 정책을 생성하고 적용할 수도 있습니다. 자세한 내용은 E8 검사 정책 및 OpenShift CIS 스캔 정책을 참조하십시오.
규정 준수 운영자 정책 관리에 대한 자세한 내용은 보안 정책 관리를 참조하십시오. 구성 정책에 대한 자세한 내용은 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.12. E8 검사 정책 링크 복사링크가 클립보드에 복사되었습니다!
Essential 8 (E8) 검사 정책은 마스터 및 작업자 노드에서 E8 보안 프로필을 준수하는지 확인하는 검사를 배포합니다. E8 검사 정책을 적용하려면 규정 준수 Operator를 설치해야 합니다.
E8 검사 정책은 Red Hat Advanced Cluster Management에서 Kubernetes 구성 정책으로 생성됩니다. OpenShift Container Platform 4.7 및 4.6에서는 E8 검사 정책을 지원합니다. 자세한 내용은 OpenShift Container Platform 설명서 의 Compliance Operator 이해를 참조하십시오.
2.5.12.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: defaultstatus필드를 확인하여 검사가 완료되었는지 확인하는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: DONEComplianceCheckResultCR(사용자 정의 리소스)을 확인하여 검사 모음의 결과를 보고하는ComplianceCheckResult리소스(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.5.13. OpenShift CIS 검사 정책 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CIS 검사 정책은 마스터 및 작업자 노드를 확인하여 OpenShift CIS 보안 벤치마크를 준수하는 검사를 배포합니다. OpenShift CIS 정책을 적용하려면 규정 준수 Operator를 설치해야 합니다.
OpenShift CIS 검사 정책은 Red Hat Advanced Cluster Management에서 Kubernetes 구성 정책으로 생성됩니다. OpenShift Container Platform 4.9, 4.7 및 4.6은 OpenShift CIS 검사 정책을 지원합니다. 자세한 내용은 OpenShift Container Platform 설명서 의 Compliance Operator 이해를 참조하십시오.
2.5.13.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: defaultstatus필드를 확인하여 검사가 완료되었는지 확인하는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: DONEComplianceCheckResultCR(사용자 정의 리소스)을 확인하여 검사 모음의 결과를 보고하는ComplianceCheckResult리소스(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.5.14. Kyverno 네트워크 정책 추가 링크 복사링크가 클립보드에 복사되었습니다!
Kyverno add network 정책은 새 네임스페이스를 생성할 때 모든 트래픽을 거부하는 default-deny 라는 새 NetworkPolicy 리소스를 구성합니다. Kyverno 정책을 사용하려면 Kyverno 컨트롤러를 설치해야 합니다. 설치 정책은 policy-install-kyverno.yaml 을 참조하십시오.
다음 섹션에서 policy-kyverno-add-network-policy 정책 구조에 대한 자세한 내용을 확인하십시오.
2.5.14.1. Kyverno는 네트워크 정책 YAML 구조 추가 링크 복사링크가 클립보드에 복사되었습니다!
policy-kyverno-add-network-policy 정책은 다음 YAML 파일과 유사합니다.
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: add-networkpolicy
annotations:
policies.kyverno.io/title: Add Network Policy
policies.kyverno.io/category: Multi-Tenancy
policies.kyverno.io/subject: NetworkPolicy
policies.kyverno.io/description: >-
By default, Kubernetes allows communications across all Pods within a cluster.
The NetworkPolicy resource and a CNI plug-in that supports NetworkPolicy must be used to restrict
communications. A default NetworkPolicy should be configured for each Namespace to
default deny all ingress and egress traffic to the Pods in the Namespace. Application
teams can then configure additional NetworkPolicy resources to allow desired traffic
to application Pods from select sources. This policy will create a new NetworkPolicy resource
named `default-deny` which will deny all traffic anytime a new Namespace is created.
spec:
rules:
- name: default-deny
match:
resources:
kinds:
- Namespace
generate:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
name: default-deny
namespace: "{{request.object.metadata.name}}"
synchronize: true
data:
spec:
# select all pods in the namespace
podSelector: {}
# deny all traffic
policyTypes:
- Ingress
- Egress
2.5.14.2. Kyverno 네트워크 정책 샘플 추가 링크 복사링크가 클립보드에 복사되었습니다!
정책 샘플은 policy-kyverno-add-network-policy.yaml 을 참조하십시오. 정책 및 구성 정책 필드에 대한 자세한 내용은 정책 개요 문서 및 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.15. Kyverno에서 할당량 정책 추가 링크 복사링크가 클립보드에 복사되었습니다!
Kyverno 추가 할당량 정책은 새 네임스페이스를 생성할 때 새 ResourceQuota 및 LimitRange 리소스를 구성합니다. Kyverno 정책을 사용하려면 Kyverno 컨트롤러를 설치해야 합니다. 설치 정책은 policy-install-kyverno.yaml 을 참조하십시오.
다음 섹션에서 policy-kyverno-add-quota 정책 구조에 대한 자세한 내용을 확인하십시오.
2.5.15.1. Kyverno는 할당량 정책 YAML 구조 추가 링크 복사링크가 클립보드에 복사되었습니다!
policy-kyverno-add-quota 정책은 다음 YAML 파일과 유사합니다.
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: add-ns-quota
annotations:
policies.kyverno.io/title: Add Quota
policies.kyverno.io/category: Multi-Tenancy
policies.kyverno.io/subject: ResourceQuota, LimitRange
policies.kyverno.io/description: >-
To better control the number of resources that can be created in a given
Namespace and provide default resource consumption limits for Pods,
ResourceQuota and LimitRange resources are recommended.
This policy will generate ResourceQuota and LimitRange resources when
a new Namespace is created.
spec:
rules:
- name: generate-resourcequota
match:
resources:
kinds:
- Namespace
generate:
apiVersion: v1
kind: ResourceQuota
name: default-resourcequota
synchronize: true
namespace: "{{request.object.metadata.name}}"
data:
spec:
hard:
requests.cpu: '4'
requests.memory: '16Gi'
limits.cpu: '4'
limits.memory: '16Gi'
- name: generate-limitrange
match:
resources:
kinds:
- Namespace
generate:
apiVersion: v1
kind: LimitRange
name: default-limitrange
synchronize: true
namespace: "{{request.object.metadata.name}}"
data:
spec:
limits:
- default:
cpu: 500m
memory: 1Gi
defaultRequest:
cpu: 200m
memory: 256Mi
type: Container
2.5.15.2. Kyverno에서 할당량 정책 샘플 추가 링크 복사링크가 클립보드에 복사되었습니다!
정책 샘플은 policy-kyverno-add-quota.yaml 을 참조하십시오. 정책 및 구성 정책 필드에 대한 자세한 내용은 정책 개요 문서 및 Kubernetes 구성 정책 컨트롤러를 참조하십시오.
2.5.16. Kyverno 동기화 보안 정책 링크 복사링크가 클립보드에 복사되었습니다!
Kyverno 동기화 보안 정책은 기본 네임스페이스에 존재하는 regcred 라는 보안을 새 네임스페이스에 복사하고 변경 사항이 탐지될 때 시크릿을 업데이트합니다. Kyverno 정책을 사용하려면 Kyverno 컨트롤러를 설치해야 합니다. 설치 정책은 policy-install-kyverno.yaml 을 참조하십시오.
다음 섹션에서 policy-kyverno-sync-secrets 정책 구조에 대해 자세히 알아보십시오.
2.5.16.1. Kyverno 동기화 보안 정책 YAML 구조 링크 복사링크가 클립보드에 복사되었습니다!
policy-kyverno-sync-secrets 정책은 다음 YAML 파일과 유사합니다.
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: sync-secrets
annotations:
policies.kyverno.io/title: Sync Secrets
policies.kyverno.io/category: Sample
policies.kyverno.io/subject: Secret
policies.kyverno.io/description: >-
Secrets like registry credentials often need to exist in multiple
Namespaces so Pods there have access. Manually duplicating those Secrets
is time consuming and error prone. This policy will copy a
Secret called `regcred` which exists in the `default` Namespace to
new Namespaces when they are created. It will also push updates to
the copied Secrets should the source Secret be changed.
spec:
rules:
- name: sync-image-pull-secret
match:
resources:
kinds:
- Namespace
generate:
apiVersion: v1
kind: Secret
name: regcred
namespace: "{{request.object.metadata.name}}"
synchronize: true
clone:
namespace: default
name: regcred
2.5.16.2. Kyverno 동기화 보안 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
정책 샘플은 policy-kyverno-sync-secrets.yaml 을 참조하십시오. 정책 및 구성 정책 필드에 대한 자세한 내용은 정책 개요 문서 및 Kubernetes 구성 정책 컨트롤러를 참조하십시오.