9.3. Ingress Node Firewall Operator 배포


사전 요구 사항

  • Ingress Node Firewall Operator가 설치되어 있습니다.

절차

Ingress Node Firewall Operator를 배포하려면 Operator의 데몬 세트를 배포할 IngressNodeFirewallConfig 사용자 정의 리소스를 생성합니다. 방화벽 규칙을 적용하여 노드에 하나 이상의 IngressNodeFirewall CRD를 배포할 수 있습니다.

  1. ingressnodefirewallconfig 라는 openshift-ingress-node-firewall 네임스페이스에 IngressNodeFirewallConfig 를 생성합니다.
  2. 다음 명령을 실행하여 Ingress Node Firewall Operator 규칙을 배포합니다.

    $ oc apply -f rule.yaml

9.3.1. Ingress 노드 방화벽 구성 오브젝트

Ingress 노드 방화벽 구성 오브젝트의 필드는 다음 표에 설명되어 있습니다.

표 9.1. Ingress 노드 방화벽 구성 오브젝트
필드유형설명

metadata.name

string

CR 오브젝트의 이름입니다. 방화벽 규칙 오브젝트의 이름은 ingressnodefirewallconfig 여야 합니다.

metadata.namespace

string

Ingress 방화벽 Operator CR 오브젝트의 네임스페이스입니다. IngressNodeFirewallConfig CR은 openshift-ingress-node-firewall 네임스페이스 내부에서 생성해야 합니다.

spec.nodeSelector

string

지정된 노드 레이블을 통해 노드를 대상으로 하는 노드 선택 제약 조건입니다. 예를 들면 다음과 같습니다.

spec:
  nodeSelector:
    node-role.kubernetes.io/worker: ""
참고

데몬 세트를 시작하려면 nodeSelector 에 사용된 하나의 레이블이 노드의 라벨과 일치해야 합니다. 예를 들어 노드 레이블 node-role.kubernetes.io/workernode-type.kubernetes.io/vm 이 노드에 적용되는 경우 데몬 세트를 시작하기 위해 nodeSelector 를 사용하여 하나 이상의 라벨을 설정해야 합니다.

참고

Operator는 CR을 사용하고 nodeSelector 와 일치하는 모든 노드에서 Ingress 노드 방화벽 데몬 세트를 생성합니다.

Ingress Node Firewall Operator 구성 예

전체 Ingress 노드 방화벽 구성은 다음 예에 지정됩니다.

Ingress 노드 방화벽 구성 오브젝트의 예

apiVersion: ingressnodefirewall.openshift.io/v1alpha1
kind: IngressNodeFirewallConfig
metadata:
  name: ingressnodefirewallconfig
  namespace: openshift-ingress-node-firewall
spec:
  nodeSelector:
    node-role.kubernetes.io/worker: ""

참고

Operator는 CR을 사용하고 nodeSelector 와 일치하는 모든 노드에서 Ingress 노드 방화벽 데몬 세트를 생성합니다.

9.3.2. Ingress 노드 방화벽 규칙 오브젝트

Ingress 노드 방화벽 규칙 오브젝트의 필드는 다음 표에 설명되어 있습니다.

표 9.2. Ingress 노드 방화벽 규칙 오브젝트
필드유형설명

metadata.name

string

CR 오브젝트의 이름입니다.

인터페이스

array

이 오브젝트의 필드는 방화벽 규칙을 적용할 인터페이스를 지정합니다. 예를 들면 - en0- en1 입니다.

nodeSelector

array

nodeSelector 를 사용하여 방화벽 규칙을 적용할 노드를 선택할 수 있습니다. 규칙을 적용하려면 이름이 지정된 nodeselector 레이블의 값을 true 로 설정합니다.

Ingress

object

Ingress 를 사용하면 외부에서 클러스터의 서비스에 액세스할 수 있는 규칙을 구성할 수 있습니다.

Ingress 오브젝트 구성

ingress 오브젝트의 값은 다음 표에 정의되어 있습니다.

표 9.3. Ingress 오브젝트
필드유형설명

sourceCIDRs

array

CIDR 블록을 설정할 수 있습니다. 다른 주소 제품군에서 여러 CIDR을 구성할 수 있습니다.

참고

다른 CIDR을 사용하면 동일한 순서 규칙을 사용할 수 있습니다. 동일한 노드와 겹치는 CIDR이 있는 인터페이스에 대해 IngressNodeFirewall 오브젝트가 여러 개 있는 경우 order 필드에서 먼저 적용되는 규칙을 지정합니다. 규칙은 순서대로 적용됩니다.

rules

array

Ingress 방화벽 규칙. 순서 오브젝트는 CIDR당 최대 100개의 규칙이 있는 source.CIDR 마다 1 부터 정렬됩니다. 더 낮은 순서 규칙이 먼저 실행됩니다.

rules.protocolConfig.protocol 은 TCP, UDP, SCTP, ICMP 및 ICMPv6의 다음 프로토콜을 지원합니다. ICMP 및 ICMPv6 규칙은 ICMP 및 ICMPv6 유형 또는 코드와 일치할 수 있습니다. TCP, UDP 및 SCTP 규칙은 < start : end-1 > 형식을 사용하여 단일 대상 포트 또는 포트 범위와 일치할 수 있습니다.

규칙을 적용하거나 규칙을 허용하지 않도록 거부할 rules.action 을 설정합니다.

참고

Ingress 방화벽 규칙은 잘못된 구성을 차단하는 확인 Webhook를 사용하여 확인합니다. 확인 Webhook를 사용하면 API 서버 또는 SSH와 같은 중요한 클러스터 서비스를 차단할 수 없습니다.

Ingress 노드 방화벽 규칙 오브젝트의 예

전체 Ingress 노드 방화벽 구성은 다음 예에 지정됩니다.

Ingress 노드 방화벽 구성의 예

apiVersion: ingressnodefirewall.openshift.io/v1alpha1
kind: IngressNodeFirewall
metadata:
  name: ingressnodefirewall
spec:
  interfaces:
  - eth0
  nodeSelector:
    matchLabels:
      <do_node_ingress_firewall>: 'true'
  ingress:
  - sourceCIDRs:
       - 172.16.0.0/12
    rules:
    - order: 10
      protocolConfig:
        protocol: ICMP
        icmp:
          icmpType: 8 #ICMP Echo request
      action: Deny
    - order: 20
      protocolConfig:
        protocol: TCP
        tcp:
          ports: "8000-9000"
      action: Deny
  - sourceCIDRs:
       - fc00:f853:ccd:e793::0/64
    rules:
    - order: 10
      protocolConfig:
        protocol: ICMPv6
        icmpv6:
          icmpType: 128 #ICMPV6 Echo request
      action: Deny

신뢰할 수 있는 Ingress 노드 방화벽 규칙 오브젝트 예

제로 트러스트된 Ingress 노드 방화벽 규칙은 다중 인터페이스 클러스터에 추가 보안을 제공할 수 있습니다. 예를 들어, 제로 트러스트 Ingress 노드 방화벽 규칙을 사용하여 SSH를 제외한 특정 인터페이스의 모든 트래픽을 삭제할 수 있습니다.

제로 신뢰 Ingress 노드 방화벽 규칙 세트의 전체 구성이 다음 예에 지정됩니다.

중요

사용자는 적절한 기능을 보장하기 위해 다음 경우 해당 애플리케이션이 allowlist에 사용하는 모든 포트를 추가해야 합니다.

제로 신뢰 Ingress 노드 방화벽 규칙의 예

apiVersion: ingressnodefirewall.openshift.io/v1alpha1
kind: IngressNodeFirewall
metadata:
 name: ingressnodefirewall-zero-trust
spec:
 interfaces:
 - eth1 1
 nodeSelector:
   matchLabels:
     <do_node_ingress_firewall>: 'true'
 ingress:
 - sourceCIDRs:
      - 0.0.0.0/0 2
   rules:
   - order: 10
     protocolConfig:
       protocol: TCP
       tcp:
         ports: 22
     action: Allow
   - order: 20
     action: Deny 3

1
다중 인터페이스 클러스터
2
0.0.0.0/0 이 모든 CIDR과 일치하도록 설정
3
거부로 설정된 작업 설정
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.