テック技報最新号へ →
セキュリティ

Docker イメージを @sha256 ダイジェストで固定する(dockerfile-pin)

FROM node:22 のようなタグ参照を node:22@sha256:<digest> に書き換え、タグの付け替えによるイメージ差し替え攻撃を防ぐ。

@azu_re · 2026-10-09
#supply-chain#docker#pinning#ci

何を解決するか

  • タグは可変。上流のアカウント侵害や誤操作で同じタグに別イメージが push されると、次のビルドでそのまま取り込まれる。
  • ダイジェスト固定すれば、内容が変わればビルドが失敗する(=気づける)。

手順

azu さんの CLI dockerfile-pin で Dockerfile / compose.yaml を一括でピン留めできる。

dockerfile
# Before
FROM node:22-slim
# After(タグは可読性のため残し、digestで固定)
FROM node:22-slim@sha256:3f2a...<digest>
  • v1.4.0 で GitLab CI 設定、v1.5.0 で COPY --from= に対応。
  • 更新は Renovate / Dependabot の digest 更新機能と組み合わせると、ピン留めを維持したまま追従できる。

注意点

  • マルチアーキテクチャイメージは「マニフェストリストのダイジェスト」を使う(単一アーキのダイジェストを書くと別アーキで失敗する)。
  • ピン留めは「改ざん検知」であって「脆弱性対策」ではない。古いダイジェストのまま放置しない。

出典

X の元の投稿を開く