정책 시행
정책 시행 (Policy Enforcement)
Cilium 네트워크 보안 정책이 어떻게 시행되는지, 그리고 기본 보안 정책의 동작 방식을 설명하는 문서예요. 상태 저장(stateful) 정책 시행의 개념을 이해하는 데 도움이 돼요.
본문
모든 보안 정책은 세션 기반 프로토콜에 대해 상태 저장(stateful) 정책 시행을 가정하고 설명돼요. 즉, 정책의 의도는 연결 설정(connection establishment)의 허용 방향을 설명하는 거예요. 정책이 A => B를 허용하면 B에서 A로 가는 응답 패킷도 자동으로 허용돼요. 하지만 B가 A로 연결을 시작하는 것은 자동으로 허용되지 않아요. 그런 결과를 원한다면 양방향을 명시적으로 허용해야 해요.
보안 정책은 ingress(수신) 또는 egress(송신)에서 시행될 수 있어요. ingress의 경우 각 클러스터 노드가 들어오는 모든 패킷을 검증하고, 그 패킷이 의도한 엔드포인트로 전송되도록 허용되는지 판단해요. 마찬가지로 egress의 경우 각 클러스터 노드가 나가는 패킷을 검증하고, 그 패킷이 의도한 목적지로 전송되도록 허용되는지 판단해요.
다중 호스트 클러스터에서 식별 기반 보안을 시행하기 위해, 전송 엔드포인트의 식별자가 클러스터 노드 사이에서 전송되는 모든 네트워크 패킷에 내장돼요. 수신하는 클러스터 노드는 그 식별자를 추출해 특정 식별자가 로컬 엔드포인트와 통신하는 것이 허용되는지 검증할 수 있어요.
기본 보안 정책 (Default Security Policy)
정책이 로드되지 않으면, 정책 시행이 명시적으로 활성화되지 않는 한 기본 동작은 모든 통신을 허용하는 거예요. 첫 번째 정책 규칙이 로드되는 즉시 정책 시행이 자동으로 활성화되고, 이후에는 모든 통신이 화이트리스트에 등록되어야 하며 그렇지 않으면 관련 패킷이 버려져요.
마찬가지로, 엔드포인트가 L4 정책의 적용을 받지 않으면 모든 포트로의 통신이 허용돼요. 엔드포인트에 L4 정책을 하나라도 연결하면, 명시적으로 허용되지 않는 포트로의 모든 연결이 차단돼요.