マスタリングAPIアーキテクチャ ―モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法
by James Gough, Daniel Bryant, Matthew Auburn, 石川 朝久
6章
セキュリティ運用:脅威モデリング
ここまで、デザイン、テスト、デプロイメント、APIのリリース戦略と、APIライフサイクル全体を解説してきました。Attendee APIは、外部システムに公開する準備ができているように見えるかもしれません。APIは素早く構築できますが、将来の互換性を考慮して設計するのは難しく、セキュリティを確保するのはさらに難しい課題です。実際のところ、開発者やアーキテクトは機能を提供することに焦点を当てており、セキュリティはプロジェクトの終盤になるまで考慮されないことがしばしばあります。
この章では、セキュリティが重要である理由と、適切なセキュリティを確保しないと、金銭的被害と風評被害があるか説明します。システムアーキテクチャにおけるセキュリティ上の脆弱性を調査し、本番環境で遭遇する可能性のある脅威を判断する方法を学びます。もちろん、すべての脅威を特定できるわけではありません。攻撃者は巧妙で、脅威の状況は常に変化しています。しかし、アーキテクトにとっての重要なスキルは、セキュリティの設計と実装を「シフトレフト」(Shift Left)することです*1。ソフトウェア開発ライフサイクル内でセキュリティを考慮する時期が早ければ早いほど(つまり、これをどれだけ前倒しできるか)、一般的には脅威の状況変化に対応するのが容易となり、費用対効果が高くなります*2。これは、APIのセキュリティ設計に携わる際に、十分な情報に基づいた意思決定を行うのに役立ちます。
*1 理想的には「スタートレフト」、つまり開発の最初からセキュリティを前提として取り入れるべきでしょう。
訳注:また、類似した概念として、セキュリティバイデザイン(Security by Design)が知られています。デジタル庁が2022年に発表したガイドラインでは「情報システムの企画工程から設計工程、開発工程、運用工程まで含めた全てのシステムライフサイクルにおいて、一貫したセキュリティを確保する方策」と定義しています。また、当該ガイドラインでは、セキュリティバイデザインを導入するメリットとして、一貫したセキュリティ対策の実装が可能となり、致命的なセキュリティ対策の漏れなどによる上流工程への手戻りを防止でき、納期確保やセキュリティコスト低減が可能になることを挙げています。 ...