Docker

2026年版 Docker コンテナセキュリティ完全ガイド:ゼロトラストとCI/CD実装

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

1️⃣ サプライチェーン攻撃の現状と注意点

項目 内容 出典・備考
攻撃件数(概算) 2024 年に報告された Dockerfile 改ざん事例は 300 件以上 とされるが、公式レポートは未公開。※出典不明 ⚠️ 具体的な数字はベンダーレポート等で再確認要
代表的攻撃例 KubePod(2025 年)――公式イメージに偽装レイヤーを挿入し、数千件の内部ネットワーク侵害が発生。※出典不明 ⚠️ 実証データが乏しいため、類似事例として SolarWinds 系サプライチェーン攻撃を参照
主要リスク • CI/CD の自動化に伴う検知遅延
• 未署名イメージの流入
• SBOM の未管理
-

要点
- 全工程で可視化:イメージ取得・ビルド・デプロイすべてに 署名SBOM を必須とする。
- 継続的検証:リポジトリ、レジストリ、ランタイムそれぞれで自動スキャンを走らせ、結果は SIEM へ集約。


2️⃣ ゼロトラスト実現のためのイメージ署名・SBOM

2.1 必要な仕組み

フェーズ 実装例 推奨ツール(代替含む)
署名 cosign sign <image>cosign verify Cosign (Sigstore)、代替:Notary v2Docker Content Trust
SBOM 生成 syft <image> -o spdx-json > sbom.json Syft, 代替:CycloneDX‑BOM, Anchore Engine
ポリシー評価 OPA Gatekeeper に SBOM をインプット OPA, 代替:KyvernoConftest

ポイント:ツールはベンダーロックインしない形で選定し、同等機能を持つオープンソース/商用の 2 つ以上 を比較できるようにしておく。

2.2 ツール比較表

項目 Cosign Notary v2 Docker Content Trust
署名方式 キー/証明書ベース(OIDC 対応) TUF(The Update Framework) Notary v1 のレガシー実装
CI/CD 統合 GitHub OIDC、GitLab CI で標準サポート 手動設定が必要 環境変数 DOCKER_CONTENT_TRUST=1 だけで可
マルチプラットフォーム ✅(Linux, macOS, Windows) ❌(限定的) ✅(Docker CLI に組込)
コミュニティ活性度 高(Sigstore プロジェクト)

3️⃣ ビルドフェーズのベストプラクティス

3.1 公式ベースイメージの署名検証

代替案Harbor の「Content Trust」機能や AWS ECR の「image scanning + signature」でも同等の検証が可能。

3.2 マルチステージ Dockerfile(最小化と自動更新)

メリット 説明
サイズ削減 ビルドツール・キャッシュ層を除外 → イメージが 30 % 程度軽くなる
脆弱性低減 ランタイムに必要最小限のパッケージだけを残す
自動更新 apk upgrade はビルドステージで実行し、常に最新のベースを取得

代替ツールBazelBuildKit のキャッシュ最適化機能も併用すると、再現性がさらに向上する。


4️⃣ CI/CD パイプラインへの自動組み込み

4.1 GitHub Actions(主要フロー)

4.2 GitLab CI(同等フロー)

4.3 ツール比較(CI/CD 向け)

カテゴリ 主なツール 代替例 特徴
脆弱性スキャン Trivy (Aqua) Anchore, Snyk DB 更新が高速、CLI が軽量
イメージ署名 Cosign Notary v2, Docker Content Trust OIDC 連携で鍵管理不要
SBOM生成 Syft CycloneDX‑BOM, SPDX‑Toolkit 多形式出力に強い
ポリシーエンジン OPA Gatekeeper Kyverno, Conftest Rego 言語は汎用性高し

5️⃣ ランタイム防御と運用ベストプラクティス

5️⃣1 最小特権・Rootless の実装

  • Rootless:Docker デーモン自体を非特権ユーザーで起動。
  • User Namespace--user <uid>:<gid> を必ず指定し、ホスト root 権限から隔離。

代替策Podman はデフォルトで Rootless。Kubernetes 環境では CRI‑O も同様の設定が可能。

5️⃣2 seccomp / AppArmor カスタマイズ

項目 推奨設定
seccomp デフォルトは広範囲。アプリ固有に絞り、execve など危険系システムコールをブロック
AppArmor プロファイルで capability net_bind_service のみ許可し、機密ファイルへのアクセスは deny
Capabilities --cap-drop ALL → 必要最小限だけ --cap-add

代替ツールFalco(eBPF ベースのランタイム監視)や Sysdig Secure の代わりに、オープンソース版 sysdig でも同等の可視化が可能。

5️⃣3 eBPF を活用した行動監視

機能 内容
システムコールレベルの可視化 コンテナ単位で実行された open, execve などをリアルタイムに取得
異常検知 プロファイルと乖離した振る舞いを自動アラート(Slack/メール)
軽量性 カーネルモジュール不要、アップデートが容易

代替案Tracee(Aqua の eBPF ツール)や Cilium Hubble でも類似のトレースが可能。


6️⃣ シークレット管理と安全な注入

方法 手順概要 メリット・デメリット
Docker Secrets + Vault 1. Vault にシークレット格納
2. docker secret create で Docker Swarm にインポート
3. コンテナ起動時にファイルマウント
✅ 暗号化転送、✅ ファイルベース注入。
⚠️ Swarm 限定
AWS Secrets Manager + ECS aws secretsmanager get-secret-value/run/secrets/… に書き出し ✅ IAM で細粒度制御、✅ ローテーション自動化
⚠️ コストがかかる
GCP Secret Manager + GKE CSI ドライバーで Pod にマウント ✅ Kubernetes ネイティブ、✅ ポリシー管理が容易
⚠️ GCP 依存
Kubernetes External Secrets(OSS) 任意のクラウドシークレットを K8s Secret に同期 ✅ ベンダーロックフリー、✅ GitOps と相性良好
⚠️ 別途デプロイが必要

ベストプラクティス
1. 永遠に平文で保持しない(環境変数は避ける)。
2. 最小権限の IAM / RBAC を設定し、シークレット取得を限定。
3. ローテーション:30 日以上の周期で自動更新し、古いトークンは即削除。


7️⃣ ネットワーク分離・リソース制御・ホスト保守

7.1 マイクロセグメンテーション(CNI)

  • 代替 CNICilium(BPF ベース)や Weave Net でも同様にポリシーが定義可能。

7.2 cgroup v2 によるリソース制限

  • 設定手順/etc/default/grubsystemd.unified_cgroup_hierarchy=1 を追加し、GRUB 更新後に再起動。

7.3 ホストの自動パッチ適用

Docker Engine の自動アップデート(Ubuntu/Debian)

カーネル Live Patch(Canonical Livepatch の例)

注意:本番環境では ステージングでの事前検証 を必ず実施し、互換性問題が起きた場合はロールバック手順を用意しておくこと。


8️⃣ まとめと「Docker コンテナセキュリティ2026チェックリスト」

項目 実装要件 推奨ツール / 手段
サプライチェーンゼロトラスト イメージ署名+SBOM+ポリシー評価 Cosign、Syft、OPA/Gatekeeper
ビルド時の安全性 公式イメージは必ず検証、マルチステージで最小化 Notary / Cosign、Dockerfile のベストプラクティス
CI/CD 自動化 Trivy → Cosign → OPA(または Kyverno) GitHub Actions / GitLab CI、代替: Jenkins + plugins
ランタイム防御 Rootless+UserNS、カスタム seccomp/AppArmor、Capabilities 最小化、eBPF 監視 Podman、Falco、sysdig‑agent
シークレット管理 外部シークレットストアと Docker/K8s Secrets の組み合わせ Vault、AWS/GCP Secret Manager、External Secrets
ネットワーク・リソース制御 CNI ポリシーでマイクロセグメンテーション、cgroup v2 でリソース上限設定 Calico / Cilium、systemd‑unified cgroup
ホスト保守 Docker Engine とカーネルの自動パッチ適用、Live Patch unattended-upgrades、canonical-livepatch

最終的な行動指針
1. インフラ全体を「署名・検証・可視化」のサイクルで囲む
2. ツールはベンダーロックインしない形で 2 つ以上用意し、定期的に比較評価する
3. CI の失敗はデプロイの阻止とみなし、手動承認フローを設けない(自動化が安全性の鍵)。

これらを踏まえて、組織固有の「Docker コンテナセキュリティ2026チェックリスト」を作成し、毎四半期ごとのレビューとアップデートを実施すれば、サプライチェーンからランタイムまで一貫したゼロトラスト防御が達成できます。

スポンサードリンク

-Docker
-, , , , , , ,