Kubernetes_CA/Policy Control Mechanism

안서현·2024년 11월 11일

Kubernetes CA(Certificate Authority)

  • 클러스터 내에서 보안 통신을 보장하기 위해 TLS 인증서를 발급하고 관리하는 인증기관

  • 주요 역할
    1) 루트 인증서(Root Certificate)를 생성하여 클러스터 내에서 신뢰할 수 있는 기반 제공
    2) TLS 인증서를 발급하여 쿠버네티스의 주요 컴포넌트(API Server, kubelet, etcd 등)가 안전하게 통신할 수 있도록 보장
    3) 클러스터 내에서 사용자 및 서비스 계정 인증을 위한 클라이언트 인증서를 생성하고 관리

  • CA가 발급하는 주요 인증서
    1) API 서버 인증서 : API 서버가 클러스터의 중심으로 작동하며, 클라이언트 및 다른 컴포넌트와 통신할 때 사용
    2) kubelet 인증서 : 노드의 kubelet이 API 서버와 통신할 때 자신의 신원을 인증
    3) etcd 인증서 : 분산 데이터 저장소인 etcd 간의 통신을 암호화
    4) 컨트롤러 및 스케줄러 인증서 : Controller Manager와 Scheduler가 API 서버와 보안 통신을 수행

Private CA

  • 조직 내부에서 사용하는 자체 인증 기관
  • Public CA와 달리 외부의 신뢰 체계에 의존하지 않고 내부에서 인증서를 발급하고 관리
  • private CA가 발급한 인증서는 조직 내에서만 사용함

Private CA vs Public CA

항목고유 CA (Private CA)공인 CA (Public CA)
신뢰 범위내부 조직 또는 네트워크 내전 세계적으로 신뢰 가능
비용운영 비용 (초기 설정 및 유지 관리 필요)인증서 발급 비용 지불 필요
용도내부 서비스, 테스트 환경공개 웹사이트, 외부 서비스
인증서 발급자체적으로 발급 및 관리공인된 기관에서 인증서 발급

Policy Control Mechanism

  • 쿠버네티스와 같은 분산 시스템에서는 정책 제어 메커니즘을 통해 보안과 리소스 관리를 효율적으로 수행
  1. 인증(Authentication)
  • 시스템에 접근하려는 사용자의 신원을 확인
  • 방법 : TLS 인증서 기반 클라이언트 인증 / 토큰 기반 인증 (예: Service Account 토큰) / OIDC(OpenID Connect) 또는 LDAP와 같은 외부 인증 제공자를 사용
  1. 권한 부여(Authorization)
  • 인증된 사용자가 특정 작업(예: Pod 생성, 삭제)을 수행할 수 있는지 결정
  • 방법 : RBAC(Role-Based Access Control): 역할 기반으로 접근 권한을 관리 / ABAC(Attribute-Based Access Control): 속성 기반 접근 제어 / Webhook Authorization: 외부 시스템과 연동하여 사용자 작업을 승인 또는 거부
  1. 어드미션 컨트롤러(Admission Controller)
  • API 서버에 도달한 요청을 승인하거나 거부하는 플러그인.
  • 역할 : 요청이 클러스터 정책을 준수하는지 검증 / 리소스 생성, 수정, 삭제 시 추가 검사를 수행 / Mutating Admission Controller: 요청을 수정할 수 있음 / Validating Admission Controller: 요청을 검증하고 유효하지 않은 경우 거부
  1. 네트워크 정책(Network Policy)
  • Pod 간 및 Pod와 외부 간의 네트워크 트래픽을 제어
  • 특징 : Pod 수준에서의 트래픽 제어 / 특정 네임스페이스나 레이블을 기반으로 트래픽 허용 또는 차단 / 네트워크 플러그인(CNI)과 연동하여 적용
  1. 리소스 제한(Resource Quotas & Limits)
  • 네임스페이스별로 리소스 사용량을 제한
  • 리소스 제한 : CPU, 메모리, 스토리지와 같은 리소스의 사용량을 제어 / LimitsRange: 컨테이너의 기본 요청/제한 값을 설정
  1. 정책 엔진(Policy Engine)
  • Kyverno 또는 OPA(Open Policy Agent)를 사용하여 쿠버네티스 리소스의 세부적인 정책을 정의하고 실행
  • Kyverno: 쿠버네티스 네이티브 정책 엔진으로, YAML 형식의 정책을 작성
  • OPA: 더 유연하고 복잡한 정책을 Rego 언어로 작성 가능.
profile
안녕하세요!

0개의 댓글