AlwaysPullImages Admission Plugin 미설정

공유 노드의 비공개 이미지 재사용을 통제하려면 이미지 가져오기 정책과 레지스트리 인증을 확인하세요.

설명

AlwaysPullImages admission plugin은 새 Pod의 이미지 가져오기 정책을 Always로 설정합니다. 공유 노드에서 다른 사용자가 남긴 비공개 이미지를 레지스트리 접근 권한 확인 없이 재사용하는 위험을 줄이는 데 도움이 됩니다.

Always는 이미지 전체를 매번 다시 다운로드하거나 최신 승인 이미지임을 보증하는 기능은 아닙니다. 같은 digest의 이미지가 캐시에 있으면 재사용할 수 있으므로 이미지 승인, 서명 검증과 취약점 관리는 별도로 적용하세요.

잠재적 영향

  • 공유 노드의 이미지 캐시를 통해 접근 권한이 없는 비공개 이미지가 재사용될 수 있습니다.
  • 가져오기 정책만으로 이미지의 출처나 안전성을 보증할 수는 없습니다.

해결 방법

  • 공유 환경의 요구사항을 확인하고 필요한 경우 --enable-admission-plugins에 AlwaysPullImages를 포함하세요.
  • 각 워크로드에 필요한 레지스트리 인증을 제공하고, 레지스트리 장애가 Pod 시작에 미치는 영향도 확인하세요.
  • 승인된 이미지와 digest 사용, 서명 검증 등 공급망 통제를 별도로 적용하세요.

예시

API 서버 인수 비교용 발췌입니다. 이미지는 실제 클러스터 버전에 맞추고 나머지 제어면 설정은 별도로 구성하세요. 이 플러그인에는 별도 admission 설정 파일이 필요하지 않습니다.

변경 전

yaml
apiVersion: v1
kind: Pod
metadata:
  name: command-demo
spec:
  containers:
    - name: command-demo-container
      image: registry.k8s.io/kube-apiserver:v1.34.0
      command: ["kube-apiserver"]
      args: ["--disable-admission-plugins=AlwaysPullImages"]

변경 후

yaml
apiVersion: v1
kind: Pod
metadata:
  name: command-demo
spec:
  containers:
    - name: command-demo-container
      image: registry.k8s.io/kube-apiserver:v1.34.0
      command: ["kube-apiserver"]
      args:
        ["--enable-admission-plugins=AlwaysPullImages"]

설명:

  • 변경 전: AlwaysPullImages를 비활성화합니다. 실제 이미지 재사용은 Pod의 가져오기 정책에도 영향을 받습니다.
  • 변경 후: 새 Pod에 Always 정책을 적용합니다. 이미지 승인이나 보안 검증을 대신하지는 않습니다.

참조