---
schema_version: "1"
id: 1f070b242ebd2541e4e9c038442d2b8ce16c896b757c8e7ef11196a6e7a667d4
title: サービス拒否ポリシー
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/anypoint-security/dos-policy.md
canonical_url: https://docs.mulesoft.com/jp/anypoint-security/dos-policy
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 4b909400f5f71646f3a1bb1481f412e57505e53b36719f0d81b102a8118e1b80
description: MuleSoft Documentation Site
latest: true
---
# サービス拒否ポリシー

サービス拒否 (DoS) ポリシーは、API への正当なネットワークトラフィックの妨げとなるネットワークへのフラッド攻撃を防ぎます。たとえば、悪意のあるクライアントは、リソースと帯域幅を消費するように設計された大きなペイロードをネットワークに送信する可能性があります。

DoS ポリシーを作成する場合、期間、および設定した​[エラー種別](#error_types)​が発生したときに実行するアクションを設定します。同じ IP アドレスから設定済みのしきい値を超えるエラー数が発生した場合、ポリシーは (TLS 接続を試みずに) 自動的に接続を切断するか、直ちに接続を切断して ​`503`​ エラーを返します。

DoS ポリシーは、次の 3 つの方法で要求のソースを判断します。

- TCP メッセージ - ソース IP アドレス
- ソース IP アドレスのヘッダー項目
- Proxy Protocol IP アドレス

要求のソースは IP アドレスに基づいているため、攻撃者が自分のソース IP アドレスを偽装した場合、DoS ポリシーで攻撃を防ぐことはできません。

## [](#anypoint_security_prereqs)前提条件

セキュリティポリシーを設定し、使用するには、以下が必要です。

- Anypoint Platform アカウントの Anypoint Security - Edge エンタイトルメント。
    
    **Management Center**​ に ​**\[Security (セキュリティ)\]**​ が表示されない場合は、各自のアカウントで Anypoint Security が有効になるようにカスタマーサクセスマネージャーに依頼してください。
- インバウンドトラフィックが設定された VM/ベアメタルの Runtime Fabric。Anypoint Runtime Fabric は、Mule アプリケーションや API ゲートウェイのデプロイメントおよびオーケストレーションを自動化するコンテナサービスです。
    
    [Runtime Fabric のドキュメント](https://docs.mulesoft.com/jp/runtime-fabric/1.13/index-vm-bare-metal)​を参照してください。
    
    Runtime Fabric には、Anypoint Platform Platinum 以上のレベルのサブスクリプションが必要です。
- Runtime Fabric の​[インバウンドトラフィックを有効化](https://docs.mulesoft.com/jp/runtime-fabric/1.13/enable-inbound-traffic)​し、Mule アプリケーションと API ゲートウェイがインバウンド接続でリスンできるようにします。

## [](#dos_thresholds_and_escalations)ルール、しきい値、およびエスカレーション

DoS ポリシーの設定方法を理解するには、クライアントのメッセージが DoS ポリシーによって絞り込まれるタイミングと理由を理解する必要があります。  
_タイミング_​は設定した時間枠によって決まり、​_理由_​は DoS しきい値によって決まります。

DoS ポリシーでさまざまなエラーを設定するときに、時間枠を設定できます。期間は秒単位で測定され、エラーアラートの受信後、DoS 攻撃が行われていることを確認し、設定済みのアクションを攻撃者のメッセージに適用します。  
次の DoS アクションを設定できます。

- **None (なし)**​  
    ルールを作成しない場合、アクションは実行されません。
- **Limit its messages (そのメッセージを制限)**​  
    このルールは、(指定時間枠の残りまたは無期限で) 設定した時間枠の終了まで、指定したクライアントのメッセージレートを制限します。
- **Block all messages (すべてのメッセージをブロック)**​  
    ポリシーは、(指定時間枠の残りまたは無期限で) 設定した時間枠の終了まで、すべてのクライアントのメッセージ要求を拒否します。

指定期間が終了すると、ポリシーにはシェイプ期間またはブロック期間が適用されません。  
各時間枠内で許容するエラーの数を設定できます。このエラーの数が DoS 数になります。DoS エラーの種別ごとに最大 3 つの DoS 時間枠を設定できます。各時間枠内で、設定した DoS 数が満たされるたびに、ポリシーはクライアントのメッセージ要求に対していずれかの DoS アクションを適用できます。  
たとえば、60 秒の時間枠 (1 分の期間) を設定し、その時間枠内に 2 つのプロトコルエラーが発生した場合 (DoS 数は「2」)、クライアントからのそれ以降のすべての要求が拒否される (永久にブロックするアクションを適用する) ポリシーを設定できます。

エラーごとに最大 3 つの異なるルールを設定できます。各ルールはエスカレーションレベルに対応します。 **ルール A**​ は最低のエスカレーションレベルで、​**ルール C**​ は最高のエスカレーションレベルです。  
**ルール A**​ より高いエスカレーションレベルでルールを設定する場合、その前のルール (ルール B の場合はルール A、ルール C の場合はルール B) の期間に基づいて、それらのルールの期間をセットアップできます。  
たとえば、​**ルール B**​ を​**ルール A**​ の 2 つの期間となるように設定できます。つまり、​**ルール A**​ の期間が 60 秒の場合、​**ルール B**​ の期間は 120 秒になります。  
さらに、ルールごとに異なる DoS 数を設定し、しきい値の概念を適用できます。  
各ルールには次の異なるしきい値があります。

- **ルール A**​ の場合、しきい値は​**ルール A**​ 内で DoS アクションが適用されるときの DoS 数の値です。
- **ルール B**​ の場合、しきい値は​**ルール B**​ 内で DoS アクションが適用されるときの​**ルール B**​ DoS 数の値です。  
    **ルール B**​ DoS 数は、その​**ルール B**​ 内で実行される​**ルール A**​ DoS アクションの数です。
- **ルール C**​ の場合、しきい値は​**ルール C**​ 内で DoS アクションが適用されるときの​**ルール C**​ DoS 数の値で、​**ルール C**​ DoS 数はその​**ルール C**​ 内で実行される​**ルール B**​ DoS アクションの数でもあります。

これに基づき、DoS しきい値に違反したときに時間枠のエスカレーションが発生します。

## [](#エラーとしてのポリシー違反のエスカレーション)エラーとしてのポリシー違反のエスカレーション

DoS ポリシーが設定されている場合、HTTP プロトコルエラー (悪意のあるプロトコル違反の試行)、IP 許可リスト、WAF、および HTTP 制限ポリシー違反が DoS にエスカレーションされます。API ゲートウェイによって提供される一部のポリシーも DoS にエスカレーションされます。違反とエラーのエスカレーションの具体的なマッピングは、次の表を参照してください。

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>違反</strong></th>
<th class="tableblock halign-left valign-top"><strong>エスカレーション種別</strong>​</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-center valign-middle" colspan="2"><div class="content"><div class="paragraph">
<p><strong>Anypoint Security ポリシー</strong></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>IP 許可リストポリシー</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Authentication Error (認証エラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>HTTP 制限ポリシー</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Protocol Error (プロトコルエラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-center valign-middle" colspan="2"><div class="content"><div class="paragraph">
<p><strong>エンドポイントレベルでのエラー</strong></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>エンドポイントでの HTTP プロトコルエラー</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Protocol Errors (プロトコルエラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>エンドポイントでの TLS ハンドシェイクエラー</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Protocol Errors (プロトコルエラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>転送不可能な API パスを使用する公開エンドポイントで受信した要求</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Routing Errors (ルーティングエラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-center valign-middle" colspan="2"><div class="content"><div class="paragraph">
<p><strong>API ゲートウェイで提供されるポリシー</strong></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>クライアント ID 適用</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Authentication Error (認証エラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Mule OAuth 2.0 アクセストークン</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Authentication Error (認証エラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>OpenAM OAuth 2.0 トークン適用ポリシー</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Authentication Error (認証エラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>OpenID Connect OAuth 2.0 トークン適用</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Authentication Error (認証エラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>PingFederate OAuth 2.0 トークン適用</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Authentication Error (認証エラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>基本認証: シンプル</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Authentication Error (認証エラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>基本認証: LDAP</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Authentication Error (認証エラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>IP ブロックリスト</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Content Error (コンテンツエラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>IP 許可リスト</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Content Error (コンテンツエラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>JSON 脅威保護</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Content Error (コンテンツエラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>XML 脅威保護</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Content Error (コンテンツエラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>レート制限および調整 - SLA ベースのポリシーの概念</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>QoS Error (QoS エラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>レート制限および調整</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>QoS Error (QoS エラー)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>調整およびレート制限</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>QoS Error (QoS エラー)</p>
</div></div></td>
</tr>
</tbody>
</table>

## [](#dos-ポリシーを設定する)DoS ポリシーを設定する

1. **\[Anypoint Security\]**​ に移動し、​**\[Create Policy (ポリシーを作成)\]**​ をクリックして ​**\[Denial Of Service (サービス拒否)\]**​ を選択します。  
    DoS ポリシーを適用するプロセスには 6 つの異なる画面があります。  
    
    <table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">離れる前にすべての画面を保存しないと、その画面での変更内容が失われます。</td></tr></tbody></table>
2. 左のナビゲーションバーで、​**\[General (一般)\]**​ をクリックします。
    
    1. **\[Name (名前)\]**​ 項目にポリシーの名前を追加します。
    2. **\[Rule A Time Period (ルール A の期間)\]**​ で、期間を秒単位でセットアップします。  
        この期間は、各種別のエラーで設定したエラー数が発生した場合に、ポリシーが要求をブロックし始めるしきい値です。
    3. **\[Max Sources To Monitor (監視する最大ソース数)\]**​ 項目を使用して、追跡する IP アドレスの最大数をセットアップします。  
        DoS ポリシーは最大 500,000 IP アドレスを追跡するように設定できます。
    4. **\[Reject Message Action (メッセージアクションを拒否)\]**​ ドロップダウンメニューを使用して、クライアント接続が切断されたときにポリシーが返す応答の種別を選択します。次の 2 つのオプションがあります。
        
        - **Drop Silently (自動的に切断)**​: ポリシーは接続を自動的に切断し、TLS ハンドシェイクを完全に回避する。ポリシーは、AWS ELB Proxy Protocol ヘッダーにソース IP アドレスがある TCP パケット、または TCP パケットから取得されたソース IP アドレスへの接続を回避します。ポリシーは攻撃者の要求を読み取らないため、これはクライアントの接続を終了するために最も効率的な方法です。
        - **Send HTTP 503 (HTTP 503 を送信)**​: ポリシーは接続を終了し、クライアントに ​`503 (Service Unavailable)`​ 応答を返します。これには TLS 接続が必要になり、多くのリソースを消費します。
            
            <table>
<tbody><tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
<div class="paragraph">
<p>DoS ポリシーは次の条件を満たす場合、DoS アクションを適用する前に、HTTP メッセージ内のソース IP ヘッダー (「x-forwarded-for」や「forwarded」など) に接続して読み取る必要があります。</p>
</div>
<div class="ulist">
<ul>
<li>
<p>アプリケーションがロードバランサーの背後にある。</p>
</li>
<li>
<p>ロードバランサーが Proxy Protocol V1 または AWS NLB をサポートする AWS ELB ではない。</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>これは、​<strong>[Reject Message Action (メッセージアクションを拒否)]</strong>​ で ​<strong>[Drop Silently (自動的に切断)]</strong>​ を指定しているかどうかに関わらず適用されます。</p>
</div>
</td>
</tr>
</tbody></table>
3. これで、さまざまなエラー種別に対してアクションを実行するポリシーを設定できます。

## [](#error_types)エラー種別

DoS ポリシーを設定するときに、既存のセキュリティポリシーに対応するさまざまなエラー種別を設定できます。たとえば、​**\[Protocol Errors (プロトコルエラー)\]**​ は HTTP 制限ポリシー違反に対応します。 異なるエラー種別を設定する場合、ポリシー違反がアクションの DoS ポリシーに送信 (エスカレーション) されるしきい値を設定します。「​[ルール、しきい値、エスカレーション](#dos_thresholds_and_escalations)​」を参照してください。エラーの設定方法によって、設定済みのしきい値が満たされたときに実行されるアクションが決まります。

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">エラー</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><strong>Protocol Errors (プロトコルエラー)</strong></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>クライアントが不正なプロトコルメッセージを送信した場合。</p>
</div>
<div class="paragraph">
<p>HTTP 制限ポリシー違反は ​<strong>[Protocol Errors (プロトコルエラー)]</strong>​ として DoS ポリシーにエスカレーションされます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><strong>Routing Errors (ルーティングエラー)</strong></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>クライアントがアプリケーションに正常に転送できないメッセージ要求を送信した場合。</p>
</div>
<div class="paragraph">
<p>API Manager の IP ブロックリスト/許可リストまたは RAML 検証ポリシーへの違反は、​<strong>[Routing Errors (ルーティングエラー)]</strong>​ として DoS ポリシーにエスカレーションされます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><strong>Authentication Errors (認証エラー)</strong></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>認証または承認の失敗が発生した場合。<br>
これには、SSL ハンドシェイク中にクライアントが不正な証明書を送信した場合、AAA ポリシーでの認証または承認の失敗、または WS-Security 検証ポリシーが WS-Security 署名の検証に失敗した場合が含まれます。</p>
</div>
<div class="paragraph">
<p>API Manager の LDAP、HTTP、OAuth、OpenAM、または Ping Federate 認証ポリシーへの違反は、​<strong>[Authentication Errors (認証エラー)]</strong>​ として DoS ポリシーにエスカレーションされます。<br>
IP 許可リストポリシー違反も認証エラーとしてエスカレーションされます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><strong>QoS Errors (QoS エラー)</strong></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>サービス品質 (QoS) エラーが発生した場合。<br>
たとえば、クライアントはパケットを破棄して TCP サービスを低下させ、TCP のパフォーマンスに悪影響を及ぼすことによって、多数の QoS エラーを強制的に発生させようとする可能性があります。</p>
</div>
<div class="paragraph">
<p>API Manager レベルでのレート制限、SLA ベース、または Ping Federate ポリシーへの違反は、​<strong>[QoS Errors (QoS エラー)]</strong>​ として DoS ポリシーにエスカレーションされます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><strong>Content Errors (コンテンツエラー)</strong></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>コンテンツエラーは、クライアントがスキーマに準拠しない破損データを送信したり、コンテンツ攻撃防止ポリシーに違反したりしたときに発生します。</p>
</div>
<div class="paragraph">
<p>API Manager レベルでの JSON または XML 脅威保護ポリシーへの違反は、​<strong>[Content Errors (コンテンツエラー)]</strong>​ として DoS にエスカレーションされます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><strong>WAF Errors (WAF エラー)</strong></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>WAF エラーに適用するアクション (指定期間の IP アドレスのブロックなど) を設定します。</p>
</div>
<div class="paragraph">
<p>応答または要求ルールセットへの違反は、​<strong>[WAF Errors (WAF エラー)]</strong>​ として DoS にエスカレーションされます。</p>
</div></div></td>
</tr>
</tbody>
</table>

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

- [IP 許可リストポリシー](https://docs.mulesoft.com/jp/anypoint-security/acl-policy)
- [HTTP 制限ポリシー](https://docs.mulesoft.com/jp/anypoint-security/cap-policy)
- [WAF ポリシー](https://docs.mulesoft.com/jp/anypoint-security/waf-policy)
- [WAF ポリシー用の DoS の有効化](https://docs.mulesoft.com/jp/anypoint-security/escalate-waf-to-dos)