Dockerのイメージへのセキュリティ対策ってどうなっているのか、気になったので、調べてみました。
Dockerイメージのなりすましや改ざんを防ぐには?
Dockerイメージには、インフラ構成が含まれています。
なので、悪意のある第三者からの「なりすまし」や「改ざん」からイメージを保護する方が、外部からインフラ構成をみられることないため、安全です。
そこで、Docker Content Trustという機能を使うと、Dockerイメージの正統性を確認できます。
Docker Content Trust
Docker Content Trustの仕組み
署名
イメージ作成者がDockerレジストリにイメージをアップロードする前に、ローカル環境でイメージ作成者の秘密鍵を使ってイメージに署名します。
この秘密鍵のことをOffline Keyと呼ぶ。
この鍵があると、中身をみられてしまうので、しっかり管理します。
検証
署名されたイメージをダウンロードするときに、イメージ作成者の公開鍵を使って、イメージが本物かどうかを確認します。
もし改ざんされている場合は、そのイメージを無効化する。この公開鍵をTagging Keyを読みます。
Docker Content Trust機能を使う
以下のコマンドを実行し、設定する。
$ export DOCKER_CONTENT_TRUST=1
この機能を有効にすると、docker image pull コマンドを使ってイメージをダウンロードすると、イメージの検証が行われます。
署名がついていないイメージを使うとエラーになります。
Docker Content Trust無効化
DOCKER_CONTENT_TRUSTを0にするだけです。
$ export DOCKER_CONTENT_TRUST=0