Closed6
Dockerイメージ内の機密情報に気をつける
参考元記事
要約
DockerHubに補完されているイメージから秘密鍵、APIキー等の機密情報が大量に発見される
どうすればいい?
- 機密情報をコンテナイメージに格納しない
- 機密情報が確認されたコンテナイメージを使用しない
どうやったら機密情報に気付ける?
コンテナセキュリティ診断ツールを使うのがよさそうです。
dockle
というツールはコンテナイメージに機密情報が混入していないか、チェックしてくれます
Dockleを試す
テスト用dockerfile作成、ビルド
環境変数としてawsのsecret keyのサンプルを組み込みます。
FROM alpine:latest
ENV AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
ENV AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
ENV AWS_DEFAULT_REGION=ap-northeast-1
ビルドします。
$ docker build -t dockle-example:test1.0 .
dockleで検知
dockleでビルドしたイメージをチェックします。
FATAL
で機密情報の警告がされています。
$ dockle --exit-code 1 --exit-level fatal dockle-example:test1.0
FATAL - CIS-DI-0010: Do not store credential in environment variables/files
* Suspicious ENV key found : AWS_ACCESS_KEY_ID on ENV AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE (You can suppress it with --accept-key)
* Suspicious ENV key found : AWS_SECRET_ACCESS_KEY on ENV AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY (You can suppress it with --accept-key)
WARN - CIS-DI-0001: Create a user for the container
* Last user should not be root
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
CIで事前にチェックできれば、コンテナリポジトリへのpush、機密情報の入ったコンテナの使用は事前に防止することができますね
このスクラップは2023/07/23にクローズされました