BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Dockerとコンテナをセキュアにする

Dockerとコンテナをセキュアにする

原文(投稿日:2013/09/27)へのリンク

dotCloudのシニアエンジニアであるJérôme Petazzoni氏は,Dockerのセキュリティに関する改善状況を調査して,他の仮想化あるいはコンテナ系技術と比較し,その結果を最近のブログ記事 "CONTAINERS & DOCKER: HOW SECURE ARE THEY?" で発表した。そこで氏が論証しているのは,高度な設定や専門知識を要するテクニック,あるいはLinuxに既存のサポート技術 (例. SELinux) を利用せずに,Dockerをセキュアにするための技術である。

Dockerではcgroupsnamespaceという,2つのLinuxの技術を用いてコンテナを実現している。氏は,Dockerの提供する機能が本質的にLXCと同じであると同時に,セキュリティリスクの面でも同じであることを認めている。Dockerが起動するコンテナの設定は,最小特権の原則に従っている。ただしDocker自体がrootとして動作する必要があるため,コンテナにおいてrootでなくてはならない。root権限が必要になる制限要素は,現時点ではおもにLinuxカーネルである。従ってユーザは,DockerデーモンとREST api経由のアクセスを保護するように注意しなければならない。この事態について氏は,今後改善されるだろうと述べている:

従ってDockerでは,新たな2つのセキュリティ改善の実施を最終目標としています:
  • コンテナのrootユーザを,Dockerホストの非rootユーザにマップすることで,コンテナ - ホストの権限昇格に関する影響を緩和する。
  • Dockerデーモンをroot特権なしで動作可能にする。そのような特権を要する操作は,仮想ネットワークセットアップ,ファイルシステム管理のようにそれぞれ独自の(非常に限定された)スコープを持ち,十分に監査されたサブプロセスに委譲する。
氏はDockerを,その他の従来型のテクノロジと比較した上で,ハイパーバイザの提供する特別な分離レイヤのため,現時点では一般的に,従来型の仮想化の方がより安全であると認識されている点を認めている。従来の仮想化は製品として長く使用されているが,コンテナ型の実運用の例は相対的に多くない。コンテナを使用することの効率性が現実になれば運用例も多くなるだろう,セキュリティの確保には,セキュリティホール対策に長けたLinuxコミュニティの協力が不可欠だ,と氏は記している。
 
他のLXCベースコンテナにも,同じようなセキュリティ問題は存在するだろう。OpenVZもコンテナ系テクノロジを採用するが,より安定でセキュアだと考えられている。ただし,完全に動作させるには特別なLinuxカーネルが必要である上に,それを利用している開発者はLXCのコントリビュータでもあるので,LXCの完成度が高まれば,LXCがそれに取って代わるであろうことは期待できる。性能のよいコンテナ系テクノロジは他にもある (Solaris Zonesなど) が,長期にわたる改善を支援するほどのインストールベースは持ち合わせていない。

 

この記事に星をつける

おすすめ度
スタイル

BT