Kubernetes 어드미션 컨트롤러 살펴보기

Kubernetes 어드미션 컨트롤러 살펴보기

Kubernetes 클러스터에서 어드미션 컨트롤러를 사용해 아티팩트 증명을 강제하는 방법을 알아볼게요.

출처: Kubernetes admissions controller

본문

Kubernetes 어드미션 컨트롤러 소개

아티팩트 증명을 사용하면 구축한 소프트웨어에 대해 위조할 수 없는 출처와 무결성 보증을 만들 수 있어요. 그러면 소프트웨어를 소비하는 사람들이 소프트웨어가 어디서 어떻게 빌드됐는지 검증할 수 있어요.

Kubernetes 어드미션 컨트롤러는 Kubernetes API 서버의 동작을 제어하는 플러그인이에요. Kubernetes 클러스터에서 보안 정책과 모범 사례를 강제하는 데 흔히 사용돼요.

오픈소스 Sigstore Policy Controller 프로젝트를 사용하면 아티팩트 증명을 강제할 수 있는 어드미션 컨트롤러를 Kubernetes 클러스터에 추가할 수 있어요. 이렇게 하면 유효한 증명이 있는 아티팩트만 배포될 수 있도록 보장할 수 있어요.

컨트롤러를 설치하려면 두 개의 Helm 차트를 제공해요. 하나는 Sigstore Policy Controller 배포용이고, 다른 하나는 GitHub 신뢰 루트(trust root)와 기본 정책을 로드하는 용도예요.

이미지 검증 소개

Policy Controller가 설치되면 모든 이미지 풀 요청을 가로채서 이미지의 증명을 검증해요. 증명은 Sigstore Bundle을 포함하는 OCI 첨부 아티팩트로 이미지 레지스트리에 저장되어야 해요. Sigstore Bundle에는 증명과 그 증명 검증에 사용되는 암호화 자료(예: 인증서와 서명)가 포함돼요. 그런 다음 이미지가 지정된 빌드 출처로 빌드됐고 클러스터 관리자가 활성화한 정책과 일치하는지 확인하는 검증 프로세스가 수행돼요.

이미지가 검증 가능하려면 레지스트리에 유효한 출처 증명이 있어야 해요. 이는 actions/attest 액션에서 push-to-registry: true 속성을 활성화해서 할 수 있어요. 컨테이너 이미지에 대한 증명 생성 방법에 대한 자세한 내용은 컨테이너 이미지에 대한 빌드 출처 생성하기를 참고하세요.

신뢰 루트와 정책 소개

Sigstore Policy Controller는 주로 신뢰 루트와 정책으로 구성되며, 이는 사용자 지정 리소스 TrustRootClusterImagePolicy로 표현돼요. TrustRoot는 증명 검증에 사용되는 공개 키 자료의 신뢰할 수 있는 배포 채널을 나타내요. ClusterImagePolicy는 이미지에 대한 증명을 강제하는 정책을 나타내요.

TrustRootTUF 리포지토리 루트를 포함할 수도 있어, 클러스터가 신뢰하는 공개 키 자료에 대한 업데이트를 지속적이고 안전하게 받을 수 있게 해줘요. 지정하지 않으면 ClusterImagePolicy는 기본적으로 오픈소스 Sigstore Public Good Instance의 키 자료를 사용해요. 비공개 리포지토리용으로 생성된 증명을 검증할 때는 ClusterImagePolicy가 GitHub TrustRoot를 참조해야 해요.

다음 단계

어드미션 컨트롤러를 사용할 준비가 되면 Kubernetes 어드미션 컨트롤러로 아티팩트 증명 강제하기를 참고하세요.

더 알아보기 (Learn more)