alibabacloud-ddoscoo-intercept-query について
Alibaba Cloud の DDoS Pro によるブロックを、SLS のフルログから調査するエージェントスキルです。Request ID による検索やルール分析を行い、推奨事項を含むレポートを作成します。
主な機能
- 01DDoS Pro インスタンスとドメインの検出
- 02SLS とフルログ設定の確認
- 03Request ID によるブロックログ検索
- 04ルール分析とレポート作成
- 05ログ内の機密データのマスキング
活用シーン
- 01DDoS Pro のブロックページの調査
- 02Request ID を使ったリクエストの追跡
- 03フルログが有効かどうかの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-ddoscoo-intercept-queryインストール後、Claude Code で/alibabacloud-ddoscoo-intercept-queryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdcli-installation-guide.mdcommon-block-reasons.mddomain-security-policy.mdram-policies.mdrelated-commands.mdrule-config-details.mdrule-operations.mdverification-method.mdscripts/get_ddos_logs.py詳細
DDoS Pro(Anti-DDoS Pro)インターセプトのクエリ
シナリオの説明
SLS のフルログと ddoscoo CLI コマンドを使用して、DDoS Pro(ddoscoo)のブロック/インターセプトイベントをクエリして分析します。ユーザーから DDoS Pro によってブロックされたと報告された場合や、ブロックページが表示された場合、このスキルは DDoS インスタンスを検出し、フルログの設定を確認して、Request ID で SLS ログをクエリし、ルールの詳細を取得して、推奨事項を含む構造化された分析レポートを出力します。
アーキテクチャ:DDoS Pro Instance → Full Log (SLS) → Log Query → Rule Analysis → Report
インストール
事前確認:Aliyun CLI >= 3.3.3 が必要です
aliyun versionを実行して、バージョンが 3.3.3 以上であることを確認してください。インストールされていない場合、またはバージョンが古い場合は、 インストール手順について references/cli-installation-guide.md を参照してください。
事前確認:Aliyun CLI プラグインの更新が必要です
[MUST]
aliyun configure set --auto-plugin-install trueを実行して、自動プラグインインストールを有効にしてください。 [MUST]aliyun plugin updateを実行して、既存のプラグインを常に最新の状態にしてください。
事前確認:AI-Mode のライフサイクル
コアワークフローの開始時(CLI を呼び出す前)に: [MUST] AI-Mode を有効にする — エージェントスキルの実行には AI-mode が必要です。 CLI を呼び出す前に、次のコマンドを実行してください:
aliyun configure ai-mode enable aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query"[MUST] すべての終了時点で AI-Mode を無効にする — ワークフローの成功、失敗、エラー、ユーザーによるキャンセル、セッション終了など、理由を問わず、最終応答を返す前に必ず AI-mode を無効にしてください。AI-mode はエージェントスキルの呼び出し時のみ使用し、スキルの実行停止後も有効なままにしてはなりません。
aliyun configure ai-mode disable
事前確認:SLS CLI プラグインが必要です
[MUST] ログのクエリ操作を行う前に、SLS CLI プラグインをインストールしてください:
aliyun component install slsプラグインが使用可能であることを確認してください:
aliyun sls --help
aliyun component installが使用できない場合は、従来のコマンドを使用してください:aliyun plugin install --names aliyun-cli-sls
環境変数
追加の環境変数は必要ありません。認証は Aliyun CLI の認証情報チェーンを通じて処理されます。
認証
事前確認:Alibaba Cloud の認証情報が必要です
セキュリティルール:
- 絶対に AK/SK の値を読み取ったり、エコーしたり、表示したりしないでください(例:
echo $ALIBABA_CLOUD_ACCESS_KEY_IDは禁止です)- 絶対に 会話やコマンドラインで AK/SK を直接入力するようユーザーに求めないでください
- 絶対に リテラルの認証情報を指定して
aliyun configure setを使用しないでください- 認証情報の状態確認には 必ず
aliyun configure listのみを使用してくださいaliyun configure list出力を確認し、有効なプロファイル(AK、STS、または OAuth ID)があることを確認してください。
有効なプロファイルがない場合は、ここで停止してください。
- Alibaba Cloud コンソール から認証情報を取得します
- このセッションの外部で認証情報を設定します(ターミナルで
aliyun configureを実行するか、シェルプロファイルで環境変数を設定します)aliyun configure listに有効なプロファイルが表示されたら、戻って再実行します401 Unauthorized エラーに関する注意:
401 The security token has expiredエラーは、STS の一時認証情報の有効期限が切れたことを意味します。これは RAM 権限の問題ではありません。このセッションの外部でaliyun configureを使用して認証情報を更新してから、再試行するようユーザーに依頼してください。
RAM ポリシー
必要な権限の全一覧については、references/ram-policies.md を参照してください。
[MUST] 権限エラーへの対応: 実行中のいずれかの時点で、コマンドまたは API 呼び出しが権限エラーにより失敗した場合は、次の手順に従ってください。
references/ram-policies.mdを読み、この SKILL に必要な権限の全一覧を確認しますram-permission-diagnoseスキルを使用して、必要な権限を申請する方法をユーザーに案内します- 必要な権限が付与されたことをユーザーが確認するまで、一時停止して待ちます
パラメーターの確認
重要:パラメーターの確認 — コマンドまたは API 呼び出しを実行する前に、 ユーザーがカスタマイズできるすべてのパラメーター(例:RegionId、インスタンス名、CIDR ブロック、 パスワード、ドメイン名、リソース仕様など)をユーザーに確認する必要があります。 明示的な承認なしに、デフォルト値を推測したり使用したりしないでください。
| パラメーター名 | 必須/任意 | 説明 | デフォルト値 |
|---|---|---|---|
| Request ID | 必須 | DDoS Pro のブロック応答ページに表示される traceid | なし |
| Domain | 任意 | DDoS Pro で設定されたウェブサイトのドメイン(指定がない場合は自動検出) | 自動検出 |
| DDoS Instance ID | 任意 | DDoS Pro インスタンス ID(指定がない場合は自動検出) | 自動検出 |
| SLS Project | 任意 | SLS プロジェクト名(指定がない場合は自動検出) | 自動検出 |
| SLS Logstore | 任意 | SLS Logstore 名(指定がない場合は自動検出) | 自動検出 |
| RegionId | 任意 | DDoS Pro のリージョン:cn-hangzhou(中国本土)または ap-southeast-1(海外) | cn-hangzhou |
コアワークフロー
[MUST] 必須の API 呼び出し順序 — このスキルを呼び出すたびに、次の API 呼び出しを順番どおりに実行する必要があります。結果があらかじめわかっていると思われる場合でも、手順を省略しないでください。
- Step 2a →
ddoscoo DescribeInstances(両方のリージョン)+ ドメインが不明な場合のみ、ドメイン検出のためにDescribeWebAccessLogDispatchStatus- Step 2b →
ddoscoo DescribeSlsOpenStatus+DescribeLogStoreExistStatus+DescribeSlsLogstoreInfo- Step 2c →
ddoscoo DescribeWebAccessLogStatusのみ(ドメインはユーザーまたは Step 2a で確認済みである必要があります。この手順でDescribeWebAccessLogDispatchStatusを使用することはできません)- Step 3 →
sls GetLogs(Request ID でブロックログを検索)- Step 5 → 分析レポートを出力
[MUST] User-Agent ヘッダー — このスキル内のすべての
aliyunCLI コマンドには、呼び出し元を識別するために--header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-queryを含める必要があります。
[MUST] 機密データのマスキング — 全体ルール、すべての出力に適用 — 以下のルールは、最終レポート、中間分析、ログの引用、補足説明など、ワークフロー内のすべての出力に適用されます。マスキング済みのデータを、どの箇所でも元に戻してはなりません。
- クライアント IP:最初のセグメントだけを残し、それ以外を
*に置き換えます。すべての出力形式に適用します(JSON フィールドとプレーンテキストの段落のいずれもマスキングが必要です)。
- プレーンテキストの段落:
140.205.11.30→140.*.*.*;「IP 140.205.11.30 からのリクエスト」→「IP 140...* からのリクエスト」- JSON フィールドの引用:
"real_client_ip": "140.205.11.30"→"real_client_ip": "140.*.*.*"- Cookie/Authorization/Token:元のログフィールドを引用する場合も含め、値全体を
[MASKED]に置き換えます- クエリパラメーター:すべてのパラメーター値を
***に置き換えます。例:?token=abc&name=test→?token=***&name=***- User-Agent 文字列:先頭から 32 文字を切り出します
Step 1: 情報収集
Request ID(traceid)をユーザーに確認します。次の場所から取得するよう案内してください。
- ブラウザーに表示されたブロックページ(Request ID が直接表示されています)
- DDoS Pro のブロック(インターセプト)応答の HTML 本文(traceid が含まれています)
ユーザーがブロックされたウェブサイトを把握している場合は、ドメイン名も任意で確認します。
Step 2: DDoS Pro インスタンスの検出とフルログサービスの確認
ステップ 2a:DDoS Pro インスタンスと保護対象ドメインを検出する
# Query DDoS Pro instances (API endpoint region: cn-hangzhou for China, ap-southeast-1 for International)
aliyun ddoscoo describe-instances --page-number 1 --page-size 50 --region cn-hangzhou --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
aliyun ddoscoo describe-instances --page-number 1 --page-size 50 --region ap-southeast-1 --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
[MUST] インスタンス検出の検証 —
describe-instancesを呼び出した後、レスポンスを確認します。
Instancesが空ではない配列の場合 → インスタンスを記録し、ステップ 2b に進みます。- いずれかのリージョンで
Instancesが空([])の場合 → 先にもう一方のリージョンで再試行してから進みます。- 両方のリージョンで空が返された場合 → 処理を停止し、ユーザーに次のように伝えます:「このアカウントに DDoS Pro インスタンスが見つかりませんでした。認証情報とリージョンを確認してください。」
describe-instancesの結果がない場合は、ステップ 2b 以降に進まないでください。 インスタンスリストが空の場合、その後の SLS とログのクエリも失敗します。続行すると、空または不正確なレポートが生成されます。
[MUST] ドメイン検出 — ステップ 2c で
describe-web-access-log-statusを呼び出すには、ドメイン名が必要です。ユーザーのメッセージにドメインが指定されていない場合は、続行する前にこのステップ 2a で検出してください。# 保護対象ドメインをすべて検出します(ドメインの検出のみ — このレスポンスのログステータスは使用しないでください) aliyun ddoscoo describe-web-access-log-dispatch-status --page-number 1 --page-size 10 --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-queryレスポンスからドメイン名を抽出し、記録します。この API はドメイン名の検出にのみ使用し、ログステータスの確認には使用しません。実際のログステータスの確認は、ステップ 2c で
describe-web-access-log-statusを使用して行います。
[MUST] 国際リージョンの API エラーからの復旧:
ap-southeast-1への API 呼び出しでInvalidRosettaRegionId、400 Bad Request、または同様のリージョンレベルのエラーが返された場合:
- ワークフローを中断しないでください — 利用可能なデータを使って続行します。
- SLS 関連の操作では、国際 DDoS Pro の SLS プロジェクトは通常
ap-southeast-1ではなくcn-hangzhouでホストされ、プロジェクト名はddosdip-project-<uid>-ap-southeast-1のようになります。SLS リージョンとして、必ずcn-hangzhouを試してください。- ルールクエリ API(例:
describe-web-precise-access-rule、describe-l7-global-rule)では、ap-southeast-1で失敗した場合、cn-hangzhouエンドポイントを使用して同じ API 呼び出しを再試行します。- [MUST] リージョン API のエラーを理由に、ユーザーが依頼したクエリの手順を決して省略しないでください — 失敗を報告する前に、必ず別のリージョンを使った復旧を試みます。
ステップ 2b:SLS とすべてのログステータスを確認する
まず、SLS が有効になっているか、ログストアが存在するかを確認します。
aliyun ddoscoo describe-sls-open-status --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
aliyun ddoscoo describe-log-store-exist-status --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
次に、SLS のログストア情報(プロジェクト、ログストア、容量、TTL)を取得します。
aliyun ddoscoo describe-sls-logstore-info --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
[IMPORTANT] SLS 情報取得時のフォールバック:
describe-sls-logstore-infoがエラーを返した場合(例:ap-southeast-1で400 InvalidRosettaRegionId)、次のフォールバック方法を順番に使用します。フォールバック 1 — ドメインのログステータスから SLS 情報を取得します(ドメインが必要です)。
aliyun ddoscoo describe-web-access-log-status --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-queryレスポンスから
SlsProjectとSlsLogstoreを抽出します。フォールバック 2 — すべての SLS プロジェクトを一覧表示し、ddoscoo のものを探します。
aliyun sls list-project --region cn-hangzhou --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query名前に
ddoscooまたはddosdipが含まれるプロジェクトを探します。注:国際 DDoS Pro の SLS プロジェクトもcn-hangzhouでホストされている場合があります。
ステップ 2c:ドメインの全ログのステータスを確認する
⛔ 禁止:このステップでは
describe-web-access-log-dispatch-statusを使用しません。 ドメインの検出はステップ 2a で完了しています。このステップで許可される API 呼び出しは 1 回のみです。
この時点で、ドメイン名が判明している必要があります(ユーザーから提供されているか、ステップ 2a で検出済みです)。次を呼び出します。
aliyun ddoscoo describe-web-access-log-status --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
SlsConfigStatus=trueが返された場合は、有効になっているため、そのままステップ 3 に進みます。- 有効になっていない場合は、ユーザーに知らせて同意を得たうえで有効にします。
aliyun ddoscoo enable-web-access-log-config --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
制約:このスキルでサポートされるのは、全ログの有効化(
enable-web-access-log-config)のみです。このスキルで無効化することは許可されていません。disable-web-access-log-configは絶対に呼び出さないでください。
[IMPORTANT] 有効化時のエラー処理:
enable-web-access-log-configがエラーを返した場合:
DomainDoNotBelongToYou— このドメインは、この DDoS Pro インスタンスに設定されていません。ドメインがこのインスタンスに属していることを確認するか、もう一方のリージョン(cn-hangzhou↔ap-southeast-1)を試してください。403 Forbidden/ RAM 権限エラー — references/ram-policies.md を参照してください。[IMPORTANT] 過去のログ:全ログを有効にすると、有効化後のリクエストのみが記録されます。有効化前にブロックイベントが発生していた場合、その Request ID の SLS ログは存在しません。ユーザーに次のように伝えてください:「全ログは有効になりましたが、過去のブロックイベントは SLS から照会できません。ブロックを再現し、新しい Request ID で再試行してください。」
ステップ 3:SLS ログを照会する
[MUST] すべてのログ照会には、SLS CLI プラグイン(
aliyun sls get-logs)を使用します。
ステップ 2 で取得した SLS プロジェクト/ログストアを使用して、ブロックログを照会します。
# Query SLS logs via plugin-mode call
TO_TIME=$(python3 -c "import time; print(int(time.time()))")
FROM_TIME=$((TO_TIME - 86400))
aliyun sls get-logs \
--project <project-name> \
--logstore <logstore-name> \
--from $FROM_TIME \
--to $TO_TIME \
--query "<request-id>" \
--reverse true \
--lines 100 \
--region <sls-region> \
--header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
過去 24 時間に結果が見つからない場合は、時間範囲を段階的に広げます。
- 過去 3 日間:
FROM_TIME=$((TO_TIME - 86400 * 3)) - 過去 7 日間:
FROM_TIME=$((TO_TIME - 86400 * 7)) - 過去 30 日間:
FROM_TIME=$((TO_TIME - 86400 * 30)) - 最大(TTL に基づく):
FROM_TIME=$((TO_TIME - 86400 * <ttl_days>))
フォールバック方法 — 上記の SLS プラグインコマンドが失敗した場合(例:プラグインがインストールされていない場合)、Python スクリプトを使用します。
python3 scripts/get_ddos_logs.py \ --project <project-name> \ --logstore <logstore-name> \ --request-id <request-id> \ --region <sls-region>
注:DDoS Pro の全ログにおける SLS リージョンの対応関係:
- 中国本土のインスタンス(
cn-hangzhou):SLS プロジェクトはcn-hangzhouにあります。 - 国際インスタンス(
ap-southeast-1):SLS プロジェクトは通常、cn-hangzhouにもあります(ap-southeast-1ではありません)。プロジェクト名はddosdip-project-<uid>-ap-southeast-1のようになります。
[MUST] SLS プロジェクト名を推測しないでください。必ずステップ 2b で取得した正確なプロジェクト/ログストアの値(
describe-sls-logstore-infoまたはそのフォールバック)を使用してください。両方の API が失敗した場合は、aliyun sls list-project --region cn-hangzhou --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-queryを使用して、ddoscooまたはddosdipを含むプロジェクトを見つけてください。
ステップ 4:ルールの詳細を照会する
SLS ログを取得した後、主要フィールドを抽出してブロックの種類を特定し、該当するルール設定を照会します。
ステップ 4a:ログフィールドからブロックタイプを特定する
ブロックタイプの特定に最も重要なログフィールドは、次の 2 つです。
cc_phase— ブロックを発生させた保護モジュールを特定しますlast_owner—<rule_name>|<source>の形式です。sourceはmanual(ユーザー作成)またはclover(自動生成)です
cc_phase → ブロックタイプ → クエリ API の対応:
cc_phase の値 | ブロックタイプ | ルール詳細のクエリコマンド |
|---|---|---|
gfcc / cc | CC 保護(频率控制自定义规则) | describe-web-cc-rules-v2 |
gfacl / acl | 精密アクセス制御(精确访问控制) | describe-web-precise-access-rule |
gfai / ai | AI スマート保護(AI智能防护) | describe-web-cc-protect-switch |
gfglobal / global / gf_rule | グローバル防御ポリシー(全局防护策略) | describe-l7-global-rule |
gfbwip / blacklist | IP ブラックリスト(IP黑名单) | describe-web-rules(BlackList フィールド) |
gfareaban / region / geo | 地域ブロック(区域封禁) | describe-web-area-block-configs |
その他の便利なログフィールド:
| ログフィールド | 説明 |
|---|---|
cc_action | 実行されたアクション:block、captcha、close、watch |
cc_rule_id | 発動した特定のルール ID |
cc_blocks | リクエストがブロックされたかどうか(1 = はい) |
final_action | リクエストに対して最終的に実行されたアクション |
final_plugin | ブロックプラグイン識別子 |
traceid | リクエストのトレース ID(ブロックページの Request ID と同じ) |
matched_host | リクエストと一致したドメイン |
host | リクエストの Host ヘッダー |
real_client_ip | クライアントの実 IP アドレス |
last_owner | <rule_name>|<source> — ルールとその発生元を特定します |
isp_line | DDoS Pro の接続回線(例:電信、聯通、移動、香港、海外など)。注意:このフィールドが示すのは DDoS Pro の接続回線であり、クライアントの物理的な所在地とは異なります。レポートでは「リクエストは {isp_line} 回線経由で接続」と表現してください。クライアントの所在地と直接同一視しないでください |
ステップ 4b:ポリシーのスイッチ状態を確認する(ポリシーの事前チェック)
[必須]特定のルールをクエリする前に、まず有効になっている保護モジュールを確認してください。
aliyun ddoscoo describe-web-cc-protect-switch --domains.1 '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
すべてのスイッチ状態が返されます。主なフィールドは次のとおりです。
| フィールド | 説明 | 値 |
|---|---|---|
CcEnable | CC 保護のマスタースイッチ | 0(オフ)/ 1(オン) |
CcCustomRuleEnable | カスタム CC ルールのスイッチ | 0 / 1 |
PreciseRuleEnable | 精密アクセス制御(ACL)のスイッチ | 0 / 1 |
CcGlobalSwitch | グローバル防御のスイッチ | close / open |
AiRuleEnable | AI スマート保護のスイッチ | 0 / 1 |
AiMode | AI モード | watch / defense |
AiTemplate | AI レベル | level30 / level60 / level90 |
BlackWhiteListEnable | IP ブラックリスト/ホワイトリストのスイッチ | 0 / 1 |
RegionBlockEnable | 地域ブロックのスイッチ | 0 / 1 |
ステップ 4c:特定のルール詳細を照会する
cc_phase に基づいて、対応する API を呼び出し、ルール設定を取得します。
cc_phase = cc の場合 → CC 保護ルール:
# Query all CC rules for the domain; use --owner manual for user rules, clover for auto rules
aliyun ddoscoo describe-web-cc-rules-v2 --domain '<domain>' --offset 0 --page-size 30 --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
次に、last_owner のルール名(| より前の部分)を、応答内のルールの name フィールドと照合して、該当するルールを見つけます。
cc_phase = gfacl の場合 → 詳細アクセス制御(ACL)ルール:
aliyun ddoscoo describe-web-precise-access-rule --domains.1 '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
次に、last_owner のルール名を、応答内のルールの Name フィールドと照合して、該当するルールを見つけます。
cc_phase = ai の場合 → AI スマート保護:
# AI protection has no individual rules; check mode and level from switch status
aliyun ddoscoo describe-web-cc-protect-switch --domains.1 '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
AiMode(watch/defense)、AiTemplate(level30/60/90)、および AiRuleEnable のステータスを報告します。
cc_phase = global または gf_rule の場合 → グローバル防御ポリシー:
# Get global rule list with RuleId, Action, Enabled, Description
aliyun ddoscoo describe-l7-global-rule --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
cc_phase = blacklist の場合 → IP ブラックリスト/ホワイトリスト:
# Get blacklist and whitelist IPs from domain web rules
aliyun ddoscoo describe-web-rules --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
応答から BlackList と WhiteList の配列を抽出します。
cc_phase = region または geo の場合 → 地域ブロック:
aliyun ddoscoo describe-web-area-block-configs --domains.1 '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
Block = 1 に設定されている地域を確認します。
[IMPORTANT] ドメインが見つからない場合:ドメインの照会で
DomainNotExistが返された場合、ブロックイベントの後にドメインが DDoS Pro から削除された可能性があります。このことをユーザーに報告してください。ログは引き続き有効ですが、ルール詳細は取得できません。
ルールの作成、変更、削除、およびフィールドの参照表を含むドメインセキュリティポリシー管理の完全なリファレンスについては、references/domain-security-policy.md を参照してください。
ステップ 5:分析レポートを出力する
[MUST] 機密データのマスキング — 補足の段落を含む、このレポート内のすべてのフィールドに、Core Workflow で定義されたグローバルなマスキングルールを適用します。どのセクションでも、マスキングされたデータを復元してはなりません。
## DDoS Pro Intercept Analysis Report
### Request Information
- Request ID: {request_traceid}
- Block Time: {time}
- Client IP: {masked_real_client_ip, e.g. 192.***.***.***}
- ISP Line: {isp_line}(DDoS Pro 接入线路,非客户端实际位置)
- Domain: {matched_host}
- Request URL: {host}{request_path}?{masked_query_params}
### Block Details
- Rule ID: {final_rule_id 或 cc_rule_id;若日志中两个字段均不存在,输出 "N/A - 日志中未记录规则 ID",不可省略此行}
- Block Type: {final_plugin / cc_phase}
- Action: {final_action or cc_action}
### Recommendations
{Based on block type, refer to references/common-block-reasons.md}
トラブルシューティング
ログが見つからない
- SLS とログストアのステータスを再確認します(ステップ 2b)
- ドメインの完全ログスイッチを確認します:
aliyun ddoscoo describe-web-access-log-status --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query - 無効になっている場合は有効にします(確認してから実行):
aliyun ddoscoo enable-web-access-log-config --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query - すべてのドメインログのディスパッチステータスを確認します:
aliyun ddoscoo describe-web-access-log-dispatch-status --page-number 1 --page-size 50 --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
リクエスト ID が見つからない
- リクエスト ID の形式を確認します(通常は 30 文字以上の 16 進数です)
- スクリプトは検索範囲を最大 90 日まで自動的に拡張します
- 両方のリージョン(
cn-hangzhouとap-southeast-1)を試します describe-sls-logstore-infoでログの保持期間(TTL)を確認します
複数インスタンスのシナリオ
DDoS Pro のインスタンスは両方のリージョンにまたがる場合があります。リクエスト ID が見つかるまで、検出されたすべての SLS プロジェクトのログを照会します。
ルール操作の制約
詳しい手順については、references/rule-operations.md を参照してください。
ユーザーからルールの無効化を依頼された場合:
- まず現在のステータスを確認します(冪等性を考慮し、確認してから実行)
- 無効化のみ許可されます。ルールを削除してはなりません
- 実行前にユーザーの確認を得ます
CC ルールを無効化する:
aliyun ddoscoo disable-web-cc-rule --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
詳細アクセス制御を無効化する:
aliyun ddoscoo modify-web-precise-access-switch --domain '<domain>' --config '{"PreciseRuleEnable": 0}' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
成功確認方法
詳細な確認手順については、references/verification-method.md を参照してください。
期待される結果:リクエスト情報、ルール詳細、実行可能な推奨事項をすべて含む、インターセプト分析レポートが生成されます。
確認方法:既知のリクエスト ID で照会した後、出力にレポートテンプレート内のすべてのフィールドが含まれていることを確認します。
クリーンアップ
このスキルはデフォルトで読み取り専用であり、永続的なリソースは作成しません。次の場合を除き、クリーンアップは不要です。
- 実行中にドメインの完全ログを有効にした(ユーザーに知らせてください。このスキルは有効化のみを行い、無効化はしません)
- CC ルールを無効化した(
enable-web-cc-ruleで再有効化できます)
ベストプラクティス
- インスタンスを検出する際は、必ず両方のリージョン(
cn-hangzhouとap-southeast-1)を照会してください - [MUST] SLS のログを照会する際は、
aliyun sls get-logs(プラグインモード、ケバブケース)を使用してください - SLS のプロジェクト名やログストア名を推測しないでください。必ず
describe-sls-logstore-infoまたはdescribe-web-access-log-statusから取得してください - 結果が空になるのを防ぐため、照会前にドメインのフルログステータスを確認してください
- [MUST] 出力レポート内の機密データをマスキングしてください。クライアント IP →
first_octet.*.*.*、クエリパラメーター →***、Cookie/トークン →[MASKED] - 書き込み操作の前には、必ず冪等な確認してから実行するパターンを使用してください
- ルールは削除せず、無効化/有効化操作のみを許可してください
参考リンク
| 参考資料 | 説明 |
|---|---|
| references/ram-policies.md | RAM の権限要件 |
| references/common-block-reasons.md | 一般的なブロック理由と推奨事項 |
| references/rule-config-details.md | ルール設定フィールドの説明 |
| references/rule-operations.md | ルール操作のポリシーと制約 |
| references/domain-security-policy.md | ドメインセキュリティポリシーの管理(ルールの照会、作成、変更、削除) |
| references/related-commands.md | このスキルで使用するすべての CLI コマンド |
| references/verification-method.md | 成功確認の手順 |
| references/cli-installation-guide.md | Aliyun CLI のインストールとアップグレードガイド |