6장. 네트워크 보안
6.1. 네트워크 정책 API 이해
Kubernetes는 사용자가 네트워크 보안을 적용하는 데 사용할 수 있는 두 가지 기능을 제공합니다. 사용자가 네트워크 정책을 적용할 수 있는 한 가지 기능은 애플리케이션 개발자 및 네임스페이스 테넌트가 네임스페이스 범위 정책을 생성하여 네임스페이스를 보호하기 위해 주로 설계된 NetworkPolicy
API입니다.
두 번째 기능은 AdminNetworkPolicy
(ANP) API와 Baseline
(BANP) API의 두 API로 구성된 AdminNetworkPolicy입니다. ANP 및 BANP는 클러스터 범위 정책을 생성하여 클러스터 및 네트워크 관리자가 전체 클러스터를 보호하도록 설계되었습니다. 클러스터 관리자는 ANPs를 사용하여 AdminNetworkPolicy
NetworkPolicy
오브젝트보다 우선하는 복구 불가능한 정책을 적용할 수 있습니다. 관리자는 BANP를 사용하여 필요한 경우 NetworkPolicy
오브젝트를 사용하는 사용자가 덮어쓸 수 있는 선택적 클러스터 범위 네트워크 정책 규칙을 설정하고 적용할 수 있습니다. ANP, BANP 및 네트워크 정책을 함께 사용하면 관리자가 클러스터를 보호하는 데 사용할 수 있는 완전한 다중 테넌트 격리를 수행할 수 있습니다.
AWS의 Red Hat OpenShift Service의 OVN-Kubernetes CNI는 ACL(Access Control List) 계층을 사용하여 이러한 네트워크 정책을 구현하여 이를 평가하고 적용합니다. ACL은 계층 1에서 계층 3까지 내림차순으로 평가됩니다.
계층 1은 관리NetworkPolicy
(ANP) 오브젝트를 평가합니다. 계층 2는 NetworkPolicy
오브젝트를 평가합니다. 계층 3은 BaselineAdminNetworkPolicy
(BANP) 오브젝트를 평가합니다.
ANP가 먼저 평가됩니다. 일치 항목이 ANP 허용
또는 거부
규칙인 경우 클러스터의 기존 NetworkPolicy
및 BANP( BaselineAdminNetworkPolicy
) 오브젝트는 평가에서 건너뜁니다. 일치 항목이 ANP 통과
규칙인 경우 평가는 ACL의 계층 1에서 NetworkPolicy
정책이 평가되는 계층 2로 이동합니다. NetworkPolicy
가 트래픽과 일치하지 않으면 평가는 계층 2 ACL에서 BANP가 평가되는 계층 3 ACL로 이동합니다.
6.1.1. AdminNetworkPolicy와 NetworkPolicy 사용자 정의 리소스의 주요 차이점
다음 표에서는 클러스터 범위 AdminNetworkPolicy
API와 네임스페이스 범위 NetworkPolicy
API 간의 주요 차이점을 설명합니다.
정책 요소 | AdminNetworkPolicy | NetworkPolicy |
---|---|---|
적용 가능한 사용자 | 클러스터 관리자 또는 이에 상응하는 | 네임스페이스 소유자 |
범위 | Cluster | namespaced |
트래픽 드롭 |
명시적 |
정책 생성 시 암시적 |
트래픽 위임 |
규칙으로 | 해당 없음 |
트래픽 허용 |
명시적 | 모든 규칙에 대한 기본 작업은 허용하는 것입니다. |
정책 내에서 규칙 우선순위 | ANP 내에 표시되는 순서에 따라 달라집니다. 규칙의 위치가 높을수록 우선순위가 높습니다. | 규칙이 추가됩니다. |
정책 우선순위 |
ANPs 중 | 정책 간에는 정책 순서가 없습니다. |
기능 우선 순위 | 계층 1 ACL 및 BANP를 통해 먼저 평가되는 것은 계층 3 ACL을 통해 마지막으로 평가됩니다. | ANP 및 BANP 전에 시행되며 ACL의 계층 2에서 평가됩니다. |
Pod 선택 일치 | 네임스페이스에 다른 규칙을 적용할 수 있습니다. | 단일 네임스페이스의 Pod에 다른 규칙을 적용할 수 있습니다. |
클러스터 송신 트래픽 |
|
허용되는 CIDR 구문과 함께 |
클러스터 인그레스 트래픽 | 지원되지 않음 | 지원되지 않음 |
FQDN(정규화된 도메인 이름) 피어 지원 | 지원되지 않음 | 지원되지 않음 |
네임스페이스 선택기 |
|
|