2.2. 정책 개요
정책을 생성 및 관리하고, 표준을 충족하기 위한 구성 가시성 및 수정을 얻으려면 Kubernetes 보안 정책 프레임워크에 Red Hat Advanced Cluster Management를 사용하십시오. Kubernetes 사용자 정의 리소스 정의 인스턴스는 정책을 생성하는 데 사용됩니다. 관리 클러스터 네임스페이스를 제외한 허브 클러스터의 모든 네임스페이스에 정책을 생성할 수 있습니다. 관리형 클러스터 네임스페이스에 정책을 생성하면 Red Hat Advanced Cluster Management에서 삭제됩니다. 각 Red Hat Advanced Cluster Management 정책은 하나 이상의 정책 템플릿 정의로 구성할 수 있습니다. 정책 요소에 대한 자세한 내용은 이 페이지의 Policy YAML 테이블 섹션을 참조하십시오.
관리형 클라우드 환경이 소프트웨어 엔지니어링, 보안 엔지니어링, 복원력, 보안 및 Kubernetes 클러스터에서 호스팅되는 워크로드에 대한 규정 준수를 위한 내부 엔터프라이즈 보안 표준을 충족하는지 확인해야 합니다.
2.2.1. 사전 요구 사항
-
각 정책에는 정책 문서가 적용되는 클러스터를 정의하는
배치
리소스와 Kubernetes 정책에 대한 Red Hat Advanced Cluster Management를 바인딩하는PlacementBinding
리소스가 필요합니다.배치
리소스를 정의하는 방법에 대한 자세한 내용은 클러스터 라이프사이클 설명서의 배치 개요 를 참조하십시오. -
정책을 관리 클러스터에 전파하려면 정책을 배치로 바인딩하려면
Placement
Binding -
배치
리소스를 사용하려면ManagedClusterSet
리소스를 ManagedClusterSet 리소스와 함께배치
리소스의 네임스페이스에바인딩
해야 합니다. 자세한 내용은 Creating a ManagedClusterSetBinding 리소스 를 참조하십시오. -
콘솔에서 정책에 대한
배치
리소스를 생성하면 배치 허용 오차의 상태가 배치 리소스에 자동으로 추가됩니다.자세한 내용은 배치에 허용 오차 추가를 참조하십시오.
모범 사례: CLI(명령줄 인터페이스)를 사용하여 배치
리소스를 사용할 때 정책을 업데이트합니다.
정책 구성 요소에 대한 자세한 내용은 다음 섹션에서 확인하십시오.
2.2.2. 정책 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: disabled: remediationAction: dependencies: - apiVersion: policy.open-cluster-management.io/v1 compliance: kind: Policy name: namespace: policy-templates: - objectDefinition: apiVersion: kind: metadata: name: spec: --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: bindingOverrides: remediationAction: subFilter: name: placementRef: name: kind: Placement apiGroup: cluster.open-cluster-management.io subjects: - name: kind: apiGroup: --- apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: spec:
2.2.3. 정책 YAML 테이블
정책 매개변수 설명에 대해 다음 표를 확인하십시오.
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 필수 항목 |
값을 |
| 필수 항목 |
정책 유형을 나타내려면 값을 |
| 필수 항목 | 정책 리소스를 식별하는 이름입니다. |
| 선택 사항 | 정책의 유효성을 검사하려는 표준 집합을 설명하는 보안 세부 정보 집합을 지정하는 데 사용됩니다. 여기에 설명된 모든 주석은 쉼표로 구분된 목록이 포함된 문자열로 표시됩니다. 참고: 정책 페이지에서 정책에 대해 정의한 표준 및 카테고리에 따라 정책 위반을 볼 수 있습니다. |
| 선택 사항 |
이 매개변수를 |
| 선택 사항 |
바인딩된 정책의 하위 집합을 선택하려면 이 매개변수를 |
| 선택 사항 | 정책과 관련된 보안 표준의 이름 또는 이름입니다. 예를 들어 NIST(National Institute of Standards and Technology) 및 PCI(Payment Card Industry)가 있습니다. |
| 선택 사항 | 보안 제어 범주는 하나 이상의 표준에 대한 특정 요구 사항을 나타냅니다. 예를 들어 시스템 및 정보 무결성 카테고리는 HIPAA 및 PCI 표준에서 요구하는 대로 귀하의 정책에 개인정보를 보호하기 위한 데이터 전송 프로토콜이 포함되어 있음을 나타낼 수 있습니다. |
| 선택 사항 | 확인 중인 보안 컨트롤의 이름입니다. 예를 들어, 액세스 제어 또는 시스템 및 정보 무결성. |
| 필수 항목 |
값을 |
| 선택 사항 |
정책 수정을 지정합니다. 매개변수 값은 |
| 선택 사항 |
정책을 관리 클러스터에 복제할 때 정책의 라벨 및 주석을 복사해야 하는지 여부를 지정합니다. |
| 선택 사항 | 규정 준수에 대한 추가 고려 사항에 따라 자세히 설명된 종속성 오브젝트 목록을 만드는 데 사용됩니다. |
| 필수 항목 | 관리 클러스터에 적용할 하나 이상의 정책을 생성하는 데 사용됩니다. |
| 선택 사항 | 정책 템플릿의 경우 이는 규정 준수에 대한 추가 고려 사항에 자세히 설명된 종속성 오브젝트 목록을 생성하는 데 사용됩니다. |
| 선택 사항 | 종속성 기준을 확인할 때까지 정책 템플릿을 준수하는 것으로 표시하는 데 사용됩니다. 중요: 일부 정책 종류는 적용 기능을 지원하지 않을 수 있습니다. |
2.2.4. 정책 샘플 파일
역할에 대한 구성 정책인 다음 YAML 파일을 확인합니다.
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: Placement apiGroup: cluster.open-cluster-management.io subjects: - name: policy-role kind: Policy apiGroup: policy.open-cluster-management.io --- 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"]}
2.2.5. 추가 리소스
- 정책 컨트롤러 를 참조하십시오.
- 정책을 생성하고 업데이트하려면 보안 정책 관리를 참조하십시오. Red Hat Advanced Cluster Management 정책 컨트롤러를 활성화하고 업데이트하여 정책 준수를 검증할 수도 있습니다.
- Governance 문서로 돌아갑니다.