alibabacloud-ddos-security-monitor について
Alibaba Cloud の DDoS 保護製品を検査するスキルです。Aliyun CLI の OpenAPI 呼び出しで資産、攻撃イベント、トラフィックを調べ、期間比較レポートを作成します。
主な機能
- 01Basic、Native、Anti-DDoS Pro/Premium の検査
- 02リージョン横断のインスタンス棚卸し
- 03攻撃イベントとトラフィックの照会
- 04期間比較とレポート作成
活用シーン
- 01アカウント内の DDoS 保護資産の確認
- 02期間ごとの攻撃とトラフィックの比較
- 03複数リージョンの検査結果の集約
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-ddos-security-monitorインストール後、Claude Code で/alibabacloud-ddos-security-monitorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdapi-reference.mdcli-installation-guide.mdcli-setup.mdram-policies.mdrelated-commands.mdreport-template.mdverification-method.md詳細
DDoS セキュリティ製品の調査と監視
このスキルは、スクリプトや SDK を一切使用せず、Aliyun CLI から OpenAPI を直接呼び出して、Alibaba Cloud アカウント内の DDoS セキュリティ製品を調査します。
アーキテクチャ:antiddos-public (Basic Protection) + ddosbgp (Native Protection) + ddoscoo (Anti-DDoS Pro/Premium) -> CLI OpenAPI -> Inspection Report
製品と API の概要
| 製品 | CLI コード | 用途 |
|---|---|---|
| DDoS Basic Protection | antiddos-public | ECS/SLB 向けのデフォルトの無料保護。リージョンパラメーター:--ddos-region-id |
| DDoS Native Protection | ddosbgp | 有料アップグレード、ネイティブの IP レベル保護。リージョンパラメーター:--biz-region-id または --region |
| DDoS Anti-DDoS Pro/Premium | ddoscoo | 専用 Anti-DDoS IP、L4/L7 保護。リージョンパラメーター:--region |
[MUST] 厳格な製品ルーティングの分離:3 つの製品の API を絶対に混在させないでください。
ddosbgpのクエリにddoscooの API を代用したり、その逆を行ったりしてはいけません。混在が検出された場合は、直ちに中止してください。[MUST] ddosbgp エンドポイントのルーティング:
ddosbgp describe-instance-listのデフォルトエンドポイントは、中国本土のリージョンをサポートしていません。すべてのdescribe-instance-list呼び出しで、必ず--endpoint ddosbgp.cn-hangzhou.aliyuncs.comを指定してください。[MUST] 混同しやすい API に関する警告:
シナリオ 正しいコマンド 誤ったコマンド(禁止) Native Protection の攻撃イベント ddosbgp describe-ddos-event(単数形)ddoscoo describe-ddos-eventsAnti-DDoS Pro の攻撃イベント ddoscoo describe-ddos-events(複数形)ddosbgp describe-ddos-event
事前確認
Aliyun CLI >= 3.3.3 が必要です — CLI インストールガイドを参照してください。 認証情報が必要です — CLI 認証情報の設定を参照してください。
aliyun configure listを実行して確認してください。 RAM 権限 — RAM 権限ポリシーを参照してください。[MUST] 権限エラーへの対応: 権限エラーが発生した場合:1)
references/ram-policies.mdを読む 2)ram-permission-diagnoseスキルを使用する 3) ユーザーが権限付与を確認するまで一時停止する。[MUST] AI モードのライフサイクル — CLI を呼び出す前に有効化し、終了するすべての時点で無効化してください:
aliyun configure ai-mode enable aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ddos-security-monitor"
パラメーターの確認
重要:ユーザーがカスタマイズできるパラメーターは、実行前にすべてユーザーに確認する必要があります。
| パラメーター | 必須/任意 | 説明 | デフォルト |
|---|---|---|---|
| 調査対象の製品範囲 | 任意 | Basic/Native/Anti-DDoS Pro。デフォルトはすべて | すべて |
| 時間範囲 | 任意 | 調査する時間帯 | 過去 24 時間 |
| 比較モード | 任意 | 前日比/前週比/カスタム | 前日比 |
| Basic Protection の instance-type | 任意 | ecs/slb/eip/ipv6/swas/waf/ga_basic | ecs |
リージョン戦略
[MUST] ddosbgp のリージョン走査(動的取得+ハードコードされたフォールバック):
- ハードコードされたベースライン(12 リージョン。減らしてはいけません):
cn-hangzhou cn-shanghai cn-beijing cn-shenzhen cn-hongkong ap-southeast-1 ap-southeast-2 ap-southeast-3 ap-southeast-5 ap-northeast-1 us-west-1 eu-central-1- 動的な拡張:
aliyun ddosbgp describe-regionsを呼び出し(ECS ではありません)、ベースラインと結合します(追加のみ。削除は禁止)。動的取得に失敗した場合は、ベースラインをそのまま使用してください。- 件数の検証:最終リストは 12 リージョン以上である必要があります。空またはエラーを理由に中断せず、すべてを走査してください。
antiddos-public:
cn-hangzhouのみからクエリします(一元管理)。 ddoscoo:cn-hangzhouとap-southeast-1の両方を必ずクエリしてください。
コア調査ワークフロー
フェーズ 1:環境、認証情報、権限の事前確認
# 1.1 Check CLI version + enable AI-Mode
aliyun version
aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ddos-security-monitor"
# 1.2 Set global timeout and enable auto plugin install
aliyun configure set --auto-plugin-install true --connect-timeout 10 --read-timeout 30
aliyun plugin update
# 1.3 Check credential configuration
aliyun configure list
# 1.4 Validate permissions (one call per product)
aliyun antiddos-public describe-instance-ip-address \
--ddos-region-id cn-hangzhou --instance-type ecs --current-page 1 --page-size 1
aliyun ddosbgp describe-instance-list --page-no 1 --page-size 1 --region cn-hangzhou --endpoint ddosbgp.cn-hangzhou.aliyuncs.com
aliyun ddoscoo describe-instances --page-number 1 --page-size 1 --region cn-hangzhou
aliyun ddoscoo describe-instances --page-number 1 --page-size 1 --region ap-southeast-1
- 正常な JSON → 権限 OK |
Forbidden.RAM/NoPermission→ RAM ポリシーを参照
[MUST] 中止ルール:事前確認が3回連続で失敗した場合は、
aliyun configure ai-mode disableを実行し、エラーレポートを出力して終了します。
フェーズ 2:製品インベントリの確認(複数リージョンの必須巡回)
[MUST] ループ規則:すべてのリージョンに対してクエリを実行する必要があります。エラー(InvalidRegionId/Empty/Throttling)が発生した場合は、ログに記録して
continueします。break/exit は禁止です。ループ後に、実行回数が ddosbgp では12以上、ddoscoo では2と等しいことを確認します。各呼び出しの直後に結果をログに記録します。記憶に頼ることは禁止です。空の結果の処理:
Total: 0→「インスタンスなし」とログに記録して続行 | エラーコード → エラーをログに記録して続行 | 正常 → インスタンス ID を抽出します。 巡回後、フェーズ 4 のためにリージョン → インスタンス ID リストの対応表を作成します。
# 2.1 Basic Protection assets
aliyun antiddos-public describe-instance-ip-address \
--ddos-region-id cn-hangzhou --instance-type ecs --current-page 1 --page-size 50
# 2.2 Native Protection - [MUST execute full loop in single bash]
BASELINE="cn-hangzhou cn-shanghai cn-beijing cn-shenzhen cn-hongkong ap-southeast-1 ap-southeast-2 ap-southeast-3 ap-southeast-5 ap-northeast-1 us-west-1 eu-central-1"
DYNAMIC=$(aliyun ddosbgp describe-regions 2>/dev/null | grep -o '"RegionId":"[^"]*"' | cut -d'"' -f4 | tr '\n' ' ')
if [ -n "$DYNAMIC" ]; then
ALL_REGIONS=$(echo "$BASELINE $DYNAMIC" | tr ' ' '\n' | sort -u | tr '\n' ' ')
else
ALL_REGIONS="$BASELINE"
fi
EXECUTED=0
for region in $ALL_REGIONS; do
# [MANDATORY] NEVER break/return/exit - on ANY error, MUST continue
echo "=== ddosbgp query $region ==="
# [CRITICAL] Must specify --endpoint for mainland China Regions
RESULT=$(aliyun ddosbgp describe-instance-list --page-no 1 --page-size 50 --region $region --endpoint ddosbgp.cn-hangzhou.aliyuncs.com 2>&1)
echo "$RESULT"
if echo "$RESULT" | grep -q "InvalidRegionId\|ErrorCode"; then
echo "[WARN] $region returned error, logged and continuing"
fi
EXECUTED=$((EXECUTED+1))
continue
done
echo "=== Regions executed: $EXECUTED ==="
# 2.3 Native Protection associated IPs (per discovered instance, uses --biz-region-id)
aliyun ddosbgp describe-pack-ip-list \
--instance-id <instance-id> --page-no 1 --page-size 50 --biz-region-id <region-id>
# 2.4 Anti-DDoS Pro instances [MUST query both Regions]
aliyun ddoscoo describe-instances --page-number 1 --page-size 50 --region cn-hangzhou
aliyun ddoscoo describe-instances --page-number 1 --page-size 50 --region ap-southeast-1
# 2.5 Anti-DDoS Pro associated domains (per discovered instance)
aliyun ddoscoo describe-domains --instance-ids <instance-id> --region <region-id>
[MUST] 終了時の検証:1)リージョン数:ddosbgp は12以上、ddoscoo は2と等しい 2)製品の分離:API プレフィックスが混在していない 3)インスタンスの重複排除:グローバルインスタンス(CoverageType=4)はすべてのリージョンに表示されるため、InstanceId で重複を排除します。
フェーズ 3:比較期間の確認
ユーザーに比較期間を尋ね、秒精度の Unix タイムスタンプに変換します。[MUST] bash の date コマンドを使用します。手動計算は禁止です:
BASE_END=$(date +%s)
BASE_START=$((BASE_END - 86400))
COMPARE_END=$((BASE_START))
COMPARE_START=$((COMPARE_END - 86400))
# Week-over-week: offset 604800s | Hour-over-hour: offset 3600s
echo "Base: $BASE_START ~ $BASE_END | Compare: $COMPARE_START ~ $COMPARE_END"
フェーズ 4:検査の実行とレポートの生成
[MUST] 順次実行ガード:各インスタンスについて、API 呼び出しチェーンを厳密に順番どおりに実行します。「計画」だけで止めないでください。すべての API について、実際に
aliyunコマンドを実行し、出力を表示する必要があります。各サブステップ(4.1/4.2/4.3)の後にecho "[Step 4.X Complete]"を出力します。すべての呼び出しを完了せずに 4.4/4.5 に進むことは禁止です。[MUST] インベントリに基づく振り分け:すべてのリージョンにインスタンスがない場合は、トレースを保持するため cn-hangzhou でプローブ呼び出し(
--instance-id dummy)を実行し、「プロビジョニングされていません」と報告します。一部のリージョンにインスタンスがある場合は、それらを検査し、空のリージョンはスキップします。製品 API の代用は絶対にしないでください。
4.1 基本的な保護の検査
# Has assets: real ID | No assets: probe call
aliyun antiddos-public describe-ddos-event-list \
--ddos-region-id <region-id> --instance-type <type> --instance-id <id> \
--current-page 1 --page-size 50
# Probe: --instance-id dummy --ddos-region-id cn-hangzhou --instance-type ecs
[必須チェックポイント 4.1] describe-ddos-event-list が JSON または明示的なエラーを返したことを確認します。実行されていない場合は、今すぐ再試行してください。確認が取れるまで 4.2 に進まないでください。
4.2 ネイティブ保護の検査(ddosbgp API のみ)
[MUST]
ddosbgpAPI のみを使用します。攻撃イベント:describe-ddos-event(単数形)。L4 トラフィック:describe-traffic(必ず呼び出してください)。リージョンパラメーター:describe-ddos-event/describe-pack-ip-list は--biz-region-id、describe-traffic は--regionを使用します。 インスタンスがある場合 → インスタンスごとに3つすべての API を呼び出します | すべてのリージョンが空の場合 → cn-hangzhou で3つのプローブ呼び出しを実行します(すべて必須)
aliyun ddosbgp describe-ddos-event \
--instance-id <id> --start-time <ts> --end-time <ts> \
--page-no 1 --page-size 50 --biz-region-id <region-id>
aliyun ddosbgp describe-pack-ip-list \
--instance-id <id> --page-no 1 --page-size 50 --biz-region-id <region-id>
aliyun ddosbgp describe-traffic \
--instance-id <id> --start-time <ts> --end-time <ts> --region <region-id>
# Probe: --instance-id dummy, --biz-region-id cn-hangzhou (describe-traffic: --region cn-hangzhou)
[必須チェックポイント 4.2] ターミナル出力を確認し、ddosbgp API 3つすべてが実際に実行されたことを確認してください。describe-ddos-event、describe-pack-ip-list、describe-traffic のいずれかにターミナル出力がない場合は、処理を停止し、不足している呼び出しを今すぐ実行してください。3つすべての完了に2回連続で失敗した場合は、エラーログを出力して終了します。3つすべての実行を確認するまで 4.3 に進まないでください。
4.3 Anti-DDoS Pro/Premium の検査(ddoscoo API のみ)
[MUST]
ddoscooAPI のみを使用します。インスタンスがある場合 → インスタンスごとにすべての API を呼び出します | どちらのリージョンにもインスタンスがない場合 → cn-hangzhou でプローブ呼び出しを実行します
aliyun ddoscoo describe-ddos-events \
--instance-ids <id> --start-time <ts> --end-time <ts> \
--page-number 1 --page-size 50 --region <region-id>
aliyun ddoscoo describe-domain-qps-list \
--start-time <ts> --end-time <ts> --interval 300 --region <region-id>
aliyun ddoscoo describe-port-flow-list \
--instance-ids <id> --start-time <ts> --end-time <ts> \
--interval 300 --region <region-id>
aliyun ddoscoo describe-domain-status-code-list \
--start-time <ts> --end-time <ts> --interval 300 \
--query-type gf --region <region-id>
aliyun ddoscoo describe-domain-status-code-list \
--start-time <ts> --end-time <ts> --interval 300 \
--query-type upstrem --region <region-id>
# Probe: --instance-ids dummy, --region cn-hangzhou (same 5 APIs)
[必須チェックポイント 4.3] ddoscoo API 5つすべてにターミナル出力があることを確認してください。不足があれば、今すぐ実行します。4.4 に進まないでください。
4.4 期間比較分析
変化率 =(基準値 - 比較値)/ 比較値 × 100%。しきい値:±30%~±100% → 要注意 | ±100%超 → 異常 | ブラックホール/スクラビングが発生 → 異常。
4.5 レポートの出力
必須:レポートテンプレートに従い、セクションを省略しないでください。アセットはリージョンごとにまとめてください。
[必須] データ整合性の検証:
- 集計:概要の数値は、詳細リストの件数と完全に一致している必要があります
- 重複排除:複数のリージョンに同じインスタンス/IPがある場合は、集計前に重複を排除してください
- 空の値の注記(厳守):空の配列
[]は、0 (API returned empty)またはQuery failed (ErrorCode: XXX)と記載してください。「異常は見つかりませんでした」「誤検知のようです」などの曖昧な表現は禁止です。データが空の主要指標には、セクションの冒頭に[DATA MISSING]タグを必ず付けてください- 相互検証:概要の合計 = リージョンごとの詳細の合計
- 呼び出し記録の検証:API の呼び出しや結論の記載は、実際の実行内容と一致している必要があります。捏造は禁止です
- 生データとの照合:端末出力の値を正確にコピーしてレポートに記載してください。記憶から推測したり、API がドメインを返したのに「ドメインなし」と記載したりすることは禁止です。確定前に
grep/jqで検証してください[必須] 事前計算の検証(重大な阻止条件): [厳格モード] 値を事前に埋めた状態で
echo "<number>"を直接実行することは禁止です。これは捏造とみなされます。実際の端末出力または保存済みログを解析するために、必ずgrep/jq/wcを使用してください。検証スクリプトには、実データを抽出するパイプコマンドを含める必要があります。ハードコードした echo 文は使用しないでください。# [厳格] 端末履歴から API 呼び出し数をカウントします。ハードコードした echo ではなく grep を使用する必要があります echo "=== Call statistics ===" # 例:grep -c "aliyun antiddos-public" /path/to/terminal.log(ログの方法に合わせて調整してください) echo "antiddos-public: $(grep -c 'antiddos-public' <<< "$TERMINAL_LOG")" echo "ddosbgp: $(grep -c 'aliyun ddosbgp' <<< "$TERMINAL_LOG")" echo "ddoscoo: $(grep -c 'aliyun ddoscoo' <<< "$TERMINAL_LOG")" # [厳格] API レスポンスからアセット数をカウントします。ハードコードではなく jq/grep を使用する必要があります echo "=== Asset statistics (from API JSON responses) ===" # 実際の JSON 出力を解析します。例:jq '.InstanceList | length'、jq '.DomainList | length'出力にはパイプコマンド(
grep、jq、wc -l)を含めてください。パイプを使わないecho "number"のみの出力は捏造とみなされ、処理を中止します。 レポート案との不一致がある場合は処理を中止し、ログを再確認して再実行してください。検証出力の一部をレポートに必ず引用してください。
クリーンアップ
[必須] 終了時の必須保護措置:終了理由(成功、失敗、キャンセル、タイムアウト)にかかわらず、最後に必ず AI-Mode の無効化と検証を実行してください。最優先事項であり、上書きできません。
aliyun configure ai-mode disable
# Verify: try status command, if unsupported fall back to configure list
VERIFY=$(aliyun configure ai-mode status 2>&1)
if echo "$VERIFY" | grep -q "not a valid\|unknown\|error"; then
# Fallback: check via configure list output
aliyun configure list | grep -i "ai-mode\|agent"
fi
# If still uncertain, run disable again to be safe
aliyun configure ai-mode disable
[必須] 検証に成功した場合のみ、「AI-Mode confirmed disabled」と記載してください。
statusとconfigure listのどちらでも確認できない場合は、「AI-Mode disable executed but verification inconclusive (CLI compatibility issue)」と記載し、確認済みだと主張しないでください。
参考資料
| リソース | パス |
|---|---|
| CLI インストールガイド | references/cli-installation-guide.md |
| RAM 権限ポリシー | references/ram-policies.md |
| API パラメーターリファレンス | references/api-reference.md |
| CLI コマンド一覧 | references/related-commands.md |
| 点検レポートテンプレート | references/report-template.md |
| 検証方法 | references/verification-method.md |
| 受け入れ基準 | references/acceptance-criteria.md |