2.2. 정책 개요
Red Hat Advanced Cluster Management for Kubernetes 보안 정책 프레임워크를 사용하여 정책을 생성하고 관리합니다. Kubernetes 사용자 정의 리소스 정의 인스턴스는 정책을 생성하는 데 사용됩니다.
각 Red Hat Advanced Cluster Management 정책에는 하나 이상의 템플릿이 있을 수 있습니다. 정책 요소에 대한 자세한 내용은 이 페이지의 정책 YAML 테이블 섹션을 참조하십시오.
정책에는 정책 문서가 적용되는 클러스터를 정의하는 Placement Rule 또는 Placement와 Red Hat Advanced Cluster Management for Kubernetes 정책을 배치 규칙에 바인딩하는 PlacementBinding 이 필요합니다. PlacementRule
을 정의하는 방법에 대한 자세한 내용은 애플리케이션 라이프사이클 설명서의 배치 규칙을 참조하십시오. 배치를 정의하는 방법에 대한 자세한 내용은 클러스터 라이프사이클 설명서의 배치 개요 를 참조하십시오.
중요:
-
정책을 관리 클러스터에 전파하려면
Placement
RulePlacementBinding
을 생성해야 합니다.
모범 사례: CLI(명령줄 인터페이스)를 사용하여 배치
리소스를 사용할 때 정책을 업데이트합니다.
- 클러스터 네임스페이스를 제외한 허브 클러스터의 모든 네임스페이스에 정책을 생성할 수 있습니다. 클러스터 네임스페이스에 정책을 생성하면 Red Hat Advanced Cluster Management for Kubernetes에서 삭제됩니다.
- 각 클라이언트 및 공급자는 관리 클라우드 환경이 소프트웨어 엔지니어링, 보안 엔지니어링, 복원력, 보안 및 Kubernetes 클러스터에서 호스팅되는 워크로드에 대한 규정 준수의 내부 엔터프라이즈 보안 표준을 충족하도록 해야 합니다.
거버넌스 및 보안 기능을 사용하여 표준을 충족하기 위해 가시성을 확보하고 구성을 수정하십시오.
다음 섹션의 정책 구성 요소에 대해 자세히 알아보십시오.
2.2.1. 정책 YAML 구조
정책을 생성할 때 필수 매개변수 필드 및 값을 포함해야 합니다. 정책 컨트롤러에 따라 다른 선택적 필드 및 값을 포함해야 할 수 있습니다. 설명된 매개변수 필드의 다음 YAML 구조를 확인합니다.
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: annotations: policy.open-cluster-management.io/standards: policy.open-cluster-management.io/categories: policy.open-cluster-management.io/controls: policy.open-cluster-management.io/description: spec: dependencies: - apiVersion: policy.open-cluster-management.io/v1 compliance: kind: Policy name: namespace: policy-templates: - objectDefinition: apiVersion: kind: metadata: name: spec: remediationAction: disabled: --- apiVersion: apps.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: placementRef: name: kind: apiGroup: subjects: - name: kind: apiGroup: --- apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: spec: clusterConditions: - type: clusterLabels: matchLabels: cloud:
2.2.2. 정책 YAML 테이블
필드 | 선택적 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
정책 유형을 나타내려면 값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 선택 사항 | 정책에서 검증하려는 표준 집합을 설명하는 보안 세부 정보 집합을 지정하는 데 사용됩니다. 여기에 설명된 모든 주석은 쉼표로 구분된 목록이 포함된 문자열로 표시됩니다. 참고: 콘솔에서 정책 페이지에서 정책에 대해 정의한 표준 및 카테고리를 기반으로 정책 위반을 볼 수 있습니다. |
| 선택 사항 | 정책이 관련된 보안 표준의 이름 또는 이름입니다. 예를 들어, National Quarkus of Standards and Technology (NIST) 및Pay Card Industry(Payment Card Industry)가 있습니다. |
| 선택 사항 | 보안 제어 카테고리는 하나 이상의 표준에 대한 특정 요구 사항을 나타냅니다. 예를 들어, 시스템 및 정보 무결성 카테고리는 귀하의 정책에ECDHE 및 PCI 표준에 따라 개인 정보를 보호하기 위한 데이터 전송 프로토콜이 포함되어 있음을 나타낼 수 있습니다. |
| 선택 사항 | 확인 중인 보안 컨트롤의 이름입니다. 예를 들면 액세스 제어 또는 시스템 및 정보 무결성입니다. |
| 선택 사항 | 컴플라이언스에 대한 추가 고려 사항으로 자세한 종속성 오브젝트 목록을 생성하는 데 사용됩니다. |
| 필수 항목 | 관리형 클러스터에 적용할 하나 이상의 정책을 생성하는 데 사용됩니다. |
| 선택 사항 | 정책 템플릿의 경우 이는 규정 준수에 대한 추가 고려 사항으로 설명된 종속성 오브젝트 목록을 생성하는 데 사용됩니다. |
| 선택 사항 | 종속성 기준이 확인될 때까지 정책 템플릿을 준수로 표시하는 데 사용됩니다. |
| 필수 항목 |
값을 |
| 선택 사항 |
정책 수정을 지정합니다. 매개변수 값은 중요: 일부 정책 유형은 적용 기능을 지원하지 않을 수 있습니다. |
2.2.3. 정책 샘플 파일
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: policy-role annotations: policy.open-cluster-management.io/standards: NIST SP 800-53 policy.open-cluster-management.io/categories: AC Access Control policy.open-cluster-management.io/controls: AC-3 Access Enforcement policy.open-cluster-management.io/description: 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 # the policy-template spec.remediationAction is overridden by the preceding parameter value for spec.remediationAction. 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 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 spec: clusterConditions: - status: "True" type: ManagedClusterConditionAvailable clusterSelector: matchExpressions: - {key: environment, operator: In, values: ["dev"]}
2.2.4. YAML 샘플 파일 배치
PlacementBinding
및 Placement
리소스를 이전 정책 예제와 결합하여 PlacementRule
API 대신 클러스터 배치
API를 사용하여 정책을 배포할 수 있습니다.
--- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-policy-role placementRef: name: placement-policy-role kind: Placement apiGroup: cluster.open-cluster-management.io subjects: - name: policy-role kind: Policy apiGroup: policy.open-cluster-management.io --- //Depends on if governance would like to use v1beta1 apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement-policy-role spec: predicates: - requiredClusterSelector: labelSelector: matchExpressions: - {key: environment, operator: In, values: ["dev"]}
- 정책 컨트롤러를 참조하십시오.
- 정책을 만들고 업데이트하려면 보안 정책 관리를 참조하십시오. Red Hat Advanced Cluster Management 정책 컨트롤러를 활성화 및 업데이트하여 정책 준수를 검증할 수도 있습니다.
- Governance 문서로 돌아갑니다.