Closed1
【AWS Black Belt Online Seminar】 CON231 コンテナセキュリティ入門 Part.1 メモ
コンテナのライフサイクルからセキュリティを考える
Dockerfileの作成
=>イメージのビルド
=>イメージをレジストリに保存
Dockerfileの作成
セキュアなDockerfileを書くことを意識する
- コンテナへの攻撃面を少なくする
- 信頼できるレジストリのイメージを使う
- 実行時にパッケージをインストールしない
- イメージを小さく
- コンテナの実行権限を絞る
- ユーザーを指定し、rootは使わない
- シークレットの取り扱いを気をつける
- イメージに埋め込まない
- レイヤに気を付ける
- Lintツールで検知する
- イメージに埋め込まない
イメージのビルド
ビルド環境のセキュリティを考える
- Docker daemonやdocker runできるユーザーはroot権限で実行されたり、ホストを操作する
- ホストマシンが攻撃され、ビルドプロセスに介入されると、悪意のあるコードがイメージに埋め込まれるリスクがある
- root権限を使用しないでビルドするツールを使用する
- BuildKit
- Buildah, kaniko
- ビルド用のSaaSやAWS CodeBuildを使用する
- root権限を使用しないでビルドするツールを使用する
イメージをレジストリに保存
コンテナイメージを定期的にスキャンする
- スキャンしたイメージがイミュータブルであるべき、定期的にイメージをスキャンすべき
- スキャンの注意点
- OSによっては十分なスキャンができない場合がある
- OSパッケージのみスキャンされる(npmやmvnでインストールされたソフトウェアは対象外である場合が多い)
- 未知の脆弱性や偽陽性、偽陰性が考えられる
このスクラップは2021/12/13にクローズされました