こんにちは。今日は、Azure API Managementの参照アーキテクチャパターン(主にセキュリティの観点)について調べてみたので、分かったことをメモしておきたいと思います。
それではまいります。
なお、すべてのアーキテクチャパターンは以下から確認できます。
Azure アーキテクチャを参照する – Azure Architecture Center | Microsoft Learn
基本的なエンタープライズシナリオ
Azure での基本的なエンタープライズ統合 – Azure Architecture Center | Microsoft Learn
- みたそのまま。API Managementをすべてのリクエストの入り口に据えているパターン。
外部アクセスに対してはApplication Gatewayを経由させてセキュリティを強化
Azure API Management ランディング ゾーン アクセラレータ – Azure Architecture Center | Microsoft Learn
- 1つのAPI Managementで、社内環境から利用するAPIとインターネット経由で外部顧客などから利用されるAPIの両方を提供する場合のアーキテクチャ例。
- API ManagementはPaaSなので規定だとパブリックエンドポイントをもつけど、このパターンんでは仮想ネットワーク内にデプロイする機能を利用して、パブリックアクセスは不可にしている。
- オンプレミス環境など、社内環境からのアクセスでは、プライベート通信で直接API Managementに接続して、バックエンドのサービスを呼び出す一方、インターネット環境からはApplication Gatewayを経由してアクセスさせている
- Application Gatewayを経由させる心は、WAF (Web Application Firewall)機能を利用して、一般的なアプリケーション脆弱性に対する攻撃に対するセキュリティを高めるため
上のドキュメントには、以下のようにも書かれています。
API Management 検証ポリシーは、OpenAPI スキーマに対する API 要求と応答を検証するために使用できます。 これらの機能は Web Application Firewall に代わるものではありませんが、一部の脅威に対する追加の保護を提供できます。
なるほど、API Manamgentを利用してバックエンドサービスを呼び出す場合にも、一般的なアプリケーション脆弱性に対する攻撃(SQL Injectionなど)への対処は検討が必要で、API Mangement内で提供される検証ポリシーではWAFほど広範な対策機能はないので、外部に一般公開するようなAPIに対しては、Application Gatewayを前段に配置するなどの対策が必要なのですね。
このことは、API Manamgentのセキュリティベースラインにもはっきり書かれていました。
API Management 用の Azure セキュリティ ベースライン | Microsoft Learn
重要な Web/HTTP API を保護するには、Virtual Network (VNET) 内のAPI Managementを内部モードで構成し、Azure Application Gatewayを構成します。 Application Gateway は PaaS サービスの 1 つです。 リバース プロキシとしての役目を果たし、L7 の負荷分散、ルーティング、Web アプリケーション ファイアウォール (WAF)、およびその他のサービスを提供します。
このパターンの参照アーキテクチャは他にもいくつかあったので貼っておきます。
Azure Health Data Services アーキテクチャ ガイド – Azure Architecture Center | Microsoft Learn
以上、参考になりましたら幸いです。
おしまい。
コメントを残す