Closed1

【AWS Black Belt Online Seminar】 CON231 コンテナセキュリティ入門 Part.1 メモ

kenryokenryo

コンテナのライフサイクルからセキュリティを考える

Dockerfileの作成=>イメージのビルド=>イメージをレジストリに保存

Dockerfileの作成
セキュアなDockerfileを書くことを意識する

  • コンテナへの攻撃面を少なくする
    • 信頼できるレジストリのイメージを使う
    • 実行時にパッケージをインストールしない
    • イメージを小さく
  • コンテナの実行権限を絞る
    • ユーザーを指定し、rootは使わない
  • シークレットの取り扱いを気をつける
    • イメージに埋め込まない
      • レイヤに気を付ける
    • Lintツールで検知する

イメージのビルド
ビルド環境のセキュリティを考える

  • Docker daemonやdocker runできるユーザーはroot権限で実行されたり、ホストを操作する
  • ホストマシンが攻撃され、ビルドプロセスに介入されると、悪意のあるコードがイメージに埋め込まれるリスクがある
    • root権限を使用しないでビルドするツールを使用する
      • BuildKit
      • Buildah, kaniko
    • ビルド用のSaaSやAWS CodeBuildを使用する

イメージをレジストリに保存
コンテナイメージを定期的にスキャンする

  • スキャンしたイメージがイミュータブルであるべき、定期的にイメージをスキャンすべき
  • スキャンの注意点
    • OSによっては十分なスキャンができない場合がある
    • OSパッケージのみスキャンされる(npmやmvnでインストールされたソフトウェアは対象外である場合が多い)
    • 未知の脆弱性や偽陽性、偽陰性が考えられる
このスクラップは2021/12/13にクローズされました