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 테이블

정책 매개변수 설명에 대해 다음 표를 확인하십시오.

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

apiVersion

필수 항목

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

kind

필수 항목

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

metadata.name

필수 항목

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

metadata.annotations

선택 사항

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

참고: 정책 페이지에서 정책에 대해 정의한 표준 및 카테고리에 따라 정책 위반을 볼 수 있습니다.

bindingOverrides.remediationAction

선택 사항

이 매개변수를 적용 하도록 설정하면 구성 정책에 대한 관련 PlacementBinding 리소스의 수정 작업을 재정의할 수 있는 방법을 제공합니다. 기본값은 null 입니다.

subFilter

선택 사항

바인딩된 정책의 하위 집합을 선택하려면 이 매개변수를 restriction 로 설정합니다. 기본값은 null 입니다.

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

선택 사항

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

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

선택 사항

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

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

선택 사항

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

spec.disabled

필수 항목

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

spec.remediationAction

선택 사항

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

spec.copyPolicyMetadata

선택 사항

정책을 관리 클러스터에 복제할 때 정책의 라벨 및 주석을 복사해야 하는지 여부를 지정합니다. true 로 설정하면 정책의 모든 레이블 및 주석이 복제된 정책에 복사됩니다. false 로 설정하면 정책 프레임워크별 정책 레이블 및 주석만 복제된 정책에 복사됩니다.

spec.dependencies

선택 사항

규정 준수에 대한 추가 고려 사항에 따라 자세히 설명된 종속성 오브젝트 목록을 만드는 데 사용됩니다.

spec.policy-templates

필수 항목

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

spec.policy-templates.extraDependencies

선택 사항

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

spec.policy-templates.ignorePending

선택 사항

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

중요: 일부 정책 종류는 적용 기능을 지원하지 않을 수 있습니다.

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 logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.