Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule 3.8.1 以降を使用して、次の条件を満たす API のリソースレベルとメソッドレベルに 1 つ以上の提供されたポリシーを適用できます。
API に RAML エンドポイントがある。
APIkit または RAML プロキシを使用して API を作成している。
APIkit を使用して、RAML ベースの API を作成し、基本エンドポイントを設定できます。または、既存の API の場合は RAML ベースの API を作成し、プロキシを使用してエンドポイントを設定できます。
リソースレベルで適用されたポリシーはすべてのメソッドまたはリソース内で選択したメソッドに影響します。
既存のカスタムポリシーでこの機能をサポートするには、コードを追加する必要があります。
複数の条件を適用してリソースとメソッドを絞り込むことができます。URI テンプレート正規表現は、API の 1 つ、複数、またはすべてのメソッドに適用できます。
リソースレベルポリシーは想像できる限りのあらゆる用途に使用できます。例をいくつか示します。
特定のリソースへのポリシーの適用
API のサブセットの保護
複数のリソースへの異なる制限の設定
サンプル API のシミュレーションは次のようになります。
リソースレベルポリシーは、Java 正規表現をサポートしています。たとえば、ワイルドカードを使用してポリシーを複数のリソースに適用できます。ポリシーを API に適用する場合は、適用対象のリソースを指定します。
Mule 3 でリソースレベルポリシーを使用する場合、リソーステンプレート定義に API ベースパスを含めないでください。
複数の条件を適用してリソースとメソッドを絞り込むことができます。URI テンプレート正規表現は、API の 1 つ、複数、またはすべてのメソッドに適用できます。
正規表現内で {userid} などのプレースホルダーを使用しないでください。式でプレースホルダーを使用すると、プレースホルダーが実際のノードに一致しないため、失敗します。プレースホルダー例の {userid} の場合、ノードは実際には次のようになります。
/api/users/671962fc-f076-4b19-bc38-45ba3a4e4095/permissions/1234
671962fc-f076-4b19-bc38-45ba3a4e4095 がユーザー ID です。
1234 は権限の ID です。
1 人のユーザーとそのリソースより下位のすべてのノードを表すリソース /api/users/{userid}
にポリシーを適用するには、次の式を使用します。
/api/users/.*
権限リソース /api/users/{userId/permissions}
と /api/users/{userid}/permissions/{permissionId}
のみにポリシーを適用するには、次の式を使用します。
/api/users/.*/permissions.*
作成、更新、削除操作にセキュリティを追加し、参照のみの操作は保護しないままにすることができます。たとえば、特定のメソッドとリソースに HTTP 基本認証ポリシーを適用するとします。POST、PUT、PATCH、DELETE の各メソッドを選択し、次の式を使用して API のすべてのリソース URI を対象とします。
.*
この式は、書き込み操作にセキュリティを適用し、GET (参照のみ) は保護しないままにします。リソースのサブセットのみを対象とするには、より詳細な式を使用します。
ユーザー固有の操作に、ユーザーのアクションに応じて異なる制限を使用してレート制限を適用できます。たとえば、レート制限を複数回適用して、一部のリソースへの要求を他のリソースよりも厳しく制限することができます。たとえば、次のノードでユーザーごとに参照、作成、削除操作に異なる制限を設定できます。
/api/users/.*/.* → /api/users/{userId}/assignments; /api/users/{userId}/assignments/{param}/values; /api/users/{userId}/permissions; /api/users/{userId}/permissions/{permissionId}
まず、レート制限ポリシーを特定のメソッドとリソースに適用し、GET (参照) メソッドを選択して、次の正規表現を使用します。
/api/users/.*/.*
次に、ポリシーを設定して、たとえば 1 時間あたり 100 件の要求に制限します。
次に、もう一度レート制限ポリシーを特定のメソッドとリソースに適用し、今度は POST (作成) メソッドを選択して、前回と同じ正規表現を使用します。1 時間あたり 50 件の要求に設定します。
最後に、もう一度レート制限ポリシーを特定のメソッドとリソースに適用し、DELETE (削除) メソッドを選択します。今回も前回と同じ正規表現を使用します。そして、たとえば 2 時間あたり 25 件の要求に設定します。