2.4. 타사 정책 컨트롤러 통합


타사 정책을 통합하여 정책 템플릿 내에서 사용자 지정 주석을 생성하여 하나 이상의 규정 준수 표준, 제어 카테고리 및 제어를 지정합니다.

정책 수집/커뮤니티 의 타사 정책을 사용할 수도 있습니다.

다음 타사 정책을 통합하는 방법을 알아보십시오.

2.4.1. 게이트키퍼 제약 조건 및 제약 조건 템플릿 통합

Gatekeeper는OPA(Open Policy Agent)를 사용하여 실행되는 CRD(사용자 정의 리소스 정의) 기반 정책을 적용하는 검증 웹 후크입니다. 게이트 키퍼는 게이트키퍼 운영자 정책을 사용하여 클러스터에 설치할 수 있습니다. 게이트키퍼 정책을 사용하여 Kubernetes 리소스 컴플라이언스를 평가할 수 있습니다. OPA를 정책 엔진으로 활용하고 정책 언어로 Rego를 사용할 수 있습니다.

게이트키퍼 정책은 Red Hat Advanced Cluster Management에서 Kubernetes 구성 정책으로 생성됩니다. 게이트키퍼 정책에는 제약 조건 템플릿(ConstraintTemplates) 및 제약 조건, 감사 템플릿, 승인 템플릿이 포함됩니다. 자세한 내용은 Gatekeeper 업스트림 리포지토리를 참조하십시오.

Red Hat Advanced Cluster Management는 Gatekeeper용 버전 3.3.0을 지원하며 Red Hat Advanced Cluster Management gatekeeper 정책에서 다음과 같은 제약 조건 템플릿을 적용합니다.

  • ConstraintTemplates 및 제약 조건: policy-gatekeeper-k8srequiredlabels 정책을 사용하여 관리 클러스터에서 게이트키퍼 제약 조건 템플릿을 생성합니다.

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: policy-gatekeeper-k8srequiredlabels
    spec:
      remediationAction: enforce # will be overridden by remediationAction in parent policy
      severity: low
      object-templates:
        - complianceType: musthave
          objectDefinition:
            apiVersion: templates.gatekeeper.sh/v1beta1
            kind: ConstraintTemplate
            metadata:
              name: k8srequiredlabels
            spec:
              crd:
                spec:
                  names:
                    kind: K8sRequiredLabels
                  validation:
                    # Schema for the `parameters` field
                    openAPIV3Schema:
                      properties:
                        labels:
                          type: array
                          items: string
              targets:
                - target: admission.k8s.gatekeeper.sh
                  rego: |
                    package k8srequiredlabels
                    violation[{"msg": msg, "details": {"missing_labels": missing}}] {
                      provided := {label | input.review.object.metadata.labels[label]}
                      required := {label | label := input.parameters.labels[_]}
                      missing := required - provided
                      count(missing) > 0
                      msg := sprintf("you must provide labels: %v", [missing])
                    }
        - complianceType: musthave
          objectDefinition:
            apiVersion: constraints.gatekeeper.sh/v1beta1
            kind: K8sRequiredLabels
            metadata:
              name: ns-must-have-gk
            spec:
              match:
                kinds:
                  - apiGroups: [""]
                    kinds: ["Namespace"]
                namespaces:
                  - e2etestsuccess
                  - e2etestfail
              parameters:
                labels: ["gatekeeper"]
    Copy to Clipboard Toggle word wrap
  • 감사 템플릿: policy-gatekeeper-audit 를 사용하여 기존의 잘못된 구성을 감지하기 위해 적용되는 게이트 키퍼 정책에 대해 정기적으로 기존 리소스를 확인하고 평가합니다.

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: policy-gatekeeper-audit
    spec:
      remediationAction: inform # will be overridden by remediationAction in parent policy
      severity: low
      object-templates:
        - complianceType: musthave
          objectDefinition:
            apiVersion: constraints.gatekeeper.sh/v1beta1
            kind: K8sRequiredLabels
            metadata:
              name: ns-must-have-gk
            status:
              totalViolations: 0
    Copy to Clipboard Toggle word wrap
  • 승인 템플릿: policy-gatekeeper-admission 을 사용하여 게이트키퍼 승인 Webhook에 의해 생성되는 잘못된 설정을 확인합니다.

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: policy-gatekeeper-admission
    spec:
      remediationAction: inform # will be overridden by remediationAction in parent policy
      severity: low
      object-templates:
        - complianceType: mustnothave
          objectDefinition:
            apiVersion: v1
            kind: Event
            metadata:
              namespace: openshift-gatekeeper-system # set it to the actual namespace where gatekeeper is running if different
              annotations:
                constraint_action: deny
                constraint_kind: K8sRequiredLabels
                constraint_name: ns-must-have-gk
                event_type: violation
    Copy to Clipboard Toggle word wrap

자세한 내용은 policy-gatekeeper-sample.yaml 을 참조하십시오.

다른 정책 관리에 대한 자세한 내용은 구성 정책 관리를 참조하십시오. 보안 프레임워크에 대한 자세한 내용은 관리에서 참조하십시오.

2.4.2. 정책 생성기

정책 생성기는 Kustomize를 사용하여 Red Hat Advanced Cluster Management for Kubernetes 애플리케이션 라이프사이클 서브스크립션 GitOps 워크플로우의 일부로, Kustomize를 사용하여 Red Hat Advanced Cluster Management 정책을 생성합니다. 정책 생성기는 Kubernetes 매니페스트 YAML 파일에서 Red Hat Advanced Cluster Management 정책을 빌드하는 데 사용되는 PolicyGenerator 매니페스트 YAML 파일을 통해 제공됩니다. 정책 생성기는 Kustomize 생성기 플러그인으로 구현됩니다. Kustomize에 대한 자세한 내용은 Kustomize 설명서 를 참조하십시오.

이 Red Hat Advanced Cluster Management 버전에 번들된 정책 생성기는 v1.9.0입니다.

2.4.2.1. 정책 생성기 기능

정책 생성기 및 Red Hat Advanced Cluster Management 애플리케이션 라이프사이클 서브스크립션 GitOps와의 통합은 Red Hat Advanced Cluster Management 정책을 통해 Kubernetes 리소스 오브젝트를 관리 OpenShift 클러스터 및 Kubernetes 클러스터에 배포할 수 있도록 단순화합니다. 특히 정책 생성기를 사용하여 다음 작업을 완료합니다.

  • 모든 Kubernetes 매니페스트 파일을 Kustomize 디렉토리에서 생성된 매니페스트를 포함하여 Red Hat Advanced Cluster Management 구성 정책 으로 변환합니다.
  • 생성된 Red Hat Advanced Cluster Management 정책에 삽입되기 전에 입력 Kubernetes 매니페스트를 패치합니다.
  • Red Hat Advanced Cluster Management for Kubernetes를 통해 Gatekeeper 및 정책 위반에 대해 보고할 수 있는 추가 구성 정책을 생성합니다.
  • hub 클러스터에서 정책 세트를 생성합니다. 자세한 내용은 정책 세트 컨트롤러를 참조하십시오.

자세한 내용은 에 대해 다음 주제를 확인하십시오.

2.4.2.2. 정책 생성기 구성 구조

정책 생성기는 PolicyGenerator 종류 및 policy.open-cluster-management.io/v1 API 버전의 매니페스트로 구성된 Kustomize 생성기 플러그인입니다.

플러그인을 사용하려면 kustomization.yaml 파일에 generators 섹션을 추가하여 시작합니다. 다음 예제를 확인합니다.

generators:
  - policy-generator-config.yaml
Copy to Clipboard Toggle word wrap

이전 예제에서 참조하는 policy-generator-config.yaml 파일은 생성할 정책의 지침이 포함된 YAML 파일입니다. 간단한 정책 생성기 구성 파일은 다음 예와 유사합니다.

apiVersion: policy.open-cluster-management.io/v1
kind: PolicyGenerator
metadata:
  name: config-data-policies
policyDefaults:
  namespace: policies
  policySets: []
policies:
  - name: config-data
    manifests:
      - path: configmap.yaml
Copy to Clipboard Toggle word wrap

configmap.yaml 은 정책에 포함할 Kubernetes 매니페스트 YAML 파일을 나타냅니다. 또는 Kustomize 디렉터리의 경로 또는 여러 Kubernetes 매니페스트 YAML 파일이 있는 디렉터리를 설정할 수 있습니다. 다음 예제를 확인합니다.

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config
  namespace: default
data:
  key1: value1
  key2: value2
Copy to Clipboard Toggle word wrap

생성된 PolicyPlacementRulePlacementBinding 과 함께 다음 예와 유사합니다.

apiVersion: apps.open-cluster-management.io/v1
kind: PlacementRule
metadata:
  name: placement-config-data
  namespace: policies
spec:
  clusterConditions:
  - status: "True"
    type: ManagedClusterConditionAvailable
  clusterSelector:
    matchExpressions: []
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
  name: binding-config-data
  namespace: policies
placementRef:
  apiGroup: apps.open-cluster-management.io
  kind: PlacementRule
  name: placement-config-data
subjects:
- apiGroup: policy.open-cluster-management.io
  kind: Policy
  name: config-data
---
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  annotations:
    policy.open-cluster-management.io/categories: CM Configuration Management
    policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
    policy.open-cluster-management.io/standards: NIST SP 800-53
  name: config-data
  namespace: policies
spec:
  disabled: false
  policy-templates:
  - objectDefinition:
      apiVersion: policy.open-cluster-management.io/v1
      kind: ConfigurationPolicy
      metadata:
        name: config-data
      spec:
        object-templates:
        - complianceType: musthave
          objectDefinition:
            apiVersion: v1
            data:
              key1: value1
              key2: value2
            kind: ConfigMap
            metadata:
              name: my-config
              namespace: default
        remediationAction: inform
        severity: low
Copy to Clipboard Toggle word wrap

자세한 내용은 policy-generator-plugin 리포지터리를 참조하십시오.

2.4.2.3. Operator를 설치하기 위한 정책 생성

Red Hat Advanced Cluster Management 정책을 일반적으로 사용하는 것은 하나 이상의 관리형 OpenShift 클러스터에 Operator를 설치하는 것입니다. 다양한 설치 모드 및 필수 리소스의 다음 예제를 확인합니다.

2.4.2.3.1. OpenShift GitOps를 설치하는 정책

이 예제에서는 정책 생성기를 사용하여 OpenShift GitOps를 설치하는 정책을 생성하는 방법을 보여줍니다. OpenShift GitOps Operator는 모든 네임스페이스 설치 모드를 제공합니다. 먼저 다음 예제와 같이 openshift-gitops-subscription.yaml 이라는 서브스크립션 매니페스트 파일을 생성해야 합니다.

apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: openshift-gitops-operator
  namespace: openshift-operators
spec:
  channel: stable
  name: openshift-gitops-operator
  source: redhat-operators
  sourceNamespace: openshift-marketplace
Copy to Clipboard Toggle word wrap

특정 버전의 Operator에 고정하려면 다음 매개변수 및 값을 추가할 수 있습니다 . spec.startingCSV: openshift-gitops-operator.v<version > . &lt ;version& gt;을 기본 버전으로 바꿉니다.

다음으로 policy-generator -config.yaml이라는 정책 생성기 구성 파일이 필요합니다. 다음 예는 모든 OpenShift 관리 클러스터에 OpenShift GitOps를 설치하는 단일 정책을 보여줍니다.

apiVersion: policy.open-cluster-management.io/v1
kind: PolicyGenerator
metadata:
  name: install-openshift-gitops
policyDefaults:
  namespace: policies
  placement:
    clusterSelectors:
      vendor: "OpenShift"
  remediationAction: enforce
policies:
  - name: install-openshift-gitops
    manifests:
      - path: openshift-gitops-subscription.yaml
Copy to Clipboard Toggle word wrap

필요한 마지막 파일은 kustomization.yaml 파일입니다. kustomization.yaml 파일에는 다음 설정이 필요합니다.

generators:
  - policy-generator-config.yaml
Copy to Clipboard Toggle word wrap

생성된 정책은 다음 파일과 유사합니다.

apiVersion: apps.open-cluster-management.io/v1
kind: PlacementRule
metadata:
  name: placement-install-openshift-gitops
  namespace: policies
spec:
  clusterConditions:
    - status: "True"
      type: ManagedClusterConditionAvailable
  clusterSelector:
    matchExpressions:
      - key: vendor
        operator: In
        values:
          - OpenShift
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
  name: binding-install-openshift-gitops
  namespace: policies
placementRef:
  apiGroup: apps.open-cluster-management.io
  kind: PlacementRule
  name: placement-install-openshift-gitops
subjects:
  - apiGroup: policy.open-cluster-management.io
    kind: Policy
    name: install-openshift-gitops
---
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  annotations:
    policy.open-cluster-management.io/categories: CM Configuration Management
    policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
    policy.open-cluster-management.io/standards: NIST SP 800-53
  name: install-openshift-gitops
  namespace: policies
spec:
  disabled: false
  policy-templates:
    - objectDefinition:
        apiVersion: policy.open-cluster-management.io/v1
        kind: ConfigurationPolicy
        metadata:
          name: install-openshift-gitops
        spec:
          object-templates:
            - complianceType: musthave
              objectDefinition:
                apiVersion: operators.coreos.com/v1alpha1
                kind: Subscription
                metadata:
                  name: openshift-gitops-operator
                  namespace: openshift-operators
                spec:
                  channel: stable
                  name: openshift-gitops-operator
                  source: redhat-operators
                  sourceNamespace: openshift-marketplace
          remediationAction: enforce
          severity: low
Copy to Clipboard Toggle word wrap

입력이 OpenShift Container Platform 설명서에서 제공되는 모든 정책은 정책 생성기에 의해 완전히 지원됩니다. OpenShift Container Platform 설명서에서 지원되는 YAML 입력의 다음 예제를 확인하십시오.

자세한 내용은 OpenShift GitOpsOperator 설명서 이해를 참조하십시오.

2.4.2.3.2. Compliance Operator를 설치하는 정책

네임스페이스 된 설치 모드를 사용하는 Operator의 경우 Compliance Operator와 같이 OperatorGroup 매니페스트도 필요합니다. 이 예제에서는 Compliance Operator를 설치하는 생성된 정책을 보여줍니다.

먼저 네임스페이스가 있는 YAML 파일, 서브스크립션compliance-operator.yaml 이라는 OperatorGroup 매니페스트를 생성해야 합니다. 다음 예제에서는 이러한 매니페스트를 compliance-operator 네임스페이스에 설치합니다.

apiVersion: v1
kind: Namespace
metadata:
  name: openshift-compliance
---
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: compliance-operator
  namespace: openshift-compliance
spec:
  channel: release-0.1
  name: compliance-operator
  source: redhat-operators
  sourceNamespace: openshift-marketplace
---
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
  name: compliance-operator
  namespace: openshift-compliance
spec:
  targetNamespaces:
    - compliance-operator
Copy to Clipboard Toggle word wrap

다음으로 policy-generator -config.yaml이라는 정책 생성기 구성 파일이 필요합니다. 다음 예제는 모든 OpenShift 관리 클러스터에 Compliance Operator를 설치하는 단일 정책을 보여줍니다.

apiVersion: policy.open-cluster-management.io/v1
kind: PolicyGenerator
metadata:
  name: install-compliance-operator
policyDefaults:
  namespace: policies
  placement:
    clusterSelectors:
      vendor: "OpenShift"
  remediationAction: enforce
policies:
  - name: install-compliance-operator
    manifests:
      - path: compliance-operator.yaml
Copy to Clipboard Toggle word wrap

필요한 마지막 파일은 kustomization.yaml 파일입니다. kustomization.yaml 파일에 다음 구성이 필요합니다.

generators:
  - policy-generator-config.yaml
Copy to Clipboard Toggle word wrap

결과적으로 생성된 정책은 다음 파일과 유사합니다.

apiVersion: apps.open-cluster-management.io/v1
kind: PlacementRule
metadata:
  name: placement-install-compliance-operator
  namespace: policies
spec:
  clusterConditions:
    - status: "True"
      type: ManagedClusterConditionAvailable
  clusterSelector:
    matchExpressions:
      - key: vendor
        operator: In
        values:
          - OpenShift
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
  name: binding-install-compliance-operator
  namespace: policies
placementRef:
  apiGroup: apps.open-cluster-management.io
  kind: PlacementRule
  name: placement-install-compliance-operator
subjects:
  - apiGroup: policy.open-cluster-management.io
    kind: Policy
    name: install-compliance-operator
---
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  annotations:
    policy.open-cluster-management.io/categories: CM Configuration Management
    policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
    policy.open-cluster-management.io/standards: NIST SP 800-53
  name: install-compliance-operator
  namespace: policies
spec:
  disabled: false
  policy-templates:
    - objectDefinition:
        apiVersion: policy.open-cluster-management.io/v1
        kind: ConfigurationPolicy
        metadata:
          name: install-compliance-operator
        spec:
          object-templates:
            - complianceType: musthave
              objectDefinition:
                apiVersion: v1
                kind: Namespace
                metadata:
                  name: openshift-compliance
            - complianceType: musthave
              objectDefinition:
                apiVersion: operators.coreos.com/v1alpha1
                kind: Subscription
                metadata:
                  name: compliance-operator
                  namespace: openshift-compliance
                spec:
                  channel: release-0.1
                  name: compliance-operator
                  source: redhat-operators
                  sourceNamespace: openshift-marketplace
            - complianceType: musthave
              objectDefinition:
                apiVersion: operators.coreos.com/v1
                kind: OperatorGroup
                metadata:
                  name: compliance-operator
                  namespace: openshift-compliance
                spec:
                  targetNamespaces:
                    - compliance-operator
          remediationAction: enforce
          severity: low
Copy to Clipboard Toggle word wrap

자세한 내용은 Compliance Operator 설명서 를 참조하십시오.

2.4.2.4. OpenShift GitOps(ArgoCD)에 정책 생성기 설치

ArgoCD 를 기반으로 하는 OpenShift GitOps를 사용하여 GitOps를 통해 정책 생성기를 생성할 수도 있습니다. 정책 생성기가 OpenShift GitOps 컨테이너 이미지에 사전 설치되지 않으므로 일부 사용자 지정이 필요합니다. 후속 조치를 위해 OpenShift GitOps Operator 가 Red Hat Advanced Cluster Management hub 클러스터에 설치되어 hub 클러스터에 로그인해야 합니다.

OpenShift GitOps가 Kustomize를 실행할 때 정책 생성기에 액세스할 수 있도록 Init Container는 Red Hat Advanced Cluster Management Application Subscription 컨테이너 이미지에서 Kustomize를 실행하는 OpenShift GitOps 컨테이너로 정책 생성기 바이너리를 복사해야 합니다. 자세한 내용은 Pod를 배포하기 전에 Init Container를 사용하여 작업을 수행합니다. 또한 Kustomize를 실행할 때 --enable-alpha-plugins 플래그를 제공하도록 OpenShift GitOps를 구성해야 합니다. 다음 명령을 사용하여 OpenShift GitOps argocd 오브젝트 편집을 시작합니다.

oc -n openshift-gitops edit argocd openshift-gitops
Copy to Clipboard Toggle word wrap

그런 다음 다음 추가 YAML 콘텐츠를 포함하도록 OpenShift GitOps argocd 오브젝트를 수정합니다. 새로운 주요 버전의 Red Hat Advanced Cluster Management가 릴리스되고 정책 생성기를 최신 버전으로 업데이트하려면 Init Container에서 사용하는 registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel8 이미지를 최신 태그로 업데이트해야 합니다. 다음 예제를 보고 < version >을 2.6 또는 원하는 Red Hat Advanced Cluster Management 버전으로 교체합니다.

apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
  name: openshift-gitops
  namespace: openshift-gitops
spec:
  kustomizeBuildOptions: --enable-alpha-plugins
  repo:
    env:
    - name: KUSTOMIZE_PLUGIN_HOME
      value: /etc/kustomize/plugin
    initContainers:
    - args:
      - -c
      - cp /etc/kustomize/plugin/policy.open-cluster-management.io/v1/policygenerator/PolicyGenerator
        /policy-generator/PolicyGenerator
      command:
      - /bin/bash
      image: registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel8:v<version>
      name: policy-generator-install
      volumeMounts:
      - mountPath: /policy-generator
        name: policy-generator
    volumeMounts:
    - mountPath: /etc/kustomize/plugin/policy.open-cluster-management.io/v1/policygenerator
      name: policy-generator
    volumes:
    - emptyDir: {}
      name: policy-generator
Copy to Clipboard Toggle word wrap

OpenShift GitOps에서 정책 생성기를 사용할 수 있으므로 Red Hat Advanced Cluster Management hub 클러스터에서 정책을 생성할 수 있는 OpenShift GitOps에 액세스 권한이 부여되어야 합니다. 생성, 읽기, 업데이트, 삭제 정책 및 배치에 액세스할 수 있는 openshift-gitops-policy-admin 이라는 다음 ClusterRole 리소스를 생성합니다. ClusterRole 은 다음 예와 유사할 수 있습니다.

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: openshift-gitops-policy-admin
rules:
  - verbs:
      - get
      - list
      - watch
      - create
      - update
      - patch
      - delete
    apiGroups:
      - policy.open-cluster-management.io
    resources:
      - policies
      - placementbindings
  - verbs:
      - get
      - list
      - watch
      - create
      - update
      - patch
      - delete
    apiGroups:
      - apps.open-cluster-management.io
    resources:
      - placementrules
  - verbs:
      - get
      - list
      - watch
      - create
      - update
      - patch
      - delete
    apiGroups:
      - cluster.open-cluster-management.io
    resources:
      - placements
      - placements/status
      - placementdecisions
      - placementdecisions/status
Copy to Clipboard Toggle word wrap

또한 ClusterRoleBinding 오브젝트를 생성하여 OpenShift GitOps 서비스 계정 액세스 권한을 openshift-gitops-policy-admin ClusterRole 에 부여합니다. ClusterRoleBinding 은 다음 리소스와 유사할 수 있습니다.

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: openshift-gitops-policy-admin
subjects:
  - kind: ServiceAccount
    name: openshift-gitops-argocd-application-controller
    namespace: openshift-gitops
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: openshift-gitops-policy-admin
Copy to Clipboard Toggle word wrap

2.4.2.5. 정책 생성기 구성 참조 테이블

네임스페이스 를 제외한 policyDefaults 섹션의 모든 필드는 정책별로 덮어쓸 수 있습니다.

Expand
표 2.6. 매개변수 테이블
필드선택적 또는 필수설명

apiVersion

필수 항목

값을 policy.open-cluster-management.io/v1 로 설정합니다.

kind

필수 항목

정책 유형을 표시하려면 해당 값을 PolicyGenerator 로 설정합니다.

metadata.name

필수 항목

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

placementBindingDefaults.name

선택 사항

여러 정책이 동일한 배치를 사용하는 경우 이 이름은 생성되는 PlacementBinding 에 대한 고유 이름을 생성하고 배치를 참조하는 정책의 배열로 바인딩합니다.

policyDefaults

필수 항목

여기에 나열된 기본값은 네임스페이스 를 제외한 정책 배열의 항목으로 재정의됩니다.

policyDefaults.namespace

필수 항목

모든 정책의 네임스페이스입니다.

policyDefaults.complianceType

선택 사항

매니페스트를 클러스터의 오브젝트와 비교할 때 정책 컨트롤러 동작을 결정합니다. 사용할 수 있는 값은 musthave,mustonlyhave 또는 mustnothave 입니다. 기본값은 musthave 입니다.

policyDefaults.metadataComplianceType

선택 사항

매니페스트 메타데이터 섹션을 클러스터의 오브젝트와 비교할 때 complianceType 을 덮어씁니다. 사용할 수 있는 값은 musthave 이고 mustonlyhave 입니다. 메타데이터에 대한 complianceType 을 재정의하지 않도록 기본값은 비어 있습니다({}).

policyDefaults.categories

선택 사항

policy.open-cluster-management.io/categories 주석에 사용할 카테고리 배열입니다. 기본값은 CM 구성 관리 입니다.

policyDefaults.controls

선택 사항

policy.open-cluster-management.io/controls 주석에 사용할 컨트롤 배열입니다. 기본값은 CM-2 기본 설정입니다.

policyDefaults.standards

선택 사항

policy.open-cluster-management.io/standards 주석에 사용할 표준 배열입니다. 기본값은 NIST SP 800-53 입니다.

policyDefaults.policyAnnotations

선택 사항

정책이 metadata.annotations 섹션에 포함된 주석입니다. 정책에 지정하지 않는 한 모든 정책에 적용됩니다. 기본값은 비어 있습니다({}).

policyDefaults.configurationPolicyAnnotations

선택 사항

생성된 구성 정책에 설정할 주석의 키-값 쌍입니다. 예를 들어 다음 매개변수를 정의하여 정책 템플릿을 비활성화할 수 있습니다. {"policy.open-cluster-management.io/disable-templates": "true"}. 기본값은 비어 있습니다({}).

policyDefaults.severity

선택 사항

정책 위반의 심각도입니다. 기본값은 low 입니다.

policyDefaults.disabled

선택 사항

정책이 비활성화되었는지 여부입니다. 즉, 전파되지 않고 결과적으로 상태가 없습니다. 정책을 활성화하려면 기본값은 false 입니다.

policyDefaults.remediationAction

선택 사항

정책의 수정 메커니즘입니다. 매개변수 값은 강제 시행정보 입니다. 기본값은 inform 입니다.

policyDefaults.namespaceSelector

네임스페이스가 지정되지 않은 네임스페이스 오브젝트에 필요합니다.

오브젝트가 적용되는 관리형 클러스터의 네임스페이스를 결정합니다. includeexclude 매개 변수는 이름별 네임스페이스를 포함 및 제외하기 위해 파일 경로 표현식을 허용합니다. matchExpressionsmatchLabels 매개변수는 레이블로 포함할 네임스페이스를 지정합니다. Kubernetes 라벨 및 선택기 설명서를 참조하십시오. 결과 목록은 모든 매개변수의 결과 교집합을 사용하여 컴파일됩니다.

policyDefaults.evaluationInterval

선택 사항

특정 규정 준수 상태에서 정책을 평가할 빈도를 지정하려면 매개변수 준수 및 비호환성을 사용합니다. 관리 대상 클러스터에 CPU 리소스가 부족하면 Kubernetes API의 CPU 사용량을 줄이기 위해 평가 간격을 늘릴 수 있습니다. 이러한 값은 기간 형식으로 되어 있습니다. 예를 들어 "1h25m3s" 는 1시간, 25분 및 3초를 나타냅니다. 또한 특정 규정 준수 상태가 된 후 정책을 평가하지 않도록 "never"로 설정할 수도 있습니다.

policyDefaults.consolidateManifests

선택 사항

이렇게 하면 정책에서 래핑되는 모든 매니페스트에 대해 단일 구성 정책이 생성되는지 확인합니다. false 로 설정하면 매니페스트당 구성 정책이 생성됩니다. 기본값은 true입니다.

policyDefaults.informGatekeeperPolicies

선택 사항

정책이 위반된 게이트키퍼 정책 매니페스트를 참조하는 경우 Red Hat Advanced Cluster Management에서 정책 위반을 받기 위해 추가 구성 정책이 생성되는지 확인합니다. 기본값은 true입니다.

policyDefaults.policySets

선택 사항

정책이 조인하는 정책 세트의 배열입니다. 정책 세트 세부 정보는 policySets 섹션에서 정의할 수 있습니다. 정책이 정책 세트의 일부이면 세트에 대해 생성되므로 정책에 대한 배치 바인딩이 생성되지 않습니다. policies[].generatePlacement WhenInSet 또는 policyDefaults.generatePlacementAttributeInSet 을 설정 하여 policyDefaults.policySets 를 덮어씁니다.

policyDefaults.generatePlacementWhenInSet

선택 사항

정책이 설정된 정책의 일부인 경우 기본적으로 생성기는 정책 세트의 배치가 생성되므로 이 정책에 대한 배치를 생성하지 않습니다. 정책 배치 및 정책 집합 배치를 모두 사용하여 정책을 배포하려면 generatePlacement WhenInSettrue 로 설정합니다. 기본값은 false입니다.

policyDefaults.placement

선택 사항

정책에 대한 배치 구성입니다. 기본값은 모든 클러스터와 일치하는 배치 구성입니다.

policyDefaults.placement.name

선택 사항

동일한 클러스터 선택기를 포함하는 배치 규칙을 통합할 이름을 지정합니다.

policyDefaults.placement.placementName

선택 사항

클러스터에 이미 존재하는 배치를 사용하도록 이 매개변수를 정의합니다. 배치는 생성되지 않지만 Placement Binding 은 정책을 이 배치에 바인딩합니다.

policyDefaults.placement.placementPath

선택 사항

기존 배치를 재사용하려면 kustomization.yaml 파일과 관련하여 경로를 지정합니다. 이 배치 규칙은 기본적으로 모든 정책에서 사용됩니다. 새 배치를 생성하려면 clusterSelector 를 참조하십시오.

policyDefaults.placement.clusterSelectors

선택 사항

다음 형식인 key:value 형식으로 클러스터 선택기를 정의하여 배치를 지정합니다. 기존 파일을 지정할 placementPath 를 참조하십시오.

policyDefaults.placement.placementRuleName

선택 사항

클러스터에 이미 존재하는 배치 규칙을 사용하려면 여기에 해당 이름을 지정합니다. PlacementRule 은 생성되지 않지만 PlacementBinding 은 정책을 이 PlacementRule 에 바인딩합니다.

policyDefaults.placement.placementRulePath

선택 사항

기존 배치 규칙을 재사용하려면 kustomization.yaml 파일을 기준으로 여기에 경로를 지정합니다. 이 배치 규칙은 기본적으로 모든 정책에서 사용됩니다. 새 PlacementRule 을 생성하려면 labelSelector 를 참조하십시오.

policyDefaults.placement.labelSelector

선택 사항

다음 형식인 key:value 형식으로 클러스터 선택기를 정의하여 배치 규칙을 지정합니다. 기존 파일을 지정하려면 placementRulePath 를 참조하십시오.

Policies

필수 항목입니다.

함께 생성할 정책 목록은 기본값 또는 policyDefaults 로 설정된 값에 대한 재정의입니다.

policies[].name

필수 항목

생성할 정책의 이름입니다.

policies[].manifests

필수 항목

정책에 포함할 Kubernetes 오브젝트 매니페스트 목록입니다.

policies[].manifests[].path

필수 항목

kustomization.yaml 파일과 관련된 단일 파일 경로, 플랫 파일 디렉터리 또는 Kustomize 디렉터리의 경로입니다. 디렉터리가 Kustomize 디렉터리인 경우 정책을 생성하기 전에 생성기가 디렉터리에 대해 Kustomize를 실행합니다.

policies[].manifests[].complianceType

선택 사항

매니페스트를 클러스터의 오브젝트와 비교할 때 정책 컨트롤러 동작을 결정합니다. 매개변수 값은 musthave,mustonlyhave 또는 mustnothave 입니다. 기본값은 musthave (또는 policyDefaults.complianceType에 설정된 값)입니다.

policies[].manifests[].patches

선택 사항

경로에 매니페스트에 적용할 Kustomize 패치입니다. 여러 매니페스트가 있는 경우 패치에는 apiVersion,kind,metadata.name, metadata.namespace (해당되는 경우) 필드가 필요하므로 Kustomize에서 패치가 적용되는 매니페스트를 확인할 수 있습니다. 단일 매니페스트가 있는 경우 metadata.namemetadata.namespace 필드가 패치될 수 있습니다.

policySets

선택 사항

생성할 정책 세트 목록입니다. 정책 세트에 정책을 포함하려면 policyDefaults.policySets,policies[].policySets, policySets.policies 를 사용합니다.

policySets[].name

필수 항목

create로 설정된 정책의 이름입니다.

policySets[].description

선택 사항

create로 설정된 정책에 대한 설명입니다.

policySets[].policies

선택 사항

정책 세트에 포함할 정책 목록입니다. policyDefaults.policySets 또는 policies[].policySets 도 지정된 경우 목록이 병합됩니다.

policySets[].placement

선택 사항

설정된 배치 구성입니다. 기본값은 모든 클러스터와 일치하는 배치 구성입니다. 배치 문서의 policyDefaults.placement 를 참조하십시오. policyDefaults.placement 설정은 정책 세트에 적용되지 않습니다.

통합 타사 정책 컨트롤러 문서로 돌아가거나 자세한 내용은 관리 설명서를 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat