ここから本文です

何が違う? 何が必要? マイクロサービス/サーバレス時代のセキュリティ

6/19(水) 11:40配信

@IT

 ハードウェアはもちろん、OSとミドルウェア、その上で動作するアプリケーションを自力でデプロイしてようやくサービスを展開し、さまざまな依存関係に悩みながら運用していく……。そのような従来のアーキテクチャに代わって着目されているのが、「マイクロサービス」や「サーバレス」だ。

【画像:500を超えるマイクロサービスで構築されたNetflix】

 互換性はもちろん、拡張性や可用性、チューニングにアップデートといった、従来、考慮しなければならなかったさまざまな「面倒ごと」から解放されてコードをすぐに展開できる利点を評価し、先端を行く企業の中には、これまでのモノリシックなアーキテクチャをマイクロサービスに分解したり、サーバレスを取り入れたりしようという試みが増えている。

 だが、これらの新しいアーキテクチャに盲点はないのだろうか。中でも、無視できないセキュリティの観点からどのようなことに留意すべきなのだろうか。

 2019年5月17日に開催された「Oracle Code Tokyo 2019」のセッション「Serverless時代におけるセキュリティ戦略」では、そのような重たいテーマが、アスタリスク・リサーチの代表取締役 エグゼクティブ・リサーチャ、岡田良太郎氏と、SecureWorks Japan 主席上級セキュリティアドバイザーの古川勝也氏による軽妙な掛け合いを通して語られた。

マイクロサービス、サーバレスがもたらすメリットと課題とは

 岡田氏は冒頭、サーバレスの利点を「コードだけ、関数だけを置いておけば動くため、サーバのことやスケーラビリティについてはクラウドのプラットフォーマーに任せ、自分たちで考えなくて済むこと」と説明した。逆に言えば、プラットフォーム側に何か問題があれば、その上のサービス全てに障害が起きてしまうことにもなる。

 これはセキュリティの観点から見ても大きな変化だ。古川氏は「マイクロサービス/サーバレスはゲームチェンジャーであり、セキュリティ屋としても追い掛けていかなければならないことが多い。まだ始まったばかりの領域だが、それだけに課題も多い」と述べた。

設計段階でのセキュリティ「シフトレフト」「セキュアバイデザイン」が今まで以上に重要に

 古川氏は、具体的には、設計段階でのセキュリティが今まで以上に重要になるとみている。

 「セキュリティ対策は“防御”のアプローチから始まったが、今や素早く脅威を検知し、迅速に対応するところまで含めて考えなければならない。最近は『シフトレフト』という形で、設計の段階でセキュリティ対策を意識していくことが推奨されているが、マイクロサービス/サーバレス時代では特に、この考え方が大事になる。設計/開発段階でのセキュリティを強化しないと、早く見つけて対処したり、フォレンジックで原因を究明したりといったことができなくなる恐れがある」(古川氏)

 岡田氏はマイクロサービスの一例としてNetflixのサービスアーキテクチャを紹介し、「あらゆる処理を、APIを呼んで行うことで、例えば画像表示の機能1つが落ちてしまっても全体は落ちることなく、システム全体のリライアビリティーをまあまあ確保できることが利点だ」とした。

 既存のシステムを分割してマイクロサービス化すれば、それぞれが独立して実行されるため、メンテナンスも他の部分のことを考えずに独立して行えるし、開発のリポジトリも分割され、コンパクトになる。コードをバージョンアップするにせよ、問題を修正するにせよ、サービス全体にまたがって調整を行う必要がない。多くの企業が、モノリシックなアーキテクチャをマイクロサービスに分解しようとしているのも、こんな利点があるからだという。

 「一方で、これに伴ってコードレビューの単位も極端に短くなってくる。このため、セキュリティ脆弱(ぜいじゃく)性診断を行うとしたら、オーダーの方法も変わってくるのではないか」(岡田氏)

 古川氏はさらに、「加えて、各関数に認証、認可の機能を持たせなければならない。開発者側でそのことをしっかり意識し、セキュアバイデザインの考え方で認証、認可の機能を入れておかないと、後から何か起きたときの原因究明が困難になる」と指摘した。

設計段階でのセキュリティが足りないとどうなるか――「デス・スター」の場合

 機能の追加や修正がすぐ行える一方、マイクロサービス/サーバレスによってソフトウェアの仕様とリポジトリの在り方、グランドデザインの在り方、さらには実装チームや組織の在り方が全く変わってくる。その恩恵を受ける上で、ソフトウェアをどのように管理し、安全性をどのように担保するか。

 岡田氏が設計段階でのセキュリティが足りないモノリシックの例として挙げたのは、映画『スター・ウォーズ』シリーズに出てきた、敵方、帝国軍の宇宙要塞「デス・スター」だ。「デス・スターは非常に強い要塞だが、セキュアバイデザインやシフトレフトが足りておらず、設計にSingle Point of Failure(SPoF)があった」(岡田氏)

 デス・スターのように密結合のシステムならばコントロールしやすく、防御しやすそうに思えるが、たった1つの問題でメルトダウンしてしまう恐れがある。ただし、その原因は追及しやすい。一方マイクロサービス/サーバレスでは、他者と共存共栄しなければシステムの安定運営は維持できない。ただし、分散処理というメリットがある――岡田氏は、モノリシックとマイクロサービス/サーバレス、双方の利点と課題を整理した。

1/3ページ

最終更新:6/19(水) 11:40
@IT

こんな記事も読まれています

あなたにおすすめの記事