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 Rule (더 이상 사용되지 않음) 또는 배치를 사용하여 정책을 바인딩하려면 PlacementBinding 을 생성해야 합니다.

모범 사례: 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 테이블

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

apiVersion

필수 항목

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

kind

필수 항목

정책 유형을 나타내려면 값을 Policy 로 설정합니다.

metadata.name

필수 항목

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

metadata.annotations

선택 사항

정책에서 검증하려는 표준 집합을 설명하는 보안 세부 정보 집합을 지정하는 데 사용됩니다. 여기에 설명된 모든 주석은 쉼표로 구분된 목록이 포함된 문자열로 표시됩니다.

참고: 콘솔에서 정책 페이지에서 정책에 대해 정의한 표준 및 카테고리를 기반으로 정책 위반을 볼 수 있습니다.

annotations.policy.open-cluster-management.io/standards

선택 사항

정책이 관련된 보안 표준의 이름 또는 이름입니다. 예를 들어, National Quarkus of Standards and Technology (NIST) 및Pay Card Industry(Payment Card Industry)가 있습니다.

annotations.policy.open-cluster-management.io/categories

선택 사항

보안 제어 카테고리는 하나 이상의 표준에 대한 특정 요구 사항을 나타냅니다. 예를 들어, 시스템 및 정보 무결성 카테고리는 귀하의 정책에ECDHE 및 PCI 표준에 따라 개인 정보를 보호하기 위한 데이터 전송 프로토콜이 포함되어 있음을 나타낼 수 있습니다.

annotations.policy.open-cluster-management.io/controls

선택 사항

확인 중인 보안 컨트롤의 이름입니다. 예를 들면 액세스 제어 또는 시스템 및 정보 무결성입니다.

spec.dependencies

선택 사항

컴플라이언스에 대한 추가 고려 사항으로 자세한 종속성 오브젝트 목록을 생성하는 데 사용됩니다.

spec.policy-templates

필수 항목

관리형 클러스터에 적용할 하나 이상의 정책을 생성하는 데 사용됩니다.

spec.policy-templates.extraDependencies

선택 사항

정책 템플릿의 경우 이는 규정 준수에 대한 추가 고려 사항으로 설명된 종속성 오브젝트 목록을 생성하는 데 사용됩니다.

spec.policy-templates.ignorePending

선택 사항

종속성 기준이 확인될 때까지 정책 템플릿을 준수로 표시하는 데 사용됩니다.

spec.disabled

필수 항목

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

spec.remediationAction

선택 사항

정책 수정을 지정합니다. 매개변수 값은 강제 시행정보 입니다. 지정된 경우 정의된 spec.remediationAction 값이 policy-templates 섹션의 하위 정책에 정의된 remediationAction 매개변수를 덮어씁니다. 예를 들어 spec.remediationAction 값이 적용 되도록 설정된 경우 policy-templates 섹션의 remediationAction 이 런타임 중에 강제 적용 되도록 설정됩니다.

중요: 일부 정책 유형은 적용 기능을 지원하지 않을 수 있습니다.

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 샘플 파일 배치

PlacementBindingPlacement 리소스를 이전 정책 예제와 결합하여 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 logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.