2장. 관리자 네트워크 정책


2.1. OVN-Kubernetes AdminNetworkPolicy

OpenShift Container Platform에서는 관리 NetworkPolicy 리소스를 구성하여 네임스페이스 범위 NetworkPolicy 오브젝트 가 재정의할 수 없는 클러스터 전체 수신 및 송신 규칙을 적용하여 다중 테넌트 격리 및 플랫폼 보안에 대한 관리 제어를 유지할 수 있습니다.

2.1.1. AdminNetworkPolicy

AdminNetworkPolicy (ANP)는 네임스페이스 생성 전에 수신 및 송신 규칙을 설정하기 위해 정의할 수 있는 클러스터 범위의 CRD(사용자 정의 리소스 정의)입니다. ANPs를 사용하여 테넌트 NetworkPolicy 오브젝트가 관리 제어를 재정의할 수 없도록 할 수 있습니다.

AdminNetworkPolicyNetworkPolicy 오브젝트의 주요 차이점은 전자는 관리자 및 클러스터 범위인 반면, 후자는 테넌트 소유자를 위한 것이며 네임스페이스 범위가 지정된다는 것입니다.

관리자는 ANP를 사용하여 다음을 지정할 수 있습니다.

  • 평가 순서를 결정하는 우선순위 값입니다. 우선 순위가 가장 높은 값이 낮을 수 있습니다.
  • 정책이 적용되는 네임스페이스 또는 네임스페이스 세트로 구성된 Pod 세트입니다.
  • 제목 을 향하는 모든 인그레스 트래픽에 적용할 수신 규칙 목록입니다.
  • 제목의 모든 송신 트래픽에 적용할 송신 규칙 목록입니다.

2.1.1.1. AdminNetworkPolicy 예

ANP에 대한 YAML 파일의 예

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: sample-anp-deny-pass-rules
spec:
  priority: 50
  subject:
    namespaces:
      matchLabels:
          kubernetes.io/metadata.name: example.name
  ingress:
  - name: "deny-all-ingress-tenant-1"
    action: "Deny"
    from:
    - pods:
        namespaceSelector:
          matchLabels:
            custom-anp: tenant-1
        podSelector:
          matchLabels:
            custom-anp: tenant-1
  egress:
  - name: "pass-all-egress-to-tenant-1"
    action: "Pass"
    to:
    - pods:
        namespaceSelector:
          matchLabels:
            custom-anp: tenant-1
        podSelector:
          matchLabels:
            custom-anp: tenant-1

다음과 같습니다.

metadata.name
ANP의 이름을 지정합니다.
spec.priority
ANP의 우선 순위를 지정합니다. 클러스터의 값 0-99 범위에서 최대 100개의 ANP를 지원합니다. 값이 낮을수록 범위가 가장 낮은 값에서 가장 높은 값으로 읽혀지므로 우선 순위가 높습니다. ANP가 동일한 우선 순위로 생성될 때 정책이 우선 순위가 적용되는 보장이 없기 때문에 우선 순위가 결정되도록 ANP를 다른 우선순위로 설정합니다.
spec.subject.namespaces.matchLabels
ANP 리소스를 적용할 네임스페이스를 지정합니다.
spec.ingress.name
ingress.name 의 이름을 지정합니다.
spec.ingress.action
ANP에 대한 수신 규칙을 지정합니다. ANP에는 ingress 및 egress 규칙이 모두 있습니다. Pass,Deny, Allow 의 값을 허용합니다.
spec.ingress.from.pods.namespaceSelector.matchLabels
namespace Selector.matchLabels 를 지정하여 namespaceSelector.matchLabels에서 선택한 네임스페이스 내에서 포드를 인그레스 피어로 선택합니다.
spec.egress.action
ANP에 대한 송신 규칙을 지정합니다. Pass,Deny, Allow 의 값을 허용합니다.

2.1.1.2. 규칙에 대한 AdminNetworkPolicy 작업

관리NetworkPolicy(ANP) 사용자 정의 리소스 규칙에 action 필드를 허용,거부 또는 Pass 로 설정하여 OVN-Kubernetes 계층적 ACL이 하위 계층 네트워크 정책을 적용하기 전에 관리 결정을 적용할 수 있습니다.

OVN-Kubernetes는 계층화된 ACL을 사용하여 네트워크 트래픽 규칙을 평가하므로 ANP CR을 사용하면 관리자가 해당 규칙을 수정하거나, 규칙을 삭제하거나, 우선 순위 규칙을 설정하여 재정의할 수 있는 강력한 정책 규칙을 정의할 수 있습니다.

2.1.1.2.1. AdminNetworkPolicy 허용 예

우선 순위 9에 정의된 다음 ANP는 모니터링 네임스페이스에서 클러스터의 테넌트(다른 모든 네임스페이스)로 모든 수신 트래픽을 허용합니다.

강력한 허용 ANP를 위한 YAML 파일의 예

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: allow-monitoring
spec:
  priority: 9
  subject:
    namespaces: {} # Use the empty selector with caution because it also selects OpenShift namespaces as well.
  ingress:
  - name: "allow-ingress-from-monitoring"
    action: "Allow"
    from:
    - namespaces:
        matchLabels:
          kubernetes.io/metadata.name: monitoring
# ...

이는 관련된 모든 당사자가 해결할 수 없기 때문에 강력한 Allow ANP의 예입니다. 테넌트는 NetworkPolicy 오브젝트를 사용하여 자체적으로 모니터링되는 것을 차단할 수 없으며 모니터링 테넌트도 모니터링할 수 있거나 모니터링할 수 없습니다.

2.1.1.2.2. AdminNetworkPolicy 거부 예

우선순위 5에 정의된 다음 ANP는 모니터링 네임스페이스의 모든 수신 트래픽이 제한된 테넌트( 보안: restricted)로 차단되도록 합니다.

강력한 Deny ANP를 위한 YAML 파일의 예

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: block-monitoring
spec:
  priority: 5
  subject:
    namespaces:
      matchLabels:
        security: restricted
  ingress:
  - name: "deny-ingress-from-monitoring"
    action: "Deny"
    from:
    - namespaces:
        matchLabels:
          kubernetes.io/metadata.name: monitoring
# ...

이는 강력한 Deny ANP로, 관련된 모든 당사자가 해결할 수 없는 강력한 Deny ANP입니다. 제한된 테넌트 소유자는 모니터링 트래픽을 허용하도록 권한을 부여할 수 없으며 인프라의 모니터링 서비스는 이러한 민감한 네임스페이스에서 아무것도 스크랩할 수 없습니다.

강력한 Allow 예제와 결합할 때 block-monitoring ANP는 우선순위가 높은 우선 순위 값을 가지므로 제한된 테넌트가 모니터링되지 않습니다.

2.1.1.2.3. AdminNetworkPolicy Pass 예

우선순위 7에 정의된 다음 ANP는 모니터링 네임스페이스에서 내부 인프라 테넌트(네트러블 security가 있는 네임스페이스)로 들어오는 모든 수신 트래픽을 ACL의 계층 2로 전달되고 네임스페이스의 NetworkPolicy 오브젝트에 의해 평가됩니다.

강력한 Pass ANP를 위한 YAML 파일의 예

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: pass-monitoring
spec:
  priority: 7
  subject:
    namespaces:
      matchLabels:
        security: internal
  ingress:
  - name: "pass-ingress-from-monitoring"
    action: "Pass"
    from:
    - namespaces:
        matchLabels:
          kubernetes.io/metadata.name: monitoring
# ...

이 예는 테넌트 소유자가 정의한 NetworkPolicy 오브젝트에 결정을 위임하기 때문에 강력한 Pass 작업 ANP입니다. 이 pass-monitoring ANP를 사용하면 모든 테넌트 소유자가 내부 보안 수준에서 그룹화하여 네임스페이스 범위 NetworkPolicy 오브젝트를 사용하여 인프라의 모니터링 서비스에서 메트릭을 스크랩해야 하는지 여부를 선택할 수 있습니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동