[Supply Chain Security] Whitelist Allowed Registries - Image Policy Webhook

IMKUNYOUNG·2024년 6월 28일
0

CKS

목록 보기
61/70

이번 글에서는 Kubernetes 클러스터에서 이미지 레지스트리를 화이트리스트로 설정하는 방법에 대해 알아보겠습니다. 이미지 레지스트리 화이트리스트는 클러스터 보안을 강화하고, 허가되지 않은 이미지의 사용을 방지하는 중요한 요소입니다. 허용되지 않은 이미지를 사용할 경우 클러스터 전체의 보안이 위협받을 수 있기 때문에, 이를 효과적으로 관리하는 것이 중요합니다.

문제의식

Kubernetes 클러스터는 사용자가 pod를 배포할 수 있는 허용된 권한을 가지고 있습니다. 이는 사용자가 허용되지 않은 레지스트리에서 매우 취약한 이미지를 사용할 수 있는 가능성을 내포하고 있습니다. 이러한 취약한 이미지가 클러스터에 배포되면, 다른 애플리케이션의 보안에 대한 위협이 될 수 있습니다.

해결책

이 문제를 해결하기 위해 이미지 레지스트리 화이트리스트를 설정할 수 있습니다. 즉, 허용된 레지스트리에서만 이미지를 가져와서 사용하도록 제한하는 것입니다. Kubernetes에서는 이를 위해 다양한 방법을 제공합니다.

1. Admission Controller 활용

Admission Controller는 Kubernetes API 요청을 인증, 권한 부여 및 검증하기 위한 매커니즘을 제공합니다. 특히 유효성 검사 Admission Controller를 사용하여 이미지 레지스트리 제한을 구현할 수 있습니다. 이를 위해 Admission 웹훅 서버를 구성하고, 이미지가 허용된 레지스트리에서만 가져오도록 정책을 설정할 수 있습니다.

2. OPA(Open Policy Agent) 사용

OPA는 정책 관리를 위한 오픈소스 프로젝트로, Kubernetes 클러스터에서도 활용할 수 있습니다. OPA를 사용하여 특정 이미지 레지스트리를 허용하는 정책을 정의하고, 이를 유효성 검사 웹훅을 통해 Kubernetes에 적용할 수 있습니다.

3. 이미지 정책 웹훅 Admission 컨트롤러

이미지 정책 웹훅 어드미션 컨트롤러는 특정 이미지 정책을 적용하여, 클러스터에 배포되는 모든 이미지에 대해 제한을 설정할 수 있습니다. 이를 통해 모든 요청을 허용하기 전에 이미지가 허용된 레지스트리에서 온 것인지 확인할 수 있습니다.

구현 예시

이미지 정책 웹훅 어드미션 컨트롤러를 구성하는 예시는 다음과 같습니다.

  1. 어드미션 컨트롤 설정 파일을 편집하여 이미지 정책 웹훅을 활성화합니다.
  2. 웹훅 서버에서 이미지 이름 패턴을 확인하고, 허용된 레지스트리에 속하지 않은 이미지에 대해 요청을 거부합니다.
  3. 필요한 경우, 에러 메시지를 반환하여 왜 요청이 거부되었는지를 명확히 이해할 수 있도록 합니다.



마치며

Kubernetes에서 이미지 레지스트리 화이트리스트를 설정함으로써 클러스터의 보안을 강화할 수 있습니다. 어드미션 컨트롤러를 활용하거나 OPA를 통해 정책을 관리하는 등 다양한 방법이 있으니, 클러스터 환경에 맞는 최적의 방법을 선택하여 사용해보세요.

0개의 댓글