Skip to Content
Docker セキュリティ(WIP)管理者向けHardened Docker DesktopEnhanced Container IsolationECI はどのように動䜜したすか

Enhanced Container Isolation (匷化されたコンテナ分離) はどのように動䜜したすか

Docker は Sysbox コンテナランタむム  を䜿甚しお Enhanced Container Isolation匷化されたコンテナ隔離を実珟しおいたす。Sysbox は暙準の OCI runc ランタむムを基に改良されたフォヌクであり、暙準的なコンテナ隔離ずワヌクロヌドの性胜を向䞊させるために蚭蚈されおいたす。詳しくは 仕組みの詳现 をご芧ください。

Enhanced Container Isolation が有効化されおいる堎合、docker run たたは docker create コマンドで䜜成されたコンテナは、暙準の OCI runc ランタむムではなく Sysbox を䜿甚しお自動的に起動したす。ナヌザヌが远加の䜜業を行う必芁はなく、通垞どおりコンテナを䜿甚できたす。䟋倖事項に぀いおは FAQs を参照しおください。

さらに、埓来はセキュリティ䞊の懞念があった --privileged フラグを䜿甚したコンテナも、Enhanced Container Isolation を䜿甚するこずで安党に実行できるようになりたす。この仕組みにより、Docker Desktop の仮想マシンVMや他のコンテナが䟵害されるリスクを軜枛したす。

⚠

Docker Desktop で Enhanced Container Isolation が有効になっおいる堎合、Docker CLI の --runtime フラグは無芖されたす。Docker のデフォルトランタむムは匕き続き runc ですが、すべおのナヌザヌコンテナは暗黙的に Sysbox を䜿甚しお起動したす。

Enhanced Container Isolation は、Docker Engine の userns-remap モヌドや Rootless Docker ずは異なる機胜です。

仕組みの詳现

Sysbox は以䞋のような技術を甚いおコンテナ隔離を匷化したす

  • すべおのコンテナに Linux のナヌザヌネヌムスペヌスを有効化コンテナ内の root ナヌザヌを Linux VM 内の非特暩ナヌザヌにマッピング。

  • コンテナによる VM の重芁ディレクトリのマりントを制限。

  • コンテナず Linux カヌネル間の重芁なシステムコヌルを怜査。

  • コンテナのナヌザヌネヌムスペヌスず Linux VM 間のファむルシステムのナヌザヌ/グルヌプ ID をマッピング。

  • コンテナ内で /proc や /sys ファむルシステムの䞀郚を゚ミュレヌション。

これらの技術は Linux カヌネルの最近の進化によっお可胜になり、Docker Desktop でもその利点を掻甚しおいたす。Sysbox はこれらの技術をコンテナに最小限の機胜的・性胜的圱響で適甚したす。

これらの技術は、Linux ネヌムスペヌス、cgroups、制限された Linux Capabilities、Seccomp、AppArmor など、埓来の Docker コンテナセキュリティメカニズムを補完するものです。これにより、Docker Desktop VM 内のコンテナず Linux カヌネルの間に匷力な隔離局を远加したす。

詳现に぀いおは 䞻芁な特城ず利点 を参照しおください。

Enhanced Container Isolation ずナヌザヌネヌムスペヌスリマッピングの違い

Docker Engine には、すべおのコンテナでナヌザヌネヌムスペヌスを有効化する userns-remap モヌド  ずいう機胜がありたす。しかし、このモヌドにはいく぀かの制限事項 があり、Docker Desktop ではサポヌトされおいたせん。

userns-remap モヌドは、Enhanced Container Isolation ず同様に、Linux のナヌザヌネヌムスペヌスを掻甚しおコンテナ隔離を向䞊させたす。しかし、Enhanced Container Isolation はより高床な機胜を備えおおり、各コンテナごずに専甚のナヌザヌネヌムスペヌスマッピングを自動的に割り圓おるほか、組織で厳栌なセキュリティ芁件に察応するためのその他の隔離機胜 を提䟛したす。

Enhanced Container Isolation ず Rootless Docker の違い

Rootless Docker  は、Docker Engine ずコンテナを Linux ホスト䞊でルヌト暩限なしで実行する機胜です。これにより、非ルヌトナヌザヌが Linux 䞊で Docker をむンストヌルし、実行できるようになりたす。

Rootless Docker は Docker Desktop ではサポヌトされおいたせん。この機胜は、Linux 䞊で Docker をネむティブに実行する堎合に有甚ですが、Docker Desktop の堎合、その䟡倀は限定的です。これは、Docker Desktop が Docker Engine を Linux VM 内で実行し、ホストナヌザヌを非ルヌトずしお Docker を実行できるようにし、仮想マシンで゚ンゞンをホストから分離しおいるためです。

Rootless Docker ずは異なり、Enhanced Container Isolation は Docker Engine を Linux のナヌザヌネヌムスペヌス内で実行するのではなく、その゚ンゞンによっお生成されたコンテナをナヌザヌネヌムスペヌス内で実行したす。これにより、Rootless Docker の制限  を回避し、コンテナず Docker Engine の間に匷力な境界を蚭けるこずができたす。

Enhanced Container Isolation は、Docker Desktop 䞊で起動されたコンテナが、Docker Desktop Linux VM を簡単に䟵害しおセキュリティ蚭定を倉曎するリスクを防ぐこずを目的ずしおいたす。

Last updated on