指定されたディメンションで集約およびソートされた攻撃トラフィックの上位 N 件の統計情報を照会します。
操作説明
攻撃トラフィックとは、ルールヒット数があり、リスクありと識別されたリクエストを指します。以下の 3 種類のデータは除外されます。
ホワイトリストルールにヒットしたリクエスト。
ボットルールにヒットしたが、ルールの操作が「back-to-origin marking」に設定されているリクエスト。
操作が「動的トークン」、「スライダー」、「strict スライダー」、または「JS 認証」に設定されたルールにヒットしたが、ユーザーが検証を通過し、リクエストが許可された場合。
今すぐお試しください
テスト
RAM 認証
|
アクション |
アクセスレベル |
リソースタイプ |
条件キー |
依存アクション |
|
yundun-waf:DescribeSecurityEventTopNMetric |
get |
*All Resource
|
|
なし |
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| InstanceId |
string |
必須 |
WAF インスタンスの ID。 説明
DescribeInstance を呼び出して、現在の WAF インスタンスの ID をクエリできます。 |
waf_cdnsdf3**** |
| Filter |
object |
必須 |
クエリのフィルター条件。複数のフィルター条件は論理 AND を使用して評価されます。 |
|
| DateRange |
object |
必須 |
クエリの時間範囲。 |
|
| StartDate |
integer |
必須 |
データのクエリ有効値は過去 30 日を超えることはできません。データのクエリに使用される開始時刻で、UNIX タイムスタンプとして表されます。単位: 秒。 説明
開始時刻は、現在時刻から 30 日を引いた時間より後である必要があります。 |
1713888000 |
| EndDate |
integer |
必須 |
データのクエリに使用される終了時間で、UNIX タイムスタンプとして表されます。単位: 秒。 |
1713888600 |
| Conditions |
array<object> |
任意 |
フィルター条件のリスト。各ノードは 1 つのフィルター条件を表します。 |
|
|
object |
任意 |
単一のクエリ条件の構成。クエリ条件は、フィールド名、演算子、および フィルター値 で構成されます。クエリ条件でサポートされるフィールド名と演算子については、「リクエストパラメーターの補足説明」をご参照ください。 |
||
| Key |
string |
任意 |
フィルター操作が実行されるフィールド名。この操作はすべてのフィールドをサポートします。 |
matched_host |
| OpValue |
string |
任意 |
演算子。 |
eq |
| Values |
any |
任意 |
フィルター値。 |
test.waf-top |
| Limit |
integer |
必須 |
統計情報が降順にソートされた後に返されるデータエントリ数。最大値: 10。 |
10 |
| Metric |
string |
必須 |
返すデータのタイプを指定します。異なる Metric の値は異なるデータ内容に対応します。この API オペレーションでは、以下の Metric の値がサポートされています。 説明
「攻撃リクエスト」の解像度は、API オペレーションの説明に記載されています。以下の説明はこの概念をリファレンスしています。
|
real_client_ip |
| RegionId |
string |
任意 |
WAF インスタンスがデプロイされているリージョン。有効な値:
|
cn-hangzhou |
| ResourceManagerResourceGroupId |
string |
任意 |
Alibaba Cloud リソースグループの ID。 |
rg-acfm***q |
演算子の説明
| 演算子 | 意味 | 説明 |
| all-not-match | どの値にも等しくない | フィールド値がデータセット内のどの値とも等しくありません。たとえば、セット内のどの値とも等しくない real_client_ip をフィルターするには:{"Key":"real_client_ip","OpValue":"all-not-match","Values":["1.1.1.1","2.2.2.2","3.3.3.3"]} |
| contain | 含む | フィールド値に特定の文字列が含まれています。たとえば、URL に「test」が含まれるデータをフィルターするには:{"Key":"request_path","OpValue":"contain","Values":"test"} |
| eq | 等しい | フィールド値が特定の文字列と等しいです。たとえば、URL が「/testcase」であるデータをフィルターするには:{"Key":"request_path","OpValue":"eq","Values":"/testcase"} |
| match-one | 複数の値のいずれかに等しい | フィールド値がデータセット内のいずれかの値と等しいです。たとえば、セット内のいずれかの値と等しい real_client_ip をフィルターするには:{"Key":"real_client_ip","OpValue":"match-one","Values":["1.1.1.1","2.2.2.2","3.3.3.3"]} |
| ne | 等しくない | フィールド値が特定の文字列と等しくありません。たとえば、URL が「/testcase」ではない統計情報をフィルターするには:{"Key":"request_path","OpValue":"ne","Values":"/testcase"} |
| not-contain | 含まない | フィールド値に特定の文字列が含まれていません。たとえば、URL に「test」が含まれないデータをフィルターするには:{"Key":"request_path","OpValue":"not-contain","Values":"test"} |
| prefix-match | プレフィックスマッチ | フィールド値が特定の文字列で始まります。たとえば、URL が「/testcase」で始まるデータをフィルターするには:{"Key":"request_path","OpValue":"prefix-match","Values":"/testcase"} |
| suffix-match | サフィックスマッチ | フィールド値が特定の文字列で終わります。たとえば、URL が「/testcase」で終わるデータをフィルターするには:{"Key":"request_path","OpValue":"suffix-match","Values":"/testcase"} |
フィルター条件でサポートされるキー
| フィールド名 | フィールドの説明 | サポートされる演算子 |
| action | 保護操作。リクエストに対して実行される最終的な操作です。 | ne, eq |
| cluster | 保護クラスター。 | ne, eq, match-one, all-not-match |
| defense_scene | 保護モジュール。1 つのリクエストが複数の保護モジュールに一致する場合があります。このフィールドでフィルターされたリクエストは、他のモジュールにも一致する可能性があります。 | ne, eq |
| host | HTTP ヘッダー内のホスト。 | contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, suffix-match |
| http_cookie | HTTP ヘッダー内の Cookie。 | contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, suffix-match |
| http_user_agent | HTTP ヘッダーから取得した User-Agent。 | contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, suffix-match |
| matched_host | 保護対象。 | ne, eq, match-one, all-not-match |
| real_client_ip | リクエストのソース IP アドレス。演算子の後のパラメーターには、IP アドレス文字列または IP アドレス文字列のリストのみを指定できます。CIDR ブロックのクエリはサポートされていません。 | ne, eq, match-one, all-not-match |
| remote_country_id | HTTP リクエストのソース IP アドレスが属する国。 | ne, eq, match-one, all-not-match |
| remote_region_id | HTTP リクエストのソース IP アドレスが属する省または市。 | ne, eq, match-one, all-not-match |
| request_method | HTTP リクエストメソッド。 | ne, eq, match-one, all-not-match |
| request_path | クエリ文字列を除く HTTP リクエスト URL。 | contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, suffix-match |
| request_traceid | リクエストを識別する一意の ID。 | ne, eq, match-one, all-not-match |
| rule_id | ルール ID。1 つのリクエストが複数のルールに一致する場合があります。このフィールドでフィルターされたリクエストは、他のルールにも一致する可能性があります。 | ne, eq |
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
object |
返されたデータ結果。フォーマットの例については、「例」をご参照ください。 |
||
| RequestId |
string |
リクエスト ID。 |
D827FCFE-90A7-4330-9326-*****B4C7726 |
| SecurityEventTopNValues |
array<object> |
上位 N 件の統計情報の配列。 |
|
|
object |
各要素は上位 N 件の統計情報エントリに対応します。 |
||
| Name |
string |
特定のフィールドの値。意味はクエリされた Metric によって異なります。 |
10000 |
| Attribute |
string |
ルール ID が属する保護モジュールなどの追加情報。フォーマットは上記のとおりです。 |
waf_base |
| Value |
integer |
上位 N 件のソートに使用される統計カウント。 |
1111 |
| TopNMetaData |
object |
返されたデータのメタデータ。 |
|
| DateRange |
object |
クエリに使用された時間範囲。 |
|
| StartDate |
integer |
クエリされた時間範囲の開始時刻。値は UNIX タイムスタンプです。単位: 秒。この値は `StartDate` リクエストパラメーターと同じです。 |
1713888000 |
| EndDate |
integer |
クエリされた時間範囲の終了時刻。値は UNIX タイムスタンプです。単位: 秒。この値は `EndDate` リクエストパラメーターと同じです。 |
1713888600 |
| Units |
string |
返される統計情報の単位。 |
requests |
例
成功レスポンス
JSONJSON
{
"RequestId": "D827FCFE-90A7-4330-9326-*****B4C7726\n",
"SecurityEventTopNValues": [
{
"Name": "10000",
"Attribute": "waf_base\n",
"Value": 1111
}
],
"TopNMetaData": {
"DateRange": {
"StartDate": 1713888000,
"EndDate": 1713888600
},
"Units": "requests\n"
}
}
エラーコード
|
HTTP ステータスコード |
エラーコード |
エラーメッセージ |
説明 |
|---|---|---|---|
| 400 | Waf.Report.%s | Invalid parameter:%s. | 無効なパラメーター: %s。 |
| 400 | Waf.Report.InternalError | Server error occurred in report service. | レポートサービスで内部エラーが発生しました。 |
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。