概要
メディア、ゲーム、インターネット広告という3つの事業を軸に、国内最大規模のブログサービス「アメブロ」や”新しい未来のテレビ”として展開する動画配信事業「ABEMA(アベマ)」などの多彩なサービスを展開するサイバーエージェント。動きの速い市場の中で魅力あるサービスを生み出し続けるべく、プライベートクラウド「Cycloud」の構築も積極的に進めてきた。
そのデジタルテクノロジーのエキスパートであるサイバーエージェントにも、コロナ禍はさまざまな課題を突き付けた。その1つが、オフィスへの出社を控えるために、リモート環境から社員のみならず協力会社の開発関係者含め安全にアクセスを許可し、スムーズなサービス開発を継続させる柔軟かつセキュアな方法が確立されていなかったことだ。
しかも、開発業務にはサイバーエージェントの従業員だけではなく、さまざまなパートナー企業が関わっている。そうしたパートナー企業もテレワークを採用することになったため、業務関係者全てにVPN接続を用意することは困難だった。
「これまでの業務は、やはりユーザーがオフィスにいることを前提としてアクセス制限などを設計していました。オフィスの外からどうやって安全にアクセスできるようにするかが大きな課題となっていました」と話すのは、事業セグメントに依存せず全社組織として同社のインフラを設計、運用するインフラエンジニアチーム「CIU(CyberAgent group Infrastructure Unit)」でPrivate Cloud Managerを務める澤田石 朋彦氏。
課題
サイバーエージェントは、コロナ禍以前から一部の従業員にリモートアクセスを許可していたが、基本的には「VPNありき」。IPアドレスを元に、つまり場所を元にして、どの拠点やユーザーからの接続を許可するかを制御していたが、拠点の変更や追加のたびにアクセスコントロールリストのメンテナンスが必要で、これが煩雑な作業となっていた。
その上、SSO対応させるには対象となるアプリケーションにも手を加える必要があり、工数はもちろん、改修に伴うダウンタイムが発生することも課題となる。
この状況をどう解決すべきか。自身もアプリケーションエンジニアとして開発作業を熟知しているCIUでSolution Architectを務める鳥居 昂平氏が思い付いたのが、「アプリケーションゲートウェイ」の活用だ。既にセキュリティチームが社内のユーザー情報を管理するために構築していた「社内IAM(Identity and Access Management)」、いわゆる認証基盤をアイデンティティープロバイダー(IDP)として連携させ、認証/アクセスを制御する仕組みだ。連携には標準技術のOpenID Connectを採用することにした。
鳥居氏はまず、オープンソースソフトウェア(OSS)の「NGINX」をベースにLuaスクリプトで拡張を加え、OpenID Connectのクライアントを実装することで、外部からのアクセスを制御する仕組みを構築した。この実績を踏まえてCIUは、「この仕組みを全社的な需要に合わせてスケーリングするにはどうしたらよいか」を考え始めた。
ソリューション
既に動いているアプリケーションそれぞれに独自の実装を加えるのでは、やはり改修に伴う工数、ダウンタイムが発生してしまう。その上、サイバーエージェントが提供するサービスは機密情報を扱うものも含めて多岐にわたり、セキュリティ水準もまちまちだ。こうした状況を考えると、1つのアプリケーションゲートウェイを作成して、各アプリケーションへのアクセスを制御するだけで済むようにし、一定のセキュリティ水準を保証する方法がベターだと考えた。
パブリッククラウドベンダーが提供するマネージドサービスも含めてIDP製品を検討したが、どうしてもアプリケーション開発エンジニア側での作業が必要になることがネックとなった。
そこで注目したのが、商用版の「NGINX Plus」だった。「NGINX Plusは、自力でいろいろな変数を埋め込まなくても簡単にOpenID Connectクライアントを実装できるJavaScript製公式モジュールが提供されていました」(鳥居氏)
また、商用サポートが付属することも大きなポイントになった。
成果
現在、サイバーエージェントはCycloud上で、NGINX PlusとOpenID Connectクライアントのモジュールを組み合わせたアプリケーションゲートウェイを稼働させ、従業員やパートナーの端末がリモートでアクセスする際の入り口としている。
現在のアプリケーションゲートウェイの構成(提供:サイバーエージェント)《クリックで拡大》
アプリケーションゲートウェイは、社内IAM(認証基盤)やPKI(公開鍵暗号基盤)と連携して認証を行い、その結果に従ってオンプレミスやパブリックラウドで動いているアプリケーションへのアクセスを制御する仕組みだ。アプリケーションの手前には、ネットワークレベルでアクセスを制御する、いわゆる「ファイアウォール」が設置されており、アクセス元をアプリケーションゲートウェイのみに限定している。
サービスごと、アプリケーションごとに、認証結果を踏まえた上で適切にリモートアクセスできる仕組みを迅速に提供できるようになっている。それも、従業員だけではなく、パートナー企業のメンバーも含めてだ。
旧来のVPN、境界型の防御では、いったんアクセスを突破してしまうとその中で幅広くアクセスすることが可能になってしまうが、IPアドレスベースの制御に代わる『ゼロトラスト』なセキュリティによって、アプリケーションごとの制御が可能になっている。
NGINX Plusの導入はスムーズに進んだ。というのも、サイバーエージェントが提供するほとんどのサービスは何らかの形でOSSのNGINXがすでに利用されており、鳥居氏にとってもなじみのある存在だったからだ。これまでの運用実績に安心感、信頼感を抱いていた上、充実したドキュメントにも助けられたという。
サイバーエージェントのCIUは、この新たなアプリケーションゲートウェイによって、個別に作り込もうとすると2週間程度は要していたリモートアクセスや認証の仕組みを、ほぼ即座に提供できるようになった。日々サービス開発が進み、変化を続けるアプリケーションに合わせて作り替えるなどして、ダウンタイムを発生させることもない。社内で利用しているIAMやPKIというIDPだけではなく、外部のIDPを利用することになった場合でも、実装を変えることなく対応可能という拡張性も向上させている。
「NGINX PlusではOSS版よりも多くのメトリックが取得できるようにもなりました。今後社内の監視システムでより詳細なデータを取れるようになると期待しています」(鳥居氏)
「将来的には、認証を含むセキュリティ機能全体として、外部に開かれたアプリケーションゲートウェイとしてNGINX PlusのWAF(Web Application Firewall)機能を適用してさまざまな不正アクセスからアプリケーションを保護したり、より拡張性や耐障害性を高めたりする仕組みなどを考えていきたいですね」(澤田石氏)
こうして、VPN頼りから、アプリケーションやユーザーごとにきめ細かく制御するゼロトラストセキュリティへと一歩踏み出したサイバーエージェントのCIU。今後も安定して使いやすいインフラの構築によって、自社のサービス開発を支援していく。