9.3. Ingress 노드 방화벽 운영자 배포
사전 요구 사항
- Ingress Node Firewall Operator가 설치되었습니다.
프로세스
Ingress Node Firewall Operator를 배포하려면 Operator의 데몬 세트를 배포할 IngressNodeFirewallConfig 사용자 정의 리소스를 만듭니다. 방화벽 규칙을 적용하여 하나 이상의 IngressNodeFirewall CRD를 노드에 배포할 수 있습니다.
-
openshift-ingress-node-firewall네임스페이스 내에ingressnodefirewallconfig라는 이름의IngressNodeFirewallConfig를생성합니다. 다음 명령을 실행하여 Ingress Node Firewall Operator 규칙을 배포합니다.
$ oc apply -f rule.yaml
9.3.1. Ingress 노드 방화벽 구성 개체 링크 복사링크가 클립보드에 복사되었습니다!
Ingress 노드 방화벽 구성 개체의 필드는 다음 표에 설명되어 있습니다.
| 필드 | 유형 | 설명 |
|---|---|---|
|
|
|
CR 객체의 이름입니다. 방화벽 규칙 개체의 이름은 |
|
|
|
Ingress Firewall Operator CR 개체에 대한 네임스페이스입니다. |
|
|
| 지정된 노드 레이블을 통해 노드를 타겟으로 지정하는 데 사용되는 노드 선택 제약 조건입니다. 예를 들면 다음과 같습니다.
참고
데몬 세트를 시작하려면 |
|
|
| Node Ingress Firewall Operator가 eBPF Manager Operator를 사용하여 eBPF 프로그램을 관리할지 여부를 지정합니다. 이 기능은 기술 미리보기 기능입니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오. |
운영자는 CR을 사용하여 nodeSelector 와 일치하는 모든 노드에 설정된 수신 노드 방화벽 데몬을 생성합니다.
9.3.2. Ingress 노드 방화벽 운영자 구성 예시 링크 복사링크가 클립보드에 복사되었습니다!
다음 예에서는 완전한 Ingress 노드 방화벽 구성을 지정합니다.
Ingress 노드 방화벽 구성 객체를 만드는 방법의 예
$ cat << EOF | oc create -f -
apiVersion: ingressnodefirewall.openshift.io/v1alpha1
kind: IngressNodeFirewallConfig
metadata:
name: ingressnodefirewallconfig
namespace: openshift-ingress-node-firewall
spec:
nodeSelector:
node-role.kubernetes.io/worker: ""
EOF
Operator는 CR 객체를 사용하고 nodeSelector 와 일치하는 모든 노드에 설정된 수신 노드 방화벽 데몬을 생성합니다.
9.3.3. Ingress 노드 방화벽 규칙 개체 링크 복사링크가 클립보드에 복사되었습니다!
Ingress 노드 방화벽 규칙 개체의 필드는 다음 표에 설명되어 있습니다.
| 필드 | 유형 | 설명 |
|---|---|---|
|
|
| CR 객체의 이름입니다. |
|
|
|
이 개체의 필드는 방화벽 규칙을 적용할 인터페이스를 지정합니다. 예를 들어, |
|
|
|
|
|
|
|
|
9.3.3.1. Ingress 객체 구성 링크 복사링크가 클립보드에 복사되었습니다!
ingress 객체의 값은 다음 표에 정의되어 있습니다.
| 필드 | 유형 | 설명 |
|---|---|---|
|
|
| CIDR 블록을 설정할 수 있습니다. 다양한 주소 패밀리에서 여러 CIDR을 구성할 수 있습니다. 참고
CIDR이 다르면 동일한 주문 규칙을 사용할 수 있습니다. 동일한 노드와 인터페이스에 대해 CIDR이 겹치는 여러 |
|
|
|
Ingress 방화벽
참고 Ingress 방화벽 규칙은 잘못된 구성을 차단하는 검증 웹훅을 사용하여 검증됩니다. 확인 웹훅을 사용하면 API 서버와 같은 중요한 클러스터 서비스를 차단하지 못하게 됩니다. |
9.3.3.2. Ingress 노드 방화벽 규칙 객체 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예에서는 완전한 Ingress 노드 방화벽 구성을 지정합니다.
Ingress 노드 방화벽 구성 예
apiVersion: ingressnodefirewall.openshift.io/v1alpha1
kind: IngressNodeFirewall
metadata:
name: ingressnodefirewall
spec:
interfaces:
- eth0
nodeSelector:
matchLabels:
<ingress_firewall_label_name>: <label_value>
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
- 1
- <label_name>과 <label_value>는 노드에 있어야 하며
ingressfirewallconfigCR을 실행하려는 노드에 적용된nodeselector레이블 및 값과 일치해야 합니다. <label_value>는true또는false가될 수 있습니다.nodeSelector레이블을 사용하면ingressfirewallconfigCR을 사용하여 서로 다른 규칙을 적용할 별도의 노드 그룹을 타겟팅할 수 있습니다.
9.3.3.3. Zero trust Ingress 노드 방화벽 규칙 객체 예시 링크 복사링크가 클립보드에 복사되었습니다!
Zero trust Ingress 노드 방화벽 규칙은 다중 인터페이스 클러스터에 추가적인 보안을 제공할 수 있습니다. 예를 들어, 제로 트러스트 Ingress 노드 방화벽 규칙을 사용하면 SSH를 제외한 특정 인터페이스의 모든 트래픽을 삭제할 수 있습니다.
다음 예에서는 Zero Trust Ingress 노드 방화벽 규칙 세트의 전체 구성을 지정합니다.
사용자는 애플리케이션이 제대로 작동하도록 하기 위해 다음과 같은 경우 허용 목록에 모든 포트를 추가해야 합니다.
예제 제로 트러스트 Ingress 노드 방화벽 규칙
apiVersion: ingressnodefirewall.openshift.io/v1alpha1
kind: IngressNodeFirewall
metadata:
name: ingressnodefirewall-zero-trust
spec:
interfaces:
- eth1
nodeSelector:
matchLabels:
<ingress_firewall_label_name>: <label_value>
ingress:
- sourceCIDRs:
- 0.0.0.0/0
rules:
- order: 10
protocolConfig:
protocol: TCP
tcp:
ports: 22
action: Allow
- order: 20
action: Deny
eBPF Manager Operator 통합은 기술 미리 보기 기능에 불과합니다. 기술 미리 보기 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat Technology Preview 기능의 지원 범위에 대한 자세한 내용은 다음 링크를 참조하세요.