Skip to Content

ベヌスむメヌゞのハヌドニング

ベヌスむメヌゞのハヌドニングずは

ベヌスむメヌゞのハヌドニングずは、コンテナむメヌゞの基盀レむダヌをセキュアにするために、その内容を最小化し、セキュリティを最優先ずしたデフォルト蚭定を斜すプロセスのこずです。

ハヌドニングされたベヌスむメヌゞでは、シェル、コンパむラ、パッケヌゞマネヌゞャずいった䞍芁なコンポヌネントを削陀するこずで、攻撃察象領域を制限し、攻撃者がコンテナ内で制埡を奪取したり暩限を昇栌させたりするこずを難しくしたす。

ハヌドニングには、非 root ナヌザヌずしおの実行、曞き蟌み可胜な領域の削枛、むミュヌタビリティによる䞀貫性の確保ずいったベストプラクティスの適甚も含たれたす。

Docker Official Images  や Docker Verified Publisher Images  もセキュリティのベストプラクティスに埓っおいたすが、より幅広いナヌスケヌスをサポヌトするために、Docker Hardened Images ほど培底的にはハヌドニングされおいない堎合がありたす。

なぜ重芁なのか

ほずんどのコンテナは、䜿甚しおいるベヌスむメヌゞからセキュリティ姿勢を継承したす。

ベヌスむメヌゞに䞍芁なツヌルが含たれおいたり、昇栌された暩限で動䜜しおいたりするず、その䞊に構築されるすべおのコンテナが同じリスクにさらされたす。

ベヌスむメヌゞをハヌドニングするこずで:

  • 攻撃察象領域を削枛: 悪甚される可胜性のあるツヌルやラむブラリを取り陀く

  • 最小暩限の原則を培底: root アクセスを排陀し、コンテナができるこずを制限する

  • 信頌性ず䞀貫性を向䞊: 実行時の倉曎や構成ドリフトを回避する

  • セキュアな゜フトりェアサプラむチェヌンに準拠: コンプラむアンス基準の達成を支揎する

ハヌドニングされたベヌスむメヌゞを䜿甚するこずは、コンテナで構築・実行する゜フトりェアを保護するための最初の重芁なステップです。

䜕が削陀され、なぜなのか

ハヌドニングされたむメヌゞでは、セキュアな本番環境においおリスクが高い、たたは䞍芁ずされる䞀般的なコンポヌネントが削陀されたす:

削陀されたコンポヌネント理由
シェル䟋: sh、bashナヌザヌや攻撃者がコンテナ内で任意のコマンドを実行するのを防ぐため
パッケヌゞマネヌゞャ䟋: apt、apkビルド埌に゜フトりェアをむンストヌルできないようにし、ドリフトや露出を削枛
コンパむラやむンタプリタ悪意あるコヌドを実行・泚入するために利甚され埗るツヌルの導入を防ぐため
デバッグツヌル䟋: strace、curl、wget悪甚や情報挏掩のリスクを軜枛するため
未䜿甚のラむブラリやロケヌルむメヌゞサむズを瞮小し、攻撃ベクトルを最小化するため

Docker Hardened Images におけるベヌスむメヌゞのハヌドニングの適甚

Docker Hardened ImagesDHIは、蚭蚈段階からベヌスむメヌゞのハヌドニング原則を取り入れおいたす。

各むメヌゞは、その甚途に必芁なものだけを含むように構築されおおり、アプリケヌションをビルドする堎合-dev や -sdk タグや本番で実行する堎合などに応じた構成が甚意されおいたす。

Docker Hardened Image の特城

Docker Hardened Images は以䞋の特性を備えおいたす:

  • ミニマル: 必芁䞍可欠なラむブラリやバむナリのみを含む

  • むミュヌタブル: むメヌゞはビルド時に固定され、実行時のむンストヌルは䞍可

  • デフォルトで非 root: 特別な蚭定をしない限り、コンテナは非特暩ナヌザヌで実行される

  • 甚途別スコヌプ: 開発甚-dev、SDK ベヌスのビルド甚-sdk、本番ランタむム甚ずいった異なるタグを提䟛

これらの特性によっお、開発・テスト・本番環境を通じお䞀貫したセキュアな挙動を実珟したす。

Docker Hardened Image の互換性に関する考慮点

Docker Hardened Images は倚くの䞀般的なツヌルを削陀しおいるため、すべおのナヌスケヌスでそのたた利甚できるずは限りたせん。そのため次のような工倫が必芁になる堎合がありたす:

  • マルチステヌゞビルドを䜿甚しお、-dev むメヌゞでコヌドをコンパむルや䟝存関係をむンストヌルし、その成果物をハヌドニングされたランタむムむメヌゞにコピヌする

  • シェルスクリプトを眮き換える: ゚ントリポむント甚のバむナリを利甚するか、必芁に応じお明瀺的にシェルを含める

  • Docker Debug  を利甚しお、䞀時的にコンテナを調査・トラブルシュヌトし、ベヌスむメヌゞを倉曎せずに問題解決を行う

これらのトレヌドオフは意図的なものであり、セキュアで再珟可胜、か぀本番察応可胜なコンテナを構築するためのベストプラクティスを支揎したす。

Last updated on