Mule 3 のポリシー

ポリシーは API の機能を拡張し、セキュリティなど特定の機能を適用します。ポリシーはアクセスとトラフィックを制御できます。たとえば、ポリシーは通常、認証、アクセス、割り当てられたコンシューム量、サービスレベルアクセス (SLA) を制御できます。ポリシーを次の種別の API に適用できます。

  • APIkit プロジェクト

    たとえば、APIkit プロジェクトを API Autodiscovery を使用して Anypoint Platform にデプロイし、ポリシーを適用します。

  • CloudHub で実行される API

    Anypoint Platform 上の API を設計し、CloudHub のプロキシを設定し、ポリシーを適用します。

  • 非公開またはクラウドベースの Mule Runtime 3.8.x 以降にデプロイされた API

  • Mule ゲートウェイランタイム 2.x にデプロイされた API

API Manager では多くのポリシーが提供されます。カスタムポリシーを作成することもできます。プロキシ API アプリケーションをデプロイし、1 つ以上のポリシーを適用して、いつどのように受信した要求をその実装エンドポイントに転送するかを制御できます。API 要求が SLA のポリシーに違反したら通知を受け取るように API アラートを設定できます。

デフォルトでは、ポリシーは API 全体に適用され、リソースおよびメソッドごとに要求トラフィックを絞り込みます。

Mule Runtime 3.8.0 以降では、Gatekeeper を使用してポリシーでセキュリティを強化できます。Gatekeeper は、すべてのオンラインポリシーが適用されるまで API を無効化します。

管理アーキテクチャ

ポリシーは、次のコンポーネント間の協調的な通信によって実装されます。

  • API Manager

  • 1 つ以上の Mule ゲートウェイランタイムまたは Mule Runtime 3.8.0 以降

  • 1 つ以上の API プロキシアプリケーション

API Manager では、Anypoint Platform アカウントおよび組織を使用し、ポリシーを設定して API バージョンに適用できます。
特定の API バージョンを特定の API 実装エンドポイントに結び付け、それによって API プロキシアプリケーションを自動生成することもできます。
次に、API プロキシを Mule Runtime か、API 実装が Mule Runtime 3.7.0 以前で実行されている場合はスタンドアロン Mule ゲートウェイランタイムにデプロイできます。 Mule Runtime 3.8.0 以降には、ランタイム内に埋め込まれた Mule ゲートウェイ機能がすべて含まれています。

各 API プロキシアプリケーションは、API で指定された HTTP または HTTPS URL で要求を受信します。通常、要求は対応する API 実装エンドポイント URL に転送され、続いて応答が API プロキシアプリケーションを介して要求側のクライアントアプリケーションに返送されます。

ポリシーの挿入と適用

特定の API バージョンの API プロキシアプリケーションを従来の Mule ゲートウェイランタイムまたは Mule Runtime 3.8.0 以降にデプロイすると、ランタイム/ポリシーフォルダーに適用されたポリシーが API プロキシに挿入されます。これにより、アプリケーションの動作が変わります。

プロキシアプリケーションが新規要求を受信すると、挿入されたすべてのポリシーが適用されて、要求を API 実装エンドポイントに転送するかどうかと、その方法が決定されます。

このように、実際のポリシー適用は、プロキシアプリケーション自体の内部で発生し、受信した要求を処理している API プロキシ、Anypoint Platform エージェント、およびオンラインの API Manager 間の相互通信を最小に抑えます。API プロキシアプリケーションには、ランタイムで実行されている Anypoint Platform エージェントとの通信も、API Manager との通信も必要ありません。

ただし、Anypoint Platform エージェントと API Manager の接続は保持されます。ポリシーが再設定されるか、API Manager から削除されると、それらのポリシーは接続された Mule ゲートウェイまたは Mule Runtime にダウンロードされ、それによって各ランタイム/ポリシーフォルダーが更新されます。ポリシーの変更は再度各 API プロキシアプリケーションに挿入されます。これにより、ポリシーは、API プロキシアプリケーションの再デプロイや Mule ゲートウェイまたは Mule runtime の再起動なしで動的に変更されます。