본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

티어(Tier)

원문 보기 위키 갱신

티어(Tier)는 Calico에서 네트워크 정책들을 우선순위가 다른 그룹으로 묶는 리소스예요. 규칙의 Pass 액션이 다음 티어로 평가를 넘기기 때문에 계층적인 정책 설계가 가능해집니다. 이 문서에서는 티어의 개념, 정책 평가 순서, YAML 예제와 스펙 정의를 소개해요.

출처: 문서

본문

티어 리소스(Tier)는 NetworkPolicy와 GlobalNetworkPolicy의 순서 있는 컬렉션을 나타냅니다. 티어는 이런 정책들을 우선순위가 다른 그룹으로 나누는 데 사용해요. 정책들은 티어 안에서 순서대로 평가되고, 티어라는 추가 계층 덕분에 규칙의 Pass action이 다음 티어로 건너뛸 수 있어서 훨씬 유연해집니다. 이 기능의 대표적인 활용 예는 다음과 같아요.

  • 특별 권한을 가진 사용자가 다른 사용자보다 우선하는 보안 정책을 정의할 수 있게 하기
  • 물리 방화벽의 계층 구조를 Calico 정책으로 그대로 옮기기

kubectl 명령에서는 CLI에서 리소스 타입을 지정할 때 대소문자를 구분하지 않는 다음 별칭을 사용할 수 있어요: tier.projectcalico.org, tiers.projectcalico.org, 그리고 tier.p, tiers.p 같은 약어도 됩니다.

정책이 평가되는 방식

Calico가 새 연결을 처리할 때, 엔드포인트에 적용되는 정책을 담고 있는 각 티어가 패킷을 처리해요. 티어는 order 값을 기준으로 정렬되며, 숫자가 가장 작은 티어부터 처리됩니다.

그다음 각 티어 안의 정책들은 순서대로 처리돼요.

  • 티어 안의 NetworkPolicy나 GlobalNetworkPolicy가 패킷을 Allow하거나 Deny하면 평가는 거기서 끝나고, 패킷은 그에 맞게 처리됩니다.
  • 티어 안의 NetworkPolicy나 GlobalNetworkPolicy가 패킷을 Pass하면, 엔드포인트에 적용되는 정책을 담고 있는 다음 티어가 패킷을 이어서 처리해요.

티어가 엔드포인트에 적용되는데 패킷에 대해 아무 조치도 취하지 않으면 패킷은 드롭됩니다. 이 동작은 티어의 defaultAction을 Pass로 설정해서 바꿀 수 있어요.

엔드포인트에 적용되는 마지막 티어가 패킷을 Pass하면, 그 엔드포인트의 프로파일(Profiles)이 평가됩니다.

샘플 YAML

apiVersion: projectcalico.org/v3
kind: Tier
metadata:
  name: internal-access
spec:
  order: 100
  defaultAction: Deny

정의

메타데이터

Field Description Accepted Values Schema
name The name of the tier. string

스펙

Field Description Accepted Values Schema Default
order (Optional) Indicates priority of this Tier, with lower order taking precedence. No value indicates highest order (lowest precedence) float nil (highest order)
defaultAction (Optional) Indicates the default action, when this Tier applies to an endpoint, but takes no action on the packet Deny, Pass string Deny

Calico 오케스트레이터 통합이 생성하는 모든 정책은 기본(마지막) 티어에 만들어져요.

더 알아보기 (Learn more)

티어의 order와 defaultAction을 조합하면 정책 평가 순서를 단계별로 설계할 수 있어요. 실제 정책 작성법은 NetworkPolicy와 GlobalNetworkPolicy 문서를 함께 참고하면 좋습니다.