쿠버네티스 v1.37: 파드 인증서 및 클러스터 신뢰 번들
쿠버네티스는 새로운 프로덕션 ID 메커니즘으로 Pod Certificates와 Cluster Trust Bundles를 도입했습니다. 이제 일반적으로 사용 가능한 이 기능은 TLS 및 mTLS를 위한 X.509 인증서 발급을 핵심 쿠버네티스에 직접 통합합니다. 이는 이전의 주요 메커니즘인 서비스 계정 JWT를 넘어선 중요한 단계입니다. JWT는 사용 편의성과 광범위한 호환성을 제공하지만, 중요한 약점을 가지고 있습니다. 바로 베어러 토큰이기 때문에 손상될 경우 무단 액세스에 취약하다는 점입니다. 반면에 Pod Certificates는 주로 X.509 인증서를 기반으로 하는 증명 기반 자격 증명을 활용합니다. 이는 자격 증명 자체를 단순히 공유하는 대신 소유권을 입증하도록 요구함으로써 보안을 강화합니다.목표는 쿠버네티스 워크로드에서 X.509 인증서를 사용하는 것을 JWT만큼 간단하게 만들면서 높은 보안 표준을 유지하는 것입니다. Pod Certificates는 유연성을 위해 설계되었으며, 플러그형 인터페이스를 통해 단일 클러스터 내에서 다양한 인증서 유형을 사용할 수 있습니다. 이는 서비스 계정 JWT의 단일 표준화된 방식과 대조됩니다. 향후 쿠버네티스 버전에서는 서비스 DNS 이름 및 SPIFFE 클라이언트 인증서를 위한 내장 인증서 제공업체를 제공할 것으로 예상됩니다.아키텍처는 인증서를 요청하는 애플리케이션, 요청을 발급하고 신뢰 번들을 관리하는 Kubelet, 그리고 이러한 요청을 충족하고 신뢰 번들을 게시하는 서명자 컨트롤러를 포함합니다. 발급 프로세스는 연대순으로 진행되며, 파드 스케줄링으로 시작하여 애플리케이션이 키와 인증서에 액세스하는 것으로 마무리됩니다. 자동 회전 기능이 내장되어 있으며, 애플리케이션은 이러한 업데이트를 처리해야 합니다. 보안 검사는 kube-apiserver에 통합되어 격리를 강제하고 손상된 노드가 부당한 액세스를 얻는 것을 방지합니다. 이러한 기능을 실험하려면 사용자는 Tinycert와 같은 타사 서명자를 설치해야 하며, 이는 예제 서명자와 애플리케이션이 SPIFFE 인증서를 로드하는 데 도움이 되는 라이브러리를 제공합니다.