DockerConと休日で過去数か月はクレイジーでしたが、それでも私たちはまだDockerエンジンをハッキングしており、Docker Engine 1.10のリリースで強調したいいくつかの本当に素晴らしいセキュリティ機能を備えています。
セキュリティは私たちにとって非常に重要であり、私たちのアプローチは2つあります。1 つは、アプリケーションを構築するための安全な基盤を提供することで、もう 1 つは、アプリケーション自体をセキュリティで保護する機能を提供することです。 Docker Engineは、コンテナをプル、ビルド、実行するための基盤であり、以下にリストされているすべての機能は、アクセス、リソース、およびその他のキックアスのものをよりきめ細かく制御するためのものです...
OK、紹介で十分です–良いものに取り掛かりましょう!
セカンププロファイル
Seccomp フィルタリングを使用すると、プロセスは berkeley パケット・フィルターを syscall に指定できます。 素人の言葉で言えば、これにより、ユーザーはシステムコールをキャッチし、渡されたシステムコール番号と引数を介してシステムを「許可」、「拒否」、「トラップ」、「キル」、または「トレース」することができます。 これにより、コンテナ内のプロセスをロックダウンして、必要なものだけを実行する際の粒度が高まります。
これは最初に Runc に追加され、Docker Engine 1.10 にあり、システムコールとそのフィルターを定義するプロファイルが渡されます。 また、何も渡されない場合や、コンテナーが特権として実行されていない場合に使用される既定のプロファイルもあります。 これは docker / docker / #18780でハッシュアウトされました。 私たちは、過度に制限することなく、使用可能なデフォルトを提供することを目指しました。 ただし、seccomp プロファイルなしで実行する必要がある場合は、 を使用して --security-opt seccomp:unconfined
コンテナーを実行することもできます。
そして ここにデモがあります:
セキュリティプロファイルの概要
上記のseccompプロファイルは、さらに優れたものの始まりにすぎません。 カスタムapparmorプロファイルを作成するためのより良い方法のためのサイドプロジェクトとして始まったもの、 https://github.com/jfrazelle/bane、 Docker Engineのネイティブセキュリティプロファイルの提案になりました。 今、これはまだ作業中ですが、私はこれから何が起こるかについてのティーザーを与えたかったのです-そしてもちろん私の素晴らしいツール🙂にプラグを与えてくださいあなたは ここでこれに関する会話を読んでフォローすることができます。
ユーザー名前空間
Phil Estes さんは、ユーザー名前空間を Docker Engine 1.10 の安定版リリースにするために懸命に取り組んできました。 ユーザー名前空間は、複数の名前空間を同じ Docker ホストに存在させることで、きめ細かいアクセス ポリシーの概念を拡張します。
認可プラグイン
Docker 管理者は、承認プラグインを使用して、Docker デーモンへのアクセスを管理するための詳細なアクセスポリシーを構成できます。 システム管理者は、これらのプラグインを使用して、インフラストラクチャのユーザーアクセスポリシーを構成できます。 プラグインは、ユーザーが作成したルールに基づいてdocker APIリクエストを許可または拒否できるインターセプターとして機能します。 これらのプラグインがインストールされ、構成されていることは、DockerプラグインAPIを介したボリュームおよびネットワーキングの現在のプラグインと同じように機能します。
Dima Stoppel、Liron Levin、そして Twistlockチームが この機能をDocker Engineに貢献してくれたことに感謝します。
認証プラグインの作成または使用の詳細については、 こちらをご覧ください。
プルリクエストはこちらで確認できます docker /docker/#15365.
ここには、 Authプラグインを簡単に利用できるようにするためのgoパッケージがあります。
近日公開 — PIDコントロールグループ
この次の機能は1.11になりますが、ここでティーザーを提供したいと思いました。 これは、cgroup 内でフォークできるプロセスの数を制限するための新しい cgroup です。 4.3 カーネルで出荷されました。 この機能をデフォルトで安全にすることにしました、つまり、docker cgroup親のPID制限を512に設定しています(実際の数は変わる可能性がありますが、これらの行に沿った何か)、平均的なユーザーにとっては十分すぎるほどですが、大きな害を及ぼすには十分ではありません。 もちろん、さらに必要な場合は、デフォルトをオーバーライドしたり、無制限に設定したりすることもできます。
すごいですよね? しかし、これについての最もクールな部分は、機能がすべて同じ人物、 Aleksa SaraiによってLinux、次にRunc、そしてDockerにもたらされたことです!カーネルへのコミットをここで表示します 。
runc へのプル要求 と Docker へのプル要求を表示します。
また、 docker stats
これはあなたが知っていて愛しているコマンドとAPIに追加されました。
コンテナ用の --pids-limit
フォーク爆弾を防ぐのがいかに簡単かをご覧ください。
ビデオの最初の部分はbash付きのコンテナ内のフォーク爆弾を示し、2番目の部分は.docker stats
多数のピッドがあるコンテナはクロム😉です
お分かりのように、Dockerエンジン1.10にはたくさんの素晴らしいものがあります。 いつものように、#docker-dev IRC または github リポジトリであなたを捕まえてください。
セキュリティで保護された Docker イメージを構築するためのベスト プラクティスに関するこのビデオをご覧ください
詳細については、 Docker セキュリティ センターをご覧ください。
ドッカー1.10に関するその他のリソース
- ダウンロード ドッカー1.10
- Docker 1.10 リリースノートを読む
- Docker 1.10 の新機能に関する今後のウェビナーに登録する
- Docker 1.10 リリースに関するこのビデオを見る
- Docker Online Meetup #32 Docker 1.10 にサインアップする
- 新しいバージョンの Docker Compose に関するこのビデオをご覧ください
- セキュリティで保護された Docker イメージを構築するためのベスト プラクティスに関するこのビデオをご覧ください
- Docker Online Meetup #33: Docker Engine 1.10 のセキュリティ強化にサインアップする
ドッカーについてもっと知る
- ドッカーは初めてですか? 10分間の オンラインチュートリアルをお試しください
- 無料の Docker Hub アカウントでイメージを共有し、ビルドを自動化します
- ド ッカー1.9リリースノートを読む
- ドッカーウィークリーを購読する
- 今後の Dockerオンラインミートアップにサインアップする
- 今後の Docker ミートアップに参加する
- DockerCon 2016 に登録する
- DockerCon EU 2015 のビデオを見る
- Docker への貢献を開始する