コンテナセキュリティ
🔥 Vibe プロンプト
「コンテナセキュリティを設定:イメージスキャン、ポリシー適用、ランタイムセキュリティ。」
Dockerfileベストプラクティス
FROM python:3.12-slim
RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/*
COPY --chown=1000:1000 app.py .
USER 1000
Trivyスキャン
trivy image myapp:latest
# CIで自動実行
Kyvernoポリシー(K8s)
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: require-non-root
spec:
validationFailureAction: Enforce
rules:
- name: check-run-as-non-root
match:
any:
- resources: { kinds: ["Pod"] }
validate:
message: "コンテナはrootで実行不可"
pattern:
spec:
securityContext:
runAsNonRoot: true
Falco(ランタイムセキュリティ)
- rule: Terminal shell in container
condition: spawned_process and container and (proc.name = bash or proc.name = sh)
priority: WARNING
コンテナセキュリティチェックリスト
| レイヤー | ツール | 確認内容 | |---------|-------|--------| | Dockerfile | Hadolint | ベストプラクティス | | イメージ | Trivy | 既知のCVE | | K8s admission | Kyverno | ポリシー適用 | | ランタイム | Falco | 動作異常 |
ベストプラクティス
- 最小ベースイメージを使用(slim, alpine)
- 非rootユーザーで実行
- デプロイ前にイメージをスキャン
- ベースイメージバージョンを固定
- マルチステージビルド
- K8s Podセキュリティ基準を実装
- 読み取り専用ルートファイルシステム
- リソース制限設定
章のまとめ
- コアコンセプトと原理を理解
- 実装方法とテクニックを習得
- 一般的な問題と解決策に精通
- 実際のプロジェクトに適用可能
さらに読む
- 公式ドキュメントとAPIリファレンス
- GitHubのオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ
実装例
基本例
# 完全な実装例を提供します
手順
- セットアップ: 開発環境の設定
- データ: 必要なデータの準備
- 実装: コア機能の構築
- テスト: 動作確認
- 最適化: パフォーマンスの向上
よくあるエラー
| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |
コード例
import sys
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
参考資料
- 公式ドキュメント
- APIリファレンス
- オープンソース例
- コミュニティディスカッション