仮想化技術「コンテナ」は、ホストOS上に他のプロセスとは隔離されたアプリケーション実行環境をコンテナ内に構築する技術です。この技術は、開発部門と運用部門が連携してシステムを開発するDevOpsを実施する企業内での「開発者体験(Developer Experience、DX)」を最適化します。アプリケーションをコンテナ内にビルドすることで、コンピュータ内のハードウェアやインフラストラクチャ、クラウド環境のいずれにおいても開発者は円滑にアプリを実行できるようになります。仮想マシン(VM)を用いて構築された仮想的な実行環境では、オペレーティングシステム(OS)、または、システム基盤となる設備や施設であるインフラストラクチャ環境の違いによって互換性に課題が生じていました。一方、コンテナはホストOS上で構築可能なプロセスであり、各コンテナ毎にOSをエミュレートする「コンテナランタイム」によってこれらの課題は仮想化されます。ただし、他のテクノロジー同様、コンテナを使用する上でもトレードオフの法則が成り立ちます。これらのコンテナ環境のインフラストラクチャの複雑さについて適切に考慮されていない場合、深刻なセキュリティリスクをもたらす可能性があります。コンテナ環境に被害を与える可能性のある脅威は、開発パイプラインの各段階に存在します。
コンテナ内でのビルド作業時に生じるリスクを最小限に抑えるために開発者が順守すべき6つのステップを以下に示します。
続きを読む