4장. 타사 정책 컨트롤러 통합
타사 정책을 통합하여 정책 템플릿 내에서 사용자 지정 주석을 생성하여 하나 이상의 규정 준수 표준을 지정하고 카테고리 및 제어를 제어합니다.
또한 policy-collection/community 의 타사 정책을 사용할 수도 있습니다.
다음 타사 정책을 통합하는 방법을 배웁니다.
4.1. 정책 생성기
정책 생성기는 Kustomize를 사용하여 Red Hat Advanced Cluster Management 정책을 생성하는 Kubernetes 애플리케이션 라이프사이클 서브스크립션 GitOps 워크플로우의 일부입니다. Policy Generator는 Kubernetes 매니페스트 YAML 파일에서 Red Hat 고급 클러스터 관리 정책을 빌드합니다. 이 정책은 이를 구성하는 데 사용되는 PolicyGenerator
매니페스트 YAML 파일을 통해 제공됩니다. 정책 생성기는 Kustomize 생성기 플러그인으로 구현됩니다. Kustomize에 대한 자세한 내용은 Kustomize 문서를 참조하십시오.
자세한 내용은 다음 섹션을 참조하십시오.
4.1.1. 정책 생성기 기능
정책 생성기 및 Red Hat Advanced Cluster Management 애플리케이션 라이프사이클 서브스크립션 GitOps 워크플로우와의 통합은 Red Hat Advanced Cluster Management 정책을 통해 Kubernetes 리소스 오브젝트를 관리형 OpenShift Container Platform 클러스터에 배포할 수 있도록 단순화합니다.
정책 생성기를 사용하여 다음 작업을 완료합니다.
- Kustomize 디렉터리에서 생성된 매니페스트를 포함하여 Kubernetes 매니페스트 파일을 Red Hat Advanced Cluster Management 구성 정책으로 변환합니다.
- 생성된 Red Hat Advanced Cluster Management 정책에 삽입하기 전에 입력 Kubernetes 매니페스트를 패치합니다.
- Red Hat Advanced Cluster Management for Kubernetes를 통해 Gatekeeper 정책 위반에 대해 보고할 수 있도록 추가 구성 정책을 생성합니다.
- 허브 클러스터에서 정책 세트를 생성합니다.
4.1.2. 정책 생성기 구성 구조
정책 생성기는 PolicyGenerator
종류 및 policy.open-cluster-management.io/v1
API 버전의 매니페스트로 구성된 Kustomize 생성기 플러그인입니다.
플러그인을 사용하려면 kustomization.yaml
파일에 generators
섹션을 추가하여 시작합니다. 다음 예제를 확인합니다.
generators: - policy-generator-config.yaml
이전 예에서 참조되는 policy-generator-config.yaml
파일은 생성할 정책의 지침이 있는 YAML 파일입니다. 간단한 PolicyGenerator
구성 파일은 다음 예와 유사할 수 있습니다.
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
configmap.yaml
은 정책에 포함할 Kubernetes 매니페스트 YAML 파일을 나타냅니다. 또는 경로를 Kustomize 디렉터리 또는 여러 Kubernetes 매니페스트 YAML 파일이 있는 디렉터리를 설정할 수 있습니다. 다음 예제를 확인합니다.
apiVersion: v1 kind: ConfigMap metadata: name: my-config namespace: default data: key1: value1 key2: value2
생성된 정책
및
은 다음 예와 유사할 수 있습니다.
배치
바인딩
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement-config-data namespace: policies spec: predicates: - requiredClusterSelector: labelSelector: matchExpressions: [] --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-config-data namespace: policies placementRef: apiGroup: cluster.open-cluster-management.io kind: Placement 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 policy.open-cluster-management.io/description: 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
4.1.3. 정책 생성기 구성 참조 테이블
각 정책에 대해 namespace
를 제외한 policyDefaults
섹션의 모든 필드를 재정의할 수 있으며 policySetDefaults
섹션의 모든 필드를 각 정책 세트에 대해 재정의할 수 있습니다.
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 선택 사항 |
여러 정책에서 동일한 배치를 사용하는 경우 이 이름은 결과 placement |
| 필수 항목 |
여기에 나열된 기본값은 |
| 필수 항목 | 모든 정책의 네임스페이스입니다. |
| 선택 사항 |
매니페스트를 클러스터의 오브젝트와 비교할 때 정책 컨트롤러 동작을 결정합니다. 사용할 수 있는 값은 |
| 선택 사항 |
매니페스트 메타데이터 섹션을 클러스터의 오브젝트와 비교할 때 |
| 선택 사항 |
|
| 선택 사항 |
|
| 선택 사항 |
|
| 선택 사항 |
정책이 |
| 선택 사항 |
생성된 구성 정책에 설정할 주석의 키-값 쌍입니다. 예를 들어 |
| 선택 사항 |
모든 정책에 대한 레이블 및 주석을 복사하여 복제본 정책에 추가합니다. 기본적으로 |
| 선택 사항 |
정책 위반의 심각도입니다. 기본값은 |
| 선택 사항 |
정책이 비활성화되었는지 여부, 즉 전파되지 않고 결과적으로 상태가 없습니다. 정책을 활성화하는 기본값은 |
| 선택 사항 |
정책의 수정 메커니즘입니다. 매개변수 값은 |
| 네임스페이스가 지정되지 않은 네임스페이스된 오브젝트에 필요합니다. |
관리 클러스터에서 오브젝트가 적용되는 네임스페이스를 결정합니다. |
| 선택 사항 |
특정 규정 |
| 선택 사항 |
정책을 삭제할 때 정책에 의해 생성되거나 모니터링되는 오브젝트를 삭제해야 하는지 여부를 결정합니다. 정책의 수정 작업이 |
| 선택 사항 |
정책에서 클러스터의 오브젝트와 |
| 선택 사항 |
이 정책을 적용하기 전에 특정 규정 준수 상태에 있어야 하는 오브젝트 목록입니다. |
| 필수 항목 | 종속되는 오브젝트의 이름입니다. |
| 선택 사항 | 종속되는 오브젝트의 네임스페이스입니다. 기본값은 정책 생성기에 설정된 정책의 네임스페이스입니다. |
| 선택 사항 |
오브젝트가 있어야 하는 규정 준수 상태입니다. 기본값은 |
| 선택 사항 |
오브젝트의 종류입니다. 기본적으로 kind는 |
| 선택 사항 |
오브젝트의 API 버전입니다. 기본값은 |
| 선택 사항 | 생성할 정책에 대한 설명입니다. |
| 선택 사항 |
이 정책을 적용하기 전에 특정 규정 준수 상태에 있어야 하는 오브젝트 목록입니다. 정의한 종속 항목은 종속 항목 목록과 별도로 각 정책 템플릿(예: |
| 필수 항목 | 종속되는 오브젝트의 이름입니다. |
| 선택 사항 | 종속되는 오브젝트의 네임스페이스입니다. 기본적으로 값은 정책 생성기에 설정된 정책의 네임스페이스로 설정됩니다. |
| 선택 사항 |
오브젝트가 있어야 하는 규정 준수 상태입니다. 기본값은 |
| 선택 사항 |
오브젝트의 종류입니다. 기본값은 |
| 선택 사항 |
오브젝트의 API 버전입니다. 기본값은 |
| 선택 사항 |
정책 생성기가 원하는 상태에 도달하기 위해 종속성을 기다리는 경우 규정 준수 상태 검사를 바이패스합니다. 기본값은 |
| 선택 사항 |
정책 목록에 정의된 순서대로 적용되도록 정책에 대한 |
| 선택 사항 |
정책 |
| 선택 사항 |
이는 정책에서 래핑되는 모든 매니페스트에 대해 단일 구성 정책이 생성되었는지 여부를 결정합니다. |
| 선택 사항 |
구성 정책에서 GatekeeperPolicies를 직접 정의하지 않고 Gatekeeper 매니페스트를 직접 사용하려면 |
| 선택 사항 |
정책이 Kyverno 정책 매니페스트를 참조하는 경우 Kyverno 정책이 위반될 때 Red Hat Advanced Cluster Management에서 정책 위반을 수신하기 위해 추가 구성 정책이 생성되었는지 여부를 결정합니다. 기본값은 |
| 선택 사항 |
정책에 |
| 선택 사항 |
정책이 결합되는 정책의 배열입니다. 정책 세트 세부 정보는 |
| 선택 사항 |
정책에 대한 배치 매니페스트를 생성합니다. 기본적으로 |
| 선택 사항 |
정책이 정책 세트의 일부인 경우 기본적으로 생성기는 정책 세트에 대한 배치가 생성되므로 이 정책에 대한 배치를 생성하지 않습니다. 정책 배치 및 정책 |
| 선택 사항 | 정책에 대한 배치 구성입니다. 기본값은 모든 클러스터와 일치하는 배치 구성입니다. |
| 선택 사항 | 동일한 클러스터 라벨 선택기가 포함된 배치를 통합할 이름을 지정합니다. |
| 선택 사항 |
|
| 선택 사항 |
클러스터에 이미 존재하는 배치를 사용하도록 이 매개 변수를 정의합니다. |
| 선택 사항 |
기존 배치를 재사용하려면 |
| 선택 사항 |
|
| 선택 사항 |
|
| 선택 사항 |
|
| 선택 사항 |
정책 세트의 기본값입니다. 이 매개변수에 나열된 기본값은 |
| 선택 사항 |
정책에 대한 배치 구성입니다. 기본값은 모든 클러스터와 일치하는 배치 구성입니다. 이 필드에 대한 설명은 |
| 선택 사항 |
정책 세트에 대한 배치 매니페스트를 생성합니다. 기본적으로 |
| 필수 항목 |
생성할 정책 목록은 기본값 또는 |
| 선택 사항 | 생성할 정책에 대한 설명입니다. |
| 필수 항목 | 생성할 정책의 이름입니다. |
| 필수 항목 |
정책에 포함할 Kubernetes 오브젝트 매니페스트 목록, 기본값, 이 |
| 필수 항목 |
단일 파일의 경로, 파일의 플랫 디렉터리 또는 |
| 선택 사항 |
경로의 매니페스트에 적용할 Kustomize 패치 목록입니다. 매니페스트가 여러 개인 경우 패치에 |
| 선택 사항 |
정책에 |
| 선택 사항 |
생성할 정책 세트 목록과 기본값 또는 |
| 필수 항목 | 생성할 정책의 이름입니다. |
| 선택 사항 | 생성할 정책의 설명입니다. |
| 선택 사항 |
정책 세트에 포함할 정책 목록입니다. |
4.1.4. 추가 리소스
- GitOps Operator를 설치하기 위한 정책 생성을 읽습니다.
- 자세한 내용은 정책 설정 컨트롤러 를 참조하십시오.
- 자세한 내용은 Kustomize 적용을 참조하십시오.
- 자세한 내용은 Governance 설명서를 참조하십시오.
-
kustomization.yaml
파일의 예를 참조하십시오. - Kubernetes 라벨 및 선택기 설명서를 참조하십시오.
- 자세한 내용은 Gatekeeper 를 참조하십시오.
- Kustomize 설명서를 참조하십시오.
- 타사 정책 컨트롤러 문서 통합으로 돌아갑니다.