---
schema_version: "1"
id: 014f37ebd9dac61d1862e86007ce4b383d522cbf6a480e1b82654451202e7e4d
title: リソースレベルのポリシー
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-gateway/policies-mule3-resource-level-policies.md
canonical_url: https://docs.mulesoft.com/jp/mule-gateway/policies-mule3-resource-level-policies
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 8e350b834d5f4edf1755c16e8ed21934d0fdee2a6b99b1d8ddd27541e10463fe
description: MuleSoft Documentation Site
latest: true
---
# リソースレベルのポリシー

Mule 3.8.1 以降を使用して、次の条件を満たす API のリソースレベルとメソッドレベルに 1 つ以上の提供されたポリシーを適用できます。

- API に RAML エンドポイントがある。
- APIkit または RAML プロキシを使用して API を作成している。

APIkit を使用して、RAML ベースの API を作成し、基本エンドポイントを設定できます。または、既存の API の場合は RAML ベースの API を作成し、プロキシを使用してエンドポイントを設定できます。

リソースレベルで適用されたポリシーはすべてのメソッドまたはリソース内で選択したメソッドに影響します。

既存のカスタムポリシーでこの機能をサポートするには、コードを追加します。

複数の条件を適用してリソースとメソッドを絞り込むことができます。URI テンプレート正規表現は、API の 1 つ、複数、またはすべてのメソッドに適用できます。

## [](#サポートされていないポリシー)サポートされていないポリシー

次のポリシーはリソースに適用できません。

- クロスオリジンリソース共有
- LDAP セキュリティマネージャー
- 単純なセキュリティマネージャー

## [](#使用シナリオ)使用シナリオ

リソースレベルポリシーは想像できる限りのあらゆる用途に使用できます。例をいくつか示します。

- 特定のリソースへのポリシーの適用
- API のサブセットの保護
- 複数のリソースへの異なる制限の設定

## [](#リソースレベルポリシーの適用)リソースレベルポリシーの適用

サンプル API のシミュレーションは次のようになります。

![ユーザー権限とそれぞれのユーザー権限に許可された対応する HTTP メソッドに関連する API 要求](/mulesoft/current/ja-jp/mule-gateway/_images/users-api-cropped.png)

リソースレベルポリシーは、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.\*

### [](#api-のサブセットの保護)API のサブセットの保護

作成、更新、削除操作にセキュリティを追加し、参照のみの操作は保護しないままにすることができます。たとえば、特定のメソッドとリソースに 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 件の要求に設定します。

## [](#関連情報)関連情報

- [リソースレベルのポリシー](https://docs.mulesoft.com/jp/mule-gateway/policies-mule3-resource-level-policies)
- [カスタムポリシーのリソースレベルのサポートの有効化](https://docs.mulesoft.com/jp/mule-gateway/policies-mule3-resource-level-custom-policy)