2.5. 지원되는 정책


Red Hat Advanced Cluster Management for Kubernetes에서 정책을 생성하고 관리할 때 hub 클러스터에서 규칙, 프로세스 및 제어를 정의하는 방법을 알아보려면 지원되는 정책을 확인하십시오.

참고: 의 기존 정책을 복사하여 Policy YAML 에 붙여넣을 수 있습니다. 기존 정책을 붙여넣을 때 매개변수 필드의 값이 자동으로 입력됩니다. 검색 기능을 사용하여 정책 YAML 파일에서 콘텐츠를 검색할 수도 있습니다.

2.5.1. 즉시 사용 가능한 정책에 대한 지원 매트릭스

Expand
정책Red Hat OpenShift Container Platform 3.11Red 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. 메모리 사용량 정책 테이블

Expand
필드설명

apiVersion

필수 항목입니다. 값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목입니다. 정책 유형을 나타내려면 값을 Policy 로 설정합니다.

metadata.name

필수 항목입니다. 정책 리소스를 식별하는 이름입니다.

metadata.namespaces

선택 사항:

spec.namespace

필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 네임스페이스 인 .에 대한 매개변수 값을 입력합니다. exclude 매개변수는 정책을 명시적으로 적용하지 않으려는 네임스페이스를 지정합니다. 참고: 정책 컨트롤러의 오브젝트 템플릿에 지정된 네임스페이스는 해당 상위 정책의 네임스페이스를 덮어씁니다.

remediationAction

선택 사항: 정책 수정을 지정합니다. 매개변수 값은 강제 시행정보 입니다.

disabled

필수 항목입니다. 값을 true 또는 false 로 설정합니다. disabled 매개변수는 정책을 활성화하고 비활성화하는 기능을 제공합니다.

spec.complianceType

필수 항목입니다. 값을 "musthave"로 설정합니다.

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 테이블

Expand
필드설명

apiVersion

필수 항목입니다. 값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목입니다. 정책 유형을 나타내려면 값을 Policy 로 설정합니다.

metadata.name

필수 항목입니다. 정책 리소스를 식별하는 이름입니다.

metadata.namespaces

선택 사항:

spec.namespace

필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 네임스페이스 인 .에 대한 매개변수 값을 입력합니다. exclude 매개변수는 정책을 명시적으로 적용하지 않으려는 네임스페이스를 지정합니다. 참고: 정책 컨트롤러의 오브젝트 템플릿에 지정된 네임스페이스는 해당 상위 정책의 네임스페이스를 덮어씁니다.

remediationAction

선택 사항: 정책 수정을 지정합니다. 매개변수 값은 강제 시행정보 입니다.

disabled

필수 항목입니다. 값을 true 또는 false 로 설정합니다. disabled 매개변수는 정책을 활성화하고 비활성화하는 기능을 제공합니다.

spec.complianceType

필수 항목입니다. 값을 "musthave"로 설정합니다.

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 를 참조하십시오.

참고:

자세한 내용은 다음 섹션을 참조하십시오.

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 테이블

Expand
필드설명

apiVersion

필수 항목입니다. 값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목입니다. 정책 유형을 나타내려면 값을 Policy 로 설정합니다.

metadata.name

필수 항목입니다. 정책 리소스를 식별하는 이름입니다.

metadata.namespaces

선택 사항:

spec.namespace

필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 네임스페이스 인 .에 대한 매개변수 값을 입력합니다. exclude 매개변수는 정책을 명시적으로 적용하지 않으려는 네임스페이스를 지정합니다. 참고: 정책 컨트롤러의 오브젝트 템플릿에 지정된 네임스페이스는 해당 상위 정책의 네임스페이스를 덮어씁니다.

remediationAction

선택 사항: 정책 수정을 지정합니다. 매개변수 값은 강제 시행정보 입니다.

disabled

필수 항목입니다. 값을 true 또는 false 로 설정합니다. disabled 매개변수는 정책을 활성화하고 비활성화하는 기능을 제공합니다.

spec.complianceType

필수 항목입니다. 값을 "musthave"로 설정합니다.

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 정책 테이블

Expand
필드설명

apiVersion

필수 항목입니다. 값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목입니다. 정책 유형을 나타내려면 값을 Policy 로 설정합니다.

metadata.name

필수 항목입니다. 정책 리소스를 식별하는 이름입니다.

metadata.namespaces

선택 사항:

spec.namespace

필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 네임스페이스 인 .에 대한 매개변수 값을 입력합니다. exclude 매개변수는 정책을 명시적으로 적용하지 않으려는 네임스페이스를 지정합니다. 참고: 정책 컨트롤러의 오브젝트 템플릿에 지정된 네임스페이스는 해당 상위 정책의 네임스페이스를 덮어씁니다.

remediationAction

선택 사항: 정책 수정을 지정합니다. 매개변수 값은 강제 시행정보 입니다.

disabled

필수 항목입니다. 값을 true 또는 false 로 설정합니다. disabled 매개변수는 정책을 활성화하고 비활성화하는 기능을 제공합니다.

spec.complianceType

필수 항목입니다. 값을 "musthave"로 설정합니다.

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 보안 정책 테이블

Expand
필드설명

apiVersion

필수 항목입니다. 값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목입니다. 정책 유형을 나타내려면 값을 Policy 로 설정합니다.

metadata.name

필수 항목입니다. 정책 리소스를 식별하는 이름입니다.

metadata.namespaces

선택 사항:

spec.namespace

필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 네임스페이스 인 .에 대한 매개변수 값을 입력합니다. exclude 매개변수는 정책을 명시적으로 적용하지 않으려는 네임스페이스를 지정합니다. 참고: 정책 컨트롤러의 오브젝트 템플릿에 지정된 네임스페이스는 해당 상위 정책의 네임스페이스를 덮어씁니다.

remediationAction

선택 사항: 정책 수정을 지정합니다. 매개변수 값은 강제 시행정보 입니다.

disabled

필수 항목입니다. 값을 true 또는 false 로 설정합니다. disabled 매개변수는 정책을 활성화하고 비활성화하는 기능을 제공합니다.

spec.complianceType

필수 항목입니다. 값을 "musthave"로 설정합니다.

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. 역할 정책 테이블

Expand
필드설명

apiVersion

필수 항목입니다. 값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목입니다. 정책 유형을 나타내려면 값을 Policy 로 설정합니다.

metadata.name

필수 항목입니다. 정책 리소스를 식별하는 이름입니다.

metadata.namespaces

선택 사항:

spec.namespace

필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 네임스페이스 인 .에 대한 매개변수 값을 입력합니다. exclude 매개변수는 정책을 명시적으로 적용하지 않으려는 네임스페이스를 지정합니다. 참고: 정책 컨트롤러의 오브젝트 템플릿에 지정된 네임스페이스는 해당 상위 정책의 네임스페이스를 덮어씁니다.

remediationAction

선택 사항: 정책 수정을 지정합니다. 매개변수 값은 강제 시행정보 입니다.

disabled

필수 항목입니다. 값을 true 또는 false 로 설정합니다. disabled 매개변수는 정책을 활성화하고 비활성화하는 기능을 제공합니다.

spec.complianceType

필수 항목입니다. 값을 "musthave"로 설정합니다.

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. 역할 바인딩 정책 테이블

Expand
필드설명

apiVersion

필수 항목입니다. 값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목입니다. 정책 유형을 나타내려면 값을 Policy 로 설정합니다.

metadata.name

필수 항목입니다. 정책 리소스를 식별하는 이름입니다.

metadata.namespaces

필수 항목입니다. 정책이 생성되는 관리형 클러스터 내의 네임스페이스입니다.

spec

필수 항목입니다. 규정 준수 위반을 식별하고 수정하는 방법에 대한 사양입니다.

metadata.name

필수 항목입니다. 정책 리소스를 식별하는 이름입니다.

metadata.namespaces

선택 사항:

spec.complianceType

필수 항목입니다. 값을 "musthave"로 설정합니다.

spec.namespace

필수 항목입니다. 정책을 적용하려는 관리형 클러스터 네임스페이스입니다. 정책에 적용할 네임스페이스 인 .에 대한 매개변수 값을 입력합니다. exclude 매개변수는 정책을 명시적으로 적용하지 않으려는 네임스페이스를 지정합니다. 참고: 정책 컨트롤러의 오브젝트 템플릿에 지정된 네임스페이스는 해당 상위 정책의 네임스페이스를 덮어씁니다.

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 정책 테이블

Expand
필드설명

apiVersion

필수 항목입니다. 값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목입니다. 정책 유형을 나타내려면 값을 Policy 로 설정합니다.

metadata.name

필수 항목입니다. 정책 리소스를 식별하는 이름입니다.

metadata.namespace

필수 항목입니다. 정책이 생성되는 관리형 클러스터 내의 네임스페이스입니다.

spec.complianceType

필수 항목입니다. 값을 "musthave"로 설정합니다.

spec.remediationAction

필수 항목입니다. 정책 수정을 지정합니다. 매개변수 값은 강제 시행정보 입니다. 중요: 일부 정책은 적용 기능을 지원하지 않을 수 있습니다.

spec.namespace

필수 항목입니다. 정책을 적용하려는 관리형 클러스터 네임스페이스입니다. 정책에 적용할 네임스페이스 인 .에 대한 매개변수 값을 입력합니다. exclude 매개변수는 정책을 명시적으로 적용하지 않으려는 네임스페이스를 지정합니다. 참고: 정책 컨트롤러의 오브젝트 템플릿에 지정된 네임스페이스는 해당 상위 정책의 네임스페이스를 덮어씁니다.

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 암호화 정책 테이블

Expand
표 2.5. 매개변수 테이블
필드설명

apiVersion

필수 항목입니다. 값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목입니다. 정책 유형을 나타내는 값을 Policy 로 설정합니다(예: ConfigurationPolicy ).

metadata.name

필수 항목입니다. 정책 리소스를 식별하는 이름입니다.

metadata.namespaces

선택 사항:

spec.namespace

필수 항목입니다. 정책이 적용되는 허브 클러스터 내의 네임스페이스입니다. 정책에 적용할 네임스페이스 인 .에 대한 매개변수 값을 입력합니다. exclude 매개변수는 정책을 명시적으로 적용하지 않으려는 네임스페이스를 지정합니다. 참고: 정책 컨트롤러의 오브젝트 템플릿에 지정된 네임스페이스는 해당 상위 정책의 네임스페이스를 덮어씁니다.

remediationAction

선택 사항: 정책 수정을 지정합니다. 매개변수 값은 강제 시행정보 입니다. 중요: 일부 정책은 적용 기능을 지원하지 않을 수 있습니다.

disabled

필수 항목입니다. 값을 true 또는 false 로 설정합니다. disabled 매개변수는 정책을 활성화하고 비활성화하는 기능을 제공합니다.

spec.complianceType

필수 항목입니다. 값을 "musthave"로 설정합니다.

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,ocp4rhcos4 의 포드가 생성됩니다. 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: 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(사용자 정의 리소스)을 확인하여 검사 모음의 결과를 보고하는 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: 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(사용자 정의 리소스)을 확인하여 검사 모음의 결과를 보고하는 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 추가 할당량 정책은 새 네임스페이스를 생성할 때 새 ResourceQuotaLimitRange 리소스를 구성합니다. 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 구성 정책 컨트롤러를 참조하십시오.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동