Mule Gateway ポリシーの概要

ポリシーを使用すると、セキュリティの管理、トラフィックの制御、API の適応性の向上に役立つ規制を適用できます。たとえば、ポリシーは認証、アクセス、割り当てられたコンシューム量、サービスレベルアクセス (SLA) を制御できます。

コードの実装を変更することなく、これらの規制を実装できます。

ポリシーは、カテゴリ、目的、バージョン、設定オプションなど、いくつかの異なる要素に基づいて異なります。環境に実装する前に、これらの要素を慎重に検討してください。

Mule Runtime Engine (Mule) に基づいたポリシー Exchange アセットは以下から構成されます。

  • Mule 4:

    • ポリシービジネスロジックが含まれるデプロイ可能な JAR ファイル。

    • ポリシーパラメーターとメタデータが定義される YAML 設定ファイル。

  • Mule 3.x:

    ポリシービジネスロジックと設定パラメーターを含む XML ファイル。

ポリシーのアーキテクチャ

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

  • API Manager

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

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

API Manager を使用して、ポリシーを設定し、API インスタンスに適用できます。API バージョンには、1 つ以上の API インスタンスを含めることができます。
特定の API インスタンスを特定の API 実装エンドポイントに結び付け、それによって API プロキシアプリケーションを自動生成することもできます。
Mule Runtime Engine に API プロキシをデプロイできます。

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

ポリシーの挿入と適用

特定の API バージョンの API プロキシアプリケーションを Mule にデプロイすると、適用されたプラットフォームのポリシーまたはランタイムのオフラインポリシーが API プロキシに挿入されます。これにより、アプリケーションの動作が変わります。プロキシアプリケーションが新規要求を受信すると、挿入されたすべてのポリシーが適用されて、要求を API 実装に転送するかどうかと、その方法が決定されます。

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

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

ポリシーのスコープ

ポリシーは、アプリケーションや他のポリシーから分離されています。ただし、ポリシーから情報を公開する方法があります。ポリシーについての認証情報は、セキュリティコンテキストプリンシパルオブジェクトで伝播できます。

トークン適用ポリシーなどの一部のポリシーでは、トークンに関連する情報を含むヘッダーの伝播が許可されます。このトークンは、実装サービスまたは API 自体によって使用されます。

ポリシーのサイズ

ポリシーのサイズは連動関係に基づいて異なります。初回は、Mule がポリシーをポーリングし、取得するのに時間がかかります。ただし、取得されたポリシーはファイルシステムにキャッシュされます。オフラインでも使用可能になり、レイテンシーも短縮されます。

キャッシュされたポリシーアセットの削除

デフォルトでは、API Manager でポリシーが適用解除された場合であっても、Mule ゲートウェイで JAR および YAML ポリシーアセットファイルが削除されることはありません。

キャッシュされたポリシーアセットの自動的な削除は 2024 年 2 月 1 日以降にリリースされた Mule Runtime バージョン 4.4.x および 4.5.x と Mule Rruntime バージョン 4.6.0 以降でのみサポートされます。

次のエントリを ​wrapper.conf​ ファイルに追加することで、ランタイムが起動したときに使用されていないキャッシュされたファイルを自動的に削除できます。

anypoint.platform.delete_unused_templates_on_start=true

ポリシーと SLA

事前定義された SLA に準拠するようにレート制限ポリシーを設定できます。サービスレベルアクセス (SLA) 層は、API で定義するユーザーアクセスのカテゴリです。層定義と SLA ベースのポリシーの組み合わせにより、API へのアクセスが許可されるかどうかが決まります。

たとえば、アプリケーションに適用される次の SLA 層のいずれかに応じて、アクセスの層を作成します。

  • 要求を 3 回/分に制限する層。

    承認を必要としない。

  • 要求を 5 回/分に制限する層。

    API にアクセスする必要があるアプリケーションの API バージョンオーナーの承認が必要です。

SLA では、アクセスを 1 つの API リソースのみに制限します。その他のリソースへのアクセスは無制限です。アプリケーションが保護されたリソースをコンシュームしようとすると、ポリシーが適用されます。要求には、期待されるユーザー名とパスワードが含まれている必要があります。アプリケーションから API への SLA 制限内で繰り返されるコールは成功します。