英語表記:Microservices Architecture
マイクロサービスアーキテクチャとは、一つの大きなシステムを複数の小さな独立した機能(サービス)に分けて構築するしくみのことです。
それぞれのサービスは、独自に開発・運用できるため、変更の影響を最小限に抑えながらシステム全体を進化させられます。ただし、セキュリティの観点では、従来の「一枚岩(モノリシック)」な構成とは異なる課題が生まれます。
マイクロサービスでは、サービス同士がAPIなどを介して頻繁に通信します。つまり、「内部通信」そのものが新たな攻撃経路になり得るのです。一つのサービスが侵害されると、そこから別のサービスへと被害が広がる「横展開」が起こる危険もあります。そのため、サービス間通信の暗号化(TLS)や、ゼロトラストの考え方に基づいた相互認証が重要になります。
また、認可や認証のしくみも注意が必要です。各サービスでバラバラに管理してしまうと、認証の抜け漏れや権限の不整合が起こりやすくなります。
これを防ぐために、APIゲートウェイやIDプロバイダーを中心にした統合的なアクセス制御を導入するのが一般的です。アクセス制御の方式としては、属性ベースアクセス制御(ABAC)やOAuth 2.0、OpenID Connectなどが活用されます。
さらに、マイクロサービスは自動デプロイやスケーリングを前提としているため、構成管理や脆弱性対応の自動化も欠かせません。コンテナやCI/CD環境を安全に保つことも、全体のセキュリティを支える要です。
一つのサービスだけが安全でも、他が守られていなければ意味がありません。「全体を見渡したセキュリティ設計」こそが、マイクロサービス時代の前提条件なのです。
便利さと柔軟さの裏には、新しいリスクが潜んでいます。マイクロサービスアーキテクチャを採用する際は、開発スピードだけでなく「守りの設計」も一緒に考えることが大切ですね。
用語解説の監修:増井 敏克