---
schema_version: "1"
id: dea9d88ff6b845f1e6a4763c00c2a827b27fb686560f0602c04ab878c9876957
title: ゲートキーパーによるセキュリティ強化
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-gateway/mule-gateway-gatekeeper.md
canonical_url: https://docs.mulesoft.com/jp/mule-gateway/mule-gateway-gatekeeper
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 1bf023a23fda339e615be71e60c1f43c6ca79aa968bd6f7bc6917444ebeda905
description: MuleSoft Documentation Site
latest: true
---
# ゲートキーパーによるセキュリティ強化

アプリケーションをデプロイすると、アプリケーションによって公開された追跡対象のリソースが、セキュリティの短い空白時間のためにアクセス可能になる場合があります。これらのリソースにはポリシーがまだ適用されていないため、API は不要なトラフィックを受け取ることがあります。ゲートキーパーは、すべてのポリシーがエラーなく取得されて適用されるまで追跡対象リソースをブロックしてこの状況を回避します。

CloudHub 4.2.2 以降、ポリシーでコントラクトが必要な場合、およびゲートキーパーが有効になっている場合に、Mule Runtime Engine (Mule) は API のコントラクトが管理プレーンから正常にダウンロードされるまで API をブロックし続けます。ゲートキーパーは、API のブロックを解除するコントラクトが使用可能になるまで待機します。

以前のバージョンの Mule では、ランタイムがすべてのポリシーを正常に適用した後に API のブロックが解除されていました。たとえば、API にクライアント ID 適用ポリシーが適用されている場合、有効なログイン情報を含む要求が拒否されていました。

この CloudHub の更新は、​`strict`​ および ​`flexible`​ ゲートキーパーモードと同じように動作します。Mule の再起動前後にコントラクトサービスからダウンロードされたコントラクトは、使用可能とみなされます。

コントラクトが必要な可能性がある標準のポリシーを次に示します。

- [クライアント ID 適用ポリシー](https://docs.mulesoft.com/jp/mule-gateway/policies-included-client-id-enforcement)
- [レート制限 SLA ポリシー](https://docs.mulesoft.com/jp/mule-gateway/policies-included-rate-limiting-sla)
- [JWT 検証ポリシー](https://docs.mulesoft.com/jp/mule-gateway/policies-included-jwt-validation)
- [PingFederate OAuth 2.0 トークン適用ポリシー](https://docs.mulesoft.com/jp/mule-gateway/policies-included-pingfederate-oauth-token-enforcement)
- [OpenID Connect OAuth 2.0 トークン適用ポリシー](https://docs.mulesoft.com/jp/mule-gateway/policies-included-openid-token-enforcement)
- [Mule OAuth 2.0 アクセストークン適用](https://docs.mulesoft.com/jp/mule-gateway/policies-included-oauth-access-token-enforcement)

## [](#ゲートキーパーの動作)ゲートキーパーの動作

ゲートキーパーメカニズムは、ランタイムを再起動した場合、または自動検出によって API インスタンスにリンクされた追跡対象リソースを再デプロイした場合にのみ適用されます。ゲートキーパーが適用されると、API Manager ですべての API インスタンスポリシーがエラーなく適用されるまで、追跡対象の各リソースがブロックされ、​`503 - Service Unavailable`​ HTTP 状況コードが返されます。

自動検出時に API インスタンスにリンクされていないリソースは、ゲートキーパーでは無視されます。また、これらのリソースにはポリシーを適用することはできず、分析情報も生成されません。Mule インスタンスの再起動後または追跡対象の Mule アプリケーションの再デプロイ後に接続が失われると、ゲートキーパーが有効化されていない場合でも、キャッシュされているポリシー、設定、コントラクトが使用されます。

ゲートキーパーが適用され、追跡対象のリソースに不正なポリシーや定義が正しくないポリシーが適用されると、追跡対象のリソースがブロックされて ​`503 - Service Unavailable`​ HTTP 状況コードが返されます。問題のポリシーが API Manager から削除されるまで、リソースはブロックされたままになります。Mule Runtime は、すべてのポリシーと、アクティブなコントラクトをローカルにキャッシュします。

## [](#セキュリティレベル)セキュリティレベル

ゲートキーパー機能を有効または無効にするには、特定のセキュリティレベルで次のプロパティを設定します。

anypoint.platform.gatekeeper

たとえば、​`flexible`​ セキュリティレベルを設定するには、次のプロパティを指定する必要があります。

anypoint.platform.gatekeeper=flexible

- Mule 4 セキュリティレベルの有効な値
    
    - `strict`
    - `flexible`
    - `disabled`
- Mule 3 セキュリティレベルの有効な値
    
    - `true`
    - `false`
    - `strict`
    - `flexible`

Mule Runtime バージョン 4.8.0 以降の場合、ポリシー設定を編集するときはゲートキーパーによって要求がブロックされ、ポリシー順序を編集するときはゲートキーパーによって要求がブロックされません。編集中にゲートキーパーを無効にするには、​`anypoint.platform.gatekeeper`​ プロパティを ​`false`​ に設定します。

anypoint.platform.gatekeeper.block\_edit=false

### [](#セキュリティレベルの定義)セキュリティレベルの定義

下表に示すように、ゲートキーパーには ​`false`​、​`disabled`​、​`true`​、​`strict`​、または ​`flexible`​ セキュリティレベルを適用できます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 5%;">
<col style="width: 65%;">
<col style="width: 15%;">
<col style="width: 15%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>セキュリティレベル</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Description (説明)</strong>​</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Mule 3.x のレベル</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Mule 4.x のレベル</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ゲートキーパーは一切のセキュリティを適用せず、ポリシーがエラーなく完全に適用されるまでは API が不要なトラフィックを受け取る場合があります。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">後方互換性のみを目的としています。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>disabled</code>​ に置き換えられました。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>disabled</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ゲートキーパーは一切のセキュリティを適用しません。この設定では、ポリシーが適用されている間に API が不要なトラフィックを受け取る場合があります。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">使用不可</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Available (使用可能)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">この設定では、デフォルトのセキュリティレベルが ​<code>Strict</code>​ に設定されます。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">後方互換性のみを目的としています。代わりに ​<code>strict</code>​ または ​<code>flexible</code>​ を使用します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">使用不可</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>strict</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ゲートキーパーのセキュリティは最大レベルに設定されます。Mule インスタンスが再起動すると、追跡対象の各リソースにポリシーが正しく適用されるまで API が ​<code>503</code>​ エラーでブロックされます。ゲートキーパーが適用されている状態で Anypoint Platform との接続が失われると、接続が再確立されるまで追跡対象リソースがブロックされます。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Available (使用可能)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Available (使用可能)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>flexible</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ゲートキーパーのセキュリティは中間レベルに設定されます。Mule インスタンスが再起動すると、API は ​<code>503</code>​ エラーでブロックされます。ゲートキーパーが適用されている状態で Anypoint Platform との接続が失われると、接続が失われている間はローカルキャッシュを使用してポリシーが適用されます。キャッシュが使用できない場合は、少なくとも接続が再確立されるまでは追跡対象リソースがブロックされます。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">v3.8.6 以降と v3.9.0 以降で使用可能</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">v4.1.0 以降で使用可能</p></td>
</tr>
</tbody>
</table>

### [](#デフォルトのゲートキーパー設定)デフォルトのゲートキーパー設定

デフォルト値でのゲートキーパーの設定を下表に示します。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>ランタイムバージョン</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>デフォルトセキュリティレベル</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>3.8.5</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Strict</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>3.8.6 以降の 3.8.x</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Flexible</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>3.9.0</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Strict</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>3.9.1 以降の 3.9.x</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Flexible</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>4.0.0</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Strict</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>4.1.0 以降</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Flexible</p></td>
</tr>
</tbody>
</table>

## [](#mule-v3-x-でのゲートキーパーの問題のトラブルシューティング)Mule v3.x でのゲートキーパーの問題のトラブルシューティング

特定の種別のポリシーでゲートキーパーの問題が発生する場合があります。

### [](#リソースレベルのポリシーが適用されてもゲートキーパーが-api-のブロックを解除しない)リソースレベルのポリシーが適用されてもゲートキーパーが API のブロックを解除しない

Mule 3.x では、RAML プロキシまたは APIkit ルーターを含む API 実装に対してのみリソースレベルポリシーを適用できます。API にリソースレベルポリシーが適用されてもゲートキーパーが API を繰り返しブロックする場合は、次の理由が考えられます。

- リソースレベルポリシーの設定時に選択した URI とメソッドの式が、RAML 定義で指定されているリソースと一致しない。
    
    このエラーを回避するには、API Manager で特定のリソースレベルポリシーを設定するときに ​`Preview Resource Matching`​ オプションを使用してください。
- Mule アプリケーションで定義されている自動検出要素で ​`apikitRef`​ 属性が指定されていない。
    
    この問題を修復するには、ルーターが使用している APIkit 設定の名前を ​`apikitRef`​ 属性に追加してください。