Secure Steady
コンテナセキュリティ - コンテナセキュリティ の使い方・オプション・サンプル

コンテナセキュリティ - コンテナセキュリティ

Docker や Kubernetes 環境におけるセキュリティ対策。イメージの脆弱性スキャン、ランタイム保護、ネットワークポリシーの設定を含む。

概念図

コンテナセキュリティ diagram

実例

Trivy でコンテナイメージの脆弱性をスキャン

bash
trivy image --severity HIGH,CRITICAL myapp:latest

読み取り専用ファイルシステムと権限昇格防止で実行

bash
docker run --read-only --tmpfs /tmp --security-opt no-new-privileges myapp:latest

コンテナセキュリティの主要な領域

コンテナセキュリティはライフサイクル全体にわたる対策が必要です。

  • イメージのセキュリティ: 信頼できるベースイメージを使用する。脆弱性スキャンを CI/CD パイプラインに組み込む。不要なパッケージを含めない
  • ビルド時のセキュリティ: マルチステージビルドでビルドツールを本番イメージに含めない。シークレットをイメージに焼き込まない
  • ランタイムセキュリティ: root ユーザーでコンテナを実行しない。読み取り専用ファイルシステムを使用する。リソース制限を設定する
  • オーケストレーション: Kubernetes の RBAC、NetworkPolicy、PodSecurityStandard を適切に設定する

ベストプラクティス

  • 最小ベースイメージ: alpinedistroless イメージを使い、攻撃対象領域を最小化する
  • イメージ署名: cosign 等でイメージに署名し、改ざんされたイメージのデプロイを防ぐ
  • 脆弱性スキャンの自動化: Trivy, Grype 等をCI/CDパイプラインに統合し、脆弱性のあるイメージのデプロイをブロックする
  • seccomp / AppArmor プロファイル: コンテナが使用できるシステムコールを制限する
  • ネットワークポリシー: Pod 間の通信をデフォルト拒否にし、必要な通信のみ許可する
  • イメージの定期更新: ベースイメージの更新を定期的に行い、既知の脆弱性を解消する

関連トピック