Kubernetes 컨테이너 이미지 다이제스트 고정 점검

배포할 이미지의 정확한 내용을 지정하고 검증된 업데이트를 관리하세요.

설명

태그만 사용한 컨테이너 이미지는 같은 이름이 다른 내용으로 바뀔 수 있습니다. 다이제스트로 지정하면 원하는 이미지 내용을 고정해 배포 결과를 재현하기 쉬워집니다. 다이제스트 자체가 게시자의 신뢰성이나 취약점 부재를 보장하지는 않습니다.

잠재적 영향

  • 같은 태그로 빌드·배포해도 노드나 시점에 따라 다른 내용이 실행될 수 있습니다.
  • 검토하지 않은 태그 변경이 배포에 반영될 수 있습니다.

해결 방법

  • 신뢰하는 레지스트리에서 검증한 이미지의 실제 다이제스트를 얻어 image에 지정하세요. 대상 플랫폼과 레지스트리 접근 권한도 확인하세요.
  • 이미지의 출처와 취약점을 검토하고 필요한 패치 때 다이제스트를 갱신하세요. imagePullPolicy: Always만으로 태그의 내용이 고정되지는 않습니다.

예시

registry.example.com과 변경 후의 64자리 SHA256 값은 설명용 자리표시자입니다. 실제 레지스트리와 검증된 이미지의 다이제스트로 바꾸세요.

변경 전

yaml
apiVersion: v1
kind: Pod
metadata:
  name: private-image-test
spec:
  containers:
    - name: uses-private-image
      image: registry.example.com/app
      imagePullPolicy: Always

태그나 다이제스트가 없는 참조는 latest 태그를 사용합니다. Always는 내용을 고정하지 않습니다.

변경 후

yaml
apiVersion: v1
kind: Pod
metadata:
  name: private-image-test
spec:
  containers:
    - name: uses-private-image
      image: registry.example.com/app@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
      imagePullPolicy: Always

SHA256 다이제스트로 이미지 내용을 지정하는 형식입니다. 이 예시 값을 그대로 사용하면 실제 이미지를 가져올 수 없습니다.

참조