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


2.1. OVN-Kubernetes AdminNetworkPolicy

2.1.1. AdminNetworkPolicy

AdminNetworkPolicy (ANP)는 클러스터 범위의 사용자 정의 리소스 정의(CRD)입니다. OpenShift Container Platform 관리자는 네임스페이스를 만들기 전에 네트워크 정책을 만들어 ANP를 사용하여 네트워크를 보호할 수 있습니다. 또한 NetworkPolicy 개체로 재정의할 수 없는 클러스터 범위 수준에서 네트워크 정책을 만들 수 있습니다.

AdminNetworkPolicyNetworkPolicy 객체의 주요 차이점은 전자가 관리자를 위한 것이고 클러스터 범위인 반면, 후자는 테넌트 소유자를 위한 것이고 네임스페이스 범위라는 것입니다.

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

  • 평가 순서를 결정하는 우선순위 값입니다. 값이 낮을수록 우선순위가 높습니다.
  • 정책이 적용되는 네임스페이스 또는 네임스페이스 집합으로 구성된 포드 집합입니다.
  • 해당 주체 에 대한 모든 수신 트래픽에 적용될 수신 규칙 목록입니다.
  • 해당 주체 의 모든 이탈 트래픽에 적용될 이탈 규칙 목록입니다.
AdminNetworkPolicy 예제

예 2.1. ANP에 대한 YAML 파일 예시

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: sample-anp-deny-pass-rules 
1

spec:
  priority: 50 
2

  subject:
    namespaces:
      matchLabels:
          kubernetes.io/metadata.name: example.name 
3

  ingress: 
4

  - name: "deny-all-ingress-tenant-1" 
5

    action: "Deny"
    from:
    - pods:
        namespaceSelector:
          matchLabels:
            custom-anp: tenant-1
        podSelector:
          matchLabels:
            custom-anp: tenant-1 
6

  egress:
7

  - name: "pass-all-egress-to-tenant-1"
    action: "Pass"
    to:
    - pods:
        namespaceSelector:
          matchLabels:
            custom-anp: tenant-1
        podSelector:
          matchLabels:
            custom-anp: tenant-1
Copy to Clipboard Toggle word wrap
1
ANP의 이름을 지정하세요.
2
spec.priority 필드는 클러스터 내 0~99 값 범위에서 최대 100개의 ANP를 지원합니다. 값이 낮을수록 우선순위가 높아집니다. 범위는 가장 낮은 값부터 가장 높은 값 순으로 읽히기 때문입니다. ANP가 동일한 우선순위로 생성되면 어떤 정책이 우선하는지 보장할 수 없으므로, 의도적으로 우선순위를 정할 수 있도록 ANP를 서로 다른 우선순위로 설정합니다.
3
ANP 리소스를 적용할 네임스페이스를 지정합니다.
4
ANP에는 유입 및 유출 규칙이 모두 있습니다. spec.ingress 필드에 대한 ANP 규칙은 action 필드에 대해 Pass , Deny , Allow 값을 허용합니다.
5
ingress.name 에 대한 이름을 지정합니다.
6
namespaceSelector.matchLabels 로 선택한 네임스페이스 내의 포드를 인그레스 피어로 선택하려면 podSelector.matchLabels를 지정합니다.
7
ANP에는 진입 및 진출 규칙이 모두 있습니다. spec.egress 필드에 대한 ANP 규칙은 action 필드에 대해 Pass , Deny , Allow 값을 허용합니다.

2.1.1.1. 규칙에 대한 AdminNetworkPolicy 작업

관리자는 AdminNetworkPolicy 규칙에 대한 작업 필드로 Allow , Deny 또는 Pass를 설정할 수 있습니다. OVN-Kubernetes는 계층형 ACL을 사용하여 네트워크 트래픽 규칙을 평가하므로 ANP를 사용하면 관리자가 규칙을 수정하거나, 규칙을 삭제하거나, 더 높은 우선순위 규칙을 설정하여 재정의하는 것만으로 변경할 수 있는 매우 강력한 정책 규칙을 설정할 수 있습니다.

AdminNetworkPolicy 허용 예제

우선순위 9로 정의된 다음 ANP는 모니터링 네임스페이스에서 클러스터의 모든 테넌트(다른 모든 네임스페이스)로의 모든 유입 트래픽이 허용되도록 보장합니다.

예 2.2. 강력한 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
# ...
Copy to Clipboard Toggle word wrap

이는 관련된 모든 당사자가 재정의할 수 없기 때문에 강력한 Allow ANP의 예입니다. 테넌트는 NetworkPolicy 객체를 사용하여 모니터링을 차단할 수 없으며 모니터링 테넌트도 모니터링할 수 있는 항목과 할 수 없는 항목을 선택할 수 없습니다.

AdminNetworkPolicy Deny 예제

우선순위 5로 정의된 다음 ANP는 모니터링 네임스페이스에서 제한된 테넌트( security: restricted 레이블이 있는 네임스페이스)로의 모든 유입 트래픽이 차단되도록 보장합니다.

예 2.3. 강력한 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
# ...
Copy to Clipboard Toggle word wrap

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

강력한 Allow 예제와 결합하면 블록 모니터링 ANP는 더 낮은 우선순위 값을 갖고 더 높은 우선 순위를 갖게 되므로 제한된 테넌트는 결코 모니터링되지 않습니다.

AdminNetworkPolicy Pass 예제

우선순위 7로 정의된 다음 ANP는 모니터링 네임스페이스에서 내부 인프라 테넌트(레이블이 security: internal 인 네임스페이스)로 향하는 모든 유입 트래픽이 ACL의 2계층으로 전달되고 네임스페이스의 NetworkPolicy 개체에 의해 평가되도록 보장합니다.

예 2.4. 강력한 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
# ...
Copy to Clipboard Toggle word wrap

이 예제는 테넌트 소유자가 정의한 NetworkPolicy 객체에 결정을 위임하므로 강력한 Pass 작업 ANP입니다. 이 패스 모니터링 ANP를 사용하면 보안 수준 내부 에서 그룹화된 모든 테넌트 소유자가 네임스페이스 범위의 NetworkPolicy 객체를 사용하여 인프라 모니터링 서비스에서 메트릭을 스크래핑할지 여부를 선택할 수 있습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat