説明
コンテナーイメージのタグは、同じ名前のまま別の内容を指すことがあります。ダイジェストを指定すると、意図した内容を固定してデプロイを再現しやすくなります。ダイジェストだけで提供元の信頼性や脆弱性がないことを保証するものではありません。
想定される影響
- 同じタグでも、ノードやデプロイの時点によって異なる内容が実行される場合があります。
- 未確認のタグ変更がデプロイに反映される場合があります。
対処方法
- 信頼するレジストリから検証済みイメージの実際のダイジェストを取得し、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 ダイジェストで内容を指定する形式です。この仮の値をそのまま使って実際のイメージを取得することはできません。