この記事では、多様でグローバルな開発チームを効率的かつ安全にオンボーディングするために、なぜ企業にセキュアなクラウド開発環境(CDE:Cloud Development Environment)が必要なのかについて解説します。また、CDEに関する新しいアプローチの利点と課題についても取り上げ、GitHub Codespaces や GitPod、Coder のような「標準的なCDE」との違いについても考察します。

生産性とセキュリティの両立を可能にするセキュアCDE

クラウド開発環境(CDE: Cloud Development Environments)の利用により、開発環境をオンラインに移行することが可能になります。CDE には、セルフホスティング型のプラットフォームから、ホスティング型サービスまでさまざまな形態があります。
中でも、データセキュリティを備えた CDE(セキュアCDE) の利点は、「生産性」と「セキュリティ」の両面を同時に実現できる点です。

本記事の目的は、セキュアCDEと一般的なCDE(たとえば Codespaces、Google Workstation、OpenShift DevSpaces、GitPod、Coder など)との違いを解説することにあります。

Strong Network は、セキュアCDEのセキュリティ分野におけるパイオニアであり、企業がセキュアCDEを管理できる最初のプラットフォームを提供しています。

当社のCDEに対するアプローチは、「生産性」と「セキュリティ」の両方に焦点を当てている点に特徴があります。これは、前述の他プレイヤーのように、主に効率性の向上のみを目的としてCDEを活用する姿勢とは対照的です。
セキュリティをCDEに組み込むことで、企業環境における導入が可能になり、データやインフラのセキュリティ要件にも対応できます。

さらに、セキュアCDEではセキュリティ機能の提供が、開発者の妨げとなるのではなく、むしろ生産性の向上につながるよう設計されています。
その理由は、従来の環境で開発者が手作業で行っていたセキュリティ対策(たとえば認証情報の管理や知識の習得)を自動化できるためです。

本記事は以下の構成で進めていきます:まず、CDEがどのようにして生産性と効率性を向上させるかについて整理します。次に、セキュアCDEに追加されるセキュリティ機能の種類について説明します。なお、CDEプラットフォームとセキュアCDEを管理するためのプラットフォームのアーキテクチャの根本的な違いについては、こちらの記事をご参照ください。

クラウド開発環境の管理を合理化する

まず、従来の開発環境では、開発者が各自の端末に開発環境をインストールし、管理する必要がありました。これは手作業であり、時間がかかるローカル作業です。また、プロジェクトを切り替えるたびに、同じ作業を繰り返す必要があり、リソースの競合などの問題が発生する可能性もあります。

集中管理されたプロビジョニングと構成

このような手間は、オンラインで管理されたCDEによって簡素化することが可能です。
オンラインサービスを使えば、開発者はカタログから開発スタックを選択し、オンデマンドで新しい環境を数秒で構築することができます。プラットフォームにアクセスすれば、複数の環境を同時に管理し、すぐに開発を開始できます。

このような機能は、「Infrastructure as Code (コードとしてのインフラ)」と「軽量な仮想化」によって実現されており、いずれもコンテナ技術によって支えられています。

a visual of the centralized management of a CDE
The centralized management of Cloud Development Environments allows for remote accessibility and funnels all resource access through a single entry point.


開発リソースとコラボレーション

新しいプロジェクトを開始する際に必要となるのは、環境の定義だけではありません。
CDEプラットフォームは、コードリポジトリやAPIへのアクセス、さらにはクラウドサービスへの認証に必要なシークレット情報へのアクセスまで、開発に必要な各種リソースへのアクセスを簡素化することができます。

また、CDEプラットフォームを利用することで、開発環境がオンラインで管理されるため、開発者同士の新しいコラボレーションの形も可能になります。
たとえば、従来のようにコードリポジトリを使ってプルリクエスト経由でフィードバックを提供するといった一時的なコラボレーションにとどまらず、オンラインプラットフォームの即時性を活かした、よりインタラクティブなコラボレーションが実現できるのです。

peercoding
Using peer-coding, two developers can type in the same environment, for example in order to collaboratively improve the code during a discussion via video-conference.

ベンダーが注目している代表的なインタラクティブな機能として、「ピアコーディング」や「実行中アプリケーションの共有」があります。

ピアコーディングとは、複数の開発者が同じコードを同時に編集できる機能です。Googleドキュメントなどのオンラインテキストエディタを使って、他のユーザーと同時に文書を編集した経験がある方は、それをコード開発に適用したものと考えるとわかりやすいでしょう。この機能により、開発者が他人の開発環境上で直接コードを編集できるようになります。

また、CDEベースの開発環境でアプリケーションを実行している場合、そのアプリケーションを即座に他のユーザーと共有することが可能です。従来の開発環境では、アプリケーションを別のサーバーにデプロイしたり、ローカルデバイスのIPアドレスを共有したりする必要がありました(そしてそれが技術的に可能である必要があります)。
しかしCDEを使えば、このようなプロセスを自動化することができます。

Secure CDEによるクラウドベースのエンタープライズ・セキュリティ

CDEは、一般的に企業のプライベートクラウド上にセルフホストされたり、オンラインプロバイダーによってホストされたりするプラットフォームを通じて提供されます。どちらの場合でも、ローカルデバイスにソフトウェアをインストールすることなく、環境の機能を利用することができます。この提供方式は「クラウドデリバリー」とも呼ばれます。

ここまで主に、生産性に関する機能 ― たとえば、環境の管理、リソースへのアクセス、コラボレーション機能 ― に焦点を当ててきましたが、同様にセキュリティ機能もクラウドから提供することが可能です。これにより、セキュアな開発プロセスの実現という大きなメリットが得られます。

経済的な観点から見ても、これはエンタープライズにとって大きな利点です。なぜなら、これまでエンドポイントセキュリティソフトウェアをローカルにインストールして管理していたセキュリティ機能の多くを、CDEによって新たな形で実現できるからです。私たちは、CDEを活用してセキュリティを再定義することで、多くの革新が生まれると考えています。
そのため、Strong Networkプラットフォームは、データセキュリティを中核機能の一つとして提供しています。

Using secure Cloud Development Environments, the data accessed by developers can be protected using different mechanisms enabled based on context, for example based on the status of the developer in the organization.
Using secure Cloud Development Environments, the data accessed by developers can be protected using different mechanisms enabled based on context, for example based on the status of the developer in the organization.

 

開発データにセキュリティが必要な理由

今日、ほとんどすべての企業は、コードの開発、データの生成および処理、そしてそれらを活用した知的財産の創出によって、株主価値の一部を提供しています。したがって、開発チームを支えるデータの保護は、企業の運営を株主の戦略と一致させるうえで極めて重要です。

しかし、開発プロセスに関わるインフラは多様で複雑であるため、データの保護は後回しにされがちです。仮に対策が取られていたとしても、多くは「費用対効果」に基づく部分的な取り組みにとどまります。

銀行や保険業界など、規制により安易な対応が許されない業界では、リモートデスクトップなどの生産性を損なう重いソリューションが最小限で適用されるのが一般的です。

一方、規制の影響が少ない業界では、近道を選んだ結果、重大なインシデントに見舞われ、株主の利益に反する事態が発生するケースもあります。2023年には、セキュリティ重視で知られるOkta社をはじめ、CircleCI、Slackなど多くの企業がソースコードの流出というニュースで世間を騒がせました。

セキュリティメカニズムの種類

CDE(クラウド開発環境)を使ってセキュリティをクラウド経由で提供することで、以下のような理由から効率的にセキュリティ対策を実施できます:

  • エンドユーザー側でのインストールが不要
  • デバイスのOSに依存しない
  • リモートでアップデートや監視が可能
  • ユーザーの場所に関係なく適用できる
  • ユーザーの役割や状況に応じて柔軟に適用可能

具体的に提供可能なセキュリティ機能は、以下の通りです:

  • 組織リソースへの集中管理アクセス:アクセスの継続的な監視が可能
  • 認証情報(クレデンシャル)の一元管理:開発者が直接認証情報にアクセスすることなく利用できる
  • データ損失防止(DLP):開発者が使用するアプリケーション(IDE、コードリポジトリなど)を通じた制御

リアルタイムな開発チームの可視化:SIEM(セキュリティ情報イベント管理)ツールでログを監査

Secure CDEで実現するセキュアなソフトウェア開発のベストプラクティス

**セキュアなクラウド開発環境(Secure CDE)**を利用することで、開発プロセスの生産性とセキュリティの両立が可能になります。

生産性の観点では、Secure CDE プラットフォームによって開発環境の一元管理が可能となり、多くの効率化が図れます。

セキュリティの観点では、クラウドからセキュリティ機能を提供することで、各開発者が使用する端末の制約を超えて、セキュリティ対策が行えるようになります。つまり、開発環境を仮想化して提供することで、これまでローカルで行っていた運用・セキュリティ作業をより効率的に管理できるのです。

これにより、ソフトウェア開発におけるセキュリティを強化すると同時に、企業としてセキュアな開発のベストプラクティスを取り入れることが可能になります。

さらに、ワークフローのテンプレート化によって、生産性とセキュリティをより体系的に整備し、開発チームの管理コストも削減できます。

CDEプラットフォームとSecure CDEプラットフォームのアーキテクチャの違いにご興味がある方は、こちらのブログをご覧ください。