数年前には、アプリケーションをコンテナで構成しようとすると、仮想マシンの場合と違って、セキュリティ関連のいろんなトレードオフに直面しなければならなかった。コンテナの利用が企業間で予想以上に急速に普及していくに伴い、次第にこの問題を放って置けなくなり、Dockerのようなコンテナ技術を提供する企業は、セキュリティをプライオリティの上の方に置かざるをえなくなった。そしてとくにDockerの場合は、このセキュリティ重視の姿勢を業績にも反映させようとしている。
今日同社は、Docker Datacenterのためのコンテナネイティブな機密管理ソリューション(container-native secrets management solution)を提供する、と発表した。このサービスの下でデベロッパーたちは、APIや暗号の鍵、そしてパスワードなどを安全に作成し、それらを、サードパーティのサービスを使うことなくアプリケーションから利用できるようになる。
Dockerのセキュリティ担当ディレクターNathan McCauleyによると、これらの機密情報の従来的な共有方法は、ホストへ直接コピーするとか、ソースコード中にそのまま置く、というやり方だった。“しかしそんなやり方は、コンテナの場合は破滅的だ。コードはあちこちへ任意に移動していくし、まったく別のインフラストラクチャへ行ってしまうこともある”、とMcCauleyは述べる。そこで現状は、デベロッパー各自がいろんな工夫を凝らしたり、あるいはHashiCorpのVaultに代表されるようなサードパーティのサービスを使っている。
コンテナのオーケストレーションサービスは今やDocker以外にもいろいろあるが、McCauleyによると、それらが独自に貼り付けているようなセキュリティのソリューションも、本質的に不備なものが多い。たとえばKubernetesも、セキュリティを管理するためのツールを内蔵している。
Dockerのソリューションでは、セキュリティをクラスター(Docker用語では“swarm(群れ)”)に比較的容易に付加できる。そうすると機密の共有は同じ証明を共有するTLS接続の上でのみ可能になり、またマネージャーノードに保存される場合も、暗号化されていない状態でディスクに書き込まれることはない。これらの過程のいくつかの実例を、ここで見ることができる。そしてこれらの仕組みの中心的なねらいは、デベロッパーが容易にそれらを…アプリケーションのレベルで…実装できて、アプリケーションを支えているインフラストラクチャとはいっさい無関係であることだ。
Dockerのエンタープライズマーケティング担当VP David Messinaによると、今や同社は、セキュリティをメインのセールスポイントのひとつと考えている。彼の主張では、これからの企業があえてDockerを選ぶメインの理由が、他社製品に比べてセキュリティが優れているから、になるだろう。もちろん、いろんなレガシーのソリューションに比べても、だ。“Dockerはお買い得だよ。うちはこれまでも一貫して、アジリティとポータビリティという二本の柱を重視してきた。顧客企業が他社よりもうちに魅(ひ)かれるのも、そのためだ。そしてこれからは、三本目の柱として、セキュリティが加わるね”。