Dockle でコンテナベストプラクティスに準拠しているかチェック

概要

Dockle を利用してコンテナベストプラクティスに沿っているかチェックしたい。

機能は Docker Best Practice または CIS Benchmarks に従っているかをチェックしてくれる。

  • Checkpoint Summary
    • ex) コンテナ用のユーザが作成されているか
      Dockerfile 内に機密情報が記載されてないかなど

hadolint との違いはチェック対象。機能も若干 Dockle が多いがフェーズごとに使い分けたい。

  • hadolint : Dockerfile
  • Dockle : コンテナイメージ

Trivy もコンテナイメージへのスキャンが可能。違いはチェック基準。

  • Trivy : CVE などの脆弱性データベースに基づいたチェック
  • Dockle : CIS ベンチマークに基づいたチェック

Dockle チュートリアル

準備

Mac の場合。

$ brew untap goodwithtech/dockle # who use 0.1.16 or older version
$ brew install goodwithtech/r/dockle
$ dockle [YOUR_IMAGE_NAME]

チェック

手元にあった Next.js のコンテナイメージをチェック。

$ dockle next-local:test
INFO	- CIS-DI-0005: Enable Content trust for Docker
	* export DOCKER_CONTENT_TRUST=1 before docker pull/build
INFO	- CIS-DI-0006: Add HEALTHCHECK instruction to the container image
	* not found HEALTHCHECK statement

以下2つが出力。

  • INFO - CIS-DI-0005: Enable Content trust for Docker
    • イメージの信頼性、整合性のチェック。
  • INFO - CIS-DI-0006: Add HEALTHCHECK instruction to the container image
    • ヘルスチェックがないとのこと。

既知のアラートとして無視したい場合は --ignore, -i を使う。

$ dockle -i CIS-DI-0005 -i CIS-DI-0006 next-local:test

アラートレベルによって処理を継続させたくない場合は --exit-code--exit-level を組み合わせる。

$ dockle --exit-code 1 --exit-level fatal next-local:test #INFOが1個でも出たら
$ dockle --exit-code 1 --exit-level fatal next-local:test #FATALときのみ

参考

goodwithtech/dockle : GitHub

Dockle で Docker イメージのセキュリティやベストプラクティスをチェックする

コメント

タイトルとURLをコピーしました