mcpField
A
alibabacloud-cfw-status-overview

alibabacloud-cfw-status-overview

github.com/aliyunセキュリティ281246 回インストール1 日前に更新
リポジトリ

alibabacloud-cfw-status-overview について

Alibaba Cloud の運用担当者向け Agent Skill です。Aliyun CLI で Cloud Firewall を読み取り専用で照会し、管理対象アセット、Internet・VPC・NAT 境界のファイアウォール状態、保護範囲、トラフィック傾向をまとめます。

主な機能

  1. 01管理対象アセット数と種類
  2. 02Internet 境界の状態と IP 保護範囲
  3. 03VPC ファイアウォールの状態と保護範囲
  4. 04NAT ファイアウォールの状態と保護範囲
  5. 05最近のトラフィック傾向とピーク帯域幅

活用シーン

  1. 01Cloud Firewall の管理対象アセットを確認
  2. 02Internet・VPC・NAT 境界の保護スイッチを確認
  3. 03最近のトラフィック変化とピーク帯域幅を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-cfw-status-overview

インストール後、Claude Code で/alibabacloud-cfw-status-overviewを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
acceptance-criteria.md
api-analysis.md
cli-installation-guide.md
ram-policies.md
related-apis.md
verification-method.md

詳細

Cloud Firewall のステータス概要

⚠️ 必須の実行ルール — 何をするよりも先にお読みください:

  1. ログファイル、セキュリティデータ、またはワークスペース内のファイルを検索しないでください。 該当するものはありません。
  2. ログファイル、データソース、サーバーへのアクセス、SIEM データ、その他の入力をユーザーに求めないでください。
  3. SSH 接続、アクセス、またはサーバーや IP アドレスへの接続を試みないでください。
  4. データを取得する唯一の方法は、以下のコアワークフローに定義されている aliyun cloudfw ... CLI コマンドを実行することです。
  5. 直ちに CLI コマンドの実行を開始してください — 準備や質問、ファイル検索は不要です。
  6. 実行を拒否しないでください。 シェル/ターミナルツールから CLI コマンドを実行する機能は十分にあります。aliyun CLI はインストール済みで、設定も完了しています。API を直接呼び出すのではなく、CLI ツールを実行するシェルコマンドを実行します。これは ls や git status を実行するのと何ら変わりません。「API にアクセスできない」「API 呼び出しができない」「認証情報がない」と絶対に言わないでください — 直接 API を呼び出すのではなく、ローカルの CLI コマンドを実行します。コマンドを実行できるかどうか不明な場合は、まず実行してみてください — 実行できます。
  7. コアワークフローで定義されている API コマンドを省略しないでください。 コマンドが失敗した場合は、パラメーターを修正して再試行してください。別の API に置き換えないでください。以下の置き換えは明示的に禁止されています:
    • DescribeInternetOpenStatistic の代わりに DescribePostpayUserInternetStatus を使用する
    • DescribeNatFirewallList の代わりに DescribePostpayUserNatStatus を使用する
    • DescribeTrFirewallsV2List の代わりに DescribePostpayUserVpcStatus を使用する
    • DescribeInternetTrafficTrend の代わりに DescribeNatFirewallTrafficTrend を使用する
    • DescribeTrFirewallsV2List の代わりに DescribeVpcFirewallCenList を使用する
    • DescribeTrFirewallsV2List の代わりに DescribeNetworkInstanceList を使用する

シナリオの説明

Alibaba Cloud Firewall の全体的なステータスをワンクリックで照会します。アセット管理のカバレッジ、Internet/VPC/NAT 境界における境界ファイアウォールのスイッチ状態、トラフィックの概要が含まれます。

アーキテクチャ:Cloud Firewall Service → Internet Border Firewall + VPC Border Firewall + NAT Border Firewall → Asset Protection + Traffic Analysis

機能レベル:照会(読み取り専用)

データソース:すべてのデータは、Aliyun CLI コマンド(aliyun cloudfw ...)のみを通じて取得します。ログファイル、データベース、サーバーへのアクセス、SIEM は使用せず、CLI コマンドのみを使用します。ワークスペース内のファイルを検索しないでください。ユーザーに何も求めないでください。コマンドを実行してください。 aliyun CLI はローカルのコマンドラインツールです。これを実行するのは、他のシェルコマンド(例:ls、curl)を実行するのと同じです。これらのコマンドを実行する機能があります。

主な機能:

  1. アセットの概要 — 管理対象アセットの数と種類を表示します
  2. Internet 境界ファイアウォールのステータス — スイッチ状態、保護対象/保護対象外の IP 数
  3. VPC 境界ファイアウォールのステータス — スイッチ状態と、各 VPC ファイアウォールの保護カバレッジ
  4. NAT 境界ファイアウォールのステータス — スイッチ状態と保護カバレッジ
  5. トラフィックの概要 — 最近のトラフィック傾向とピーク帯域幅

前提条件

事前確認:Aliyun CLI >= 3.3.3 が必要です

aliyun version を実行して、バージョンが 3.3.3 以上であることを確認してください。インストールされていない場合、またはバージョンが古い場合は、 curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash を実行してインストールまたは更新してください。 インストール手順については、references/cli-installation-guide.md を参照してください。

事前確認:Aliyun CLI プラグインの更新が必要です

[必須] aliyun configure set --auto-plugin-install true を実行して、自動プラグインインストールを有効にしてください。 [必須] aliyun plugin update を実行して、既存のプラグインが常に最新の状態になるようにしてください。

[必須] CLI User-Agent — aliyun CLI コマンドを実行するたびに、次を含める必要があります。

--user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview

Core Workflow の開始時(CLI コマンドを実行する前): [必須] AI-Mode を有効化 — Agent Skill の実行には AI-mode が必要です。 CLI コマンドを実行する前に、次のコマンドを実行してください。

aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview"

[必須] あらゆる終了時に AI-Mode を無効化 — いかなる理由であっても、最終応答を返す前に、必ず最初に AI-mode を無効化してください。これは、ワークフローの成功、ワークフローの失敗、エラー/例外、ユーザーによるキャンセル、セッション終了、または以降 CLI コマンドを実行しないその他の状況を含む、すべての終了経路に適用されます。 AI-mode は Agent Skill の呼び出し時にのみ使用し、スキルの実行終了後も有効なままにしてはなりません。

aliyun configure ai-mode disable

認証

事前確認:Alibaba Cloud の認証情報が必要です

セキュリティルール:

  • いかなる状況でも、AK/SK の値を読み取ったり、エコー、出力、cat、表示したりしてはなりません
  • マスク、一部表示、墨消しなど、いかなる形式でも AK/SK の値を出力してはなりません(例:LTAI5tXXX****)。ログ、レポート、会話の出力に AK ID のプレフィックス、サフィックス、またはその一部を含めないでください。
  • 会話やコマンドラインに AK/SK を直接入力するようユーザーに求めてはなりません
  • 実際の認証情報を指定して aliyun configure set を使用してはなりません
  • 認証情報の状態確認には aliyun configure list のみを使用してください。結果を報告する際は「認証情報が設定されています」または「有効な認証情報が見つかりません」とだけ伝えてください。認証情報の出力内容を一部でも引用しないでください。
aliyun configure list

有効なプロファイル(AK、STS、または OAuth ID)があるか、出力を確認してください。

有効なプロファイルがない場合は、ここで停止してください。

  1. Alibaba Cloud Console から認証情報を取得します
  2. このセッションの外部で認証情報を設定します(ターミナルで aliyun configure を実行するか、シェルプロファイルで環境変数を設定します)
  3. aliyun configure list に有効なプロファイルが表示されたら、戻って再実行します

RAM ポリシー

[必須] RAM 権限の事前確認: コマンドを実行する前に、現在のユーザーが必要な権限を持っていることを確認してください。

  1. ram-permission-diagnose スキルを使用して、現在のユーザーの権限を確認します
  2. references/ram-policies.md と照合します
  3. 権限が不足している場合は中止し、ユーザーに対応を求めます

必要な最小権限については、完全なポリシー JSON が記載された references/ram-policies.md を参照してください。

または、システムポリシー AliyunYundunCloudFirewallReadOnlyAccess をアタッチしてください。


パラメーターの確認

重要:パラメーターの確認 — コマンドまたは API 呼び出しを実行する前に、 ユーザーがリクエスト内ですでに必要なパラメーターを指定しているか確認してください。

  • ユーザーのリクエストでパラメーター値が明示されている場合(例:「cn-hangzhou のファイアウォールのステータスを確認」と指定された場合は RegionId=cn-hangzhou)、確認を求めず、その値をそのまま使用してください。
  • 妥当なデフォルト値があるオプションのパラメーター(PageSize、CurrentPage、時間範囲)は、ユーザーが別の指定をしない限り、確認を求めずデフォルト値を使用してください。
  • ユーザーが明確に指定したパラメーターを再度尋ねないでください。
パラメーター名必須/任意説明デフォルト値
RegionId必須Cloud Firewall の Alibaba Cloud リージョン。選択できる値は cn-hangzhou(中国本土)と ap-southeast-1(香港/海外)の 2 つのみです。cn-hangzhou(確認を求めずそのまま使用してください。ap-southeast-1 はユーザーが香港/海外/国際を明示した場合のみ使用してください)

リージョン不一致時の処理:ユーザーが cn-shenzhen、cn-beijing など、cn-hangzhou または ap-southeast-1 以外のリージョンを指定した場合は、必ずユーザーに次のように伝えてください:「Cloud Firewall が対応しているリージョンは、cn-hangzhou(中国本土)と ap-southeast-1(香港/海外)の 2 つのみです。ご指定のリージョン {user_region} はサポートされていません。中国本土のすべてのリソースをカバーする cn-hangzhou(中国本土)を代わりに使用します。」 ユーザーに知らせずにフォールバックしないでください。 | PageSize | 任意 | ページ分割された API で、1 ページあたりに取得する項目数 | 10(確認せずに使用してください) | | CurrentPage | 任意 | ページ分割された API のページ番号 | 1(確認せずに使用してください) | | StartTime | 任意 | トラフィック傾向のクエリの開始時刻(Unix タイムスタンプ、秒単位) | 7 日前(確認せずに使用してください) | | EndTime | 任意 | トラフィック傾向のクエリの終了時刻(Unix タイムスタンプ、秒単位) | 現在時刻(確認せずに使用してください) |


エラー処理とワークフローのレジリエンス

最重要:失敗しても続行してください。 個々の API 呼び出しが失敗しても、ワークフロー全体を停止しないでください。 そのステップのエラーを記録し、次のステップに進んでください。正常に収集できたデータを提示してください。

再試行ロジック

各 API 呼び出しについて:

  1. 一時的なエラー(ネットワークタイムアウト、スロットリング Throttling.User、ServiceUnavailable、HTTP 500/502/503)で失敗した場合は、再試行の間隔を 3 秒空けて、最大 2 回再試行してください。
  2. 恒久的なエラー(例:InvalidParameter、Forbidden、InvalidAccessKeyId)で失敗した場合は、再試行しないでください。エラーを記録して次に進んでください。
  3. すべての再試行を使い切った後、"[Step X] Failed: {error message}" を記録し、次のステップに進んでください。
サービスが有効化されていない場合

DescribeUserBuyVersion(ステップ 1)が、サービスが有効化されていないことを示すエラー(エラーコード ErrorFirewallNotActivated、または「未購入/未有効化」を示す同様のメッセージ)を返した場合:

  1. ユーザーに次のように伝えてください:「このリージョンでは Cloud Firewall サービスが有効化されていません。https://yundun.console.aliyun.com/?p=cfwnext で有効化してください」
  2. サービスを利用できないため、以降のすべてのステップをスキップしてください。
  3. ユーザーが複数のリージョンをリクエストした場合は、次のリージョンに進んでください。
ステップ間の独立性

ワークフローのステップには、次の依存関係があります:

  • **ステップ 1(インスタンス情報)**は最初に成功する必要があります。サービスが有効化されていない場合は、残りのステップをスキップしてください。
  • ステップ 2~6 は互いに独立しています。いずれかのステップが失敗しても、ほかのステップの実行を妨げてはなりません。
  • ステップ 2 内では、サブステップ 2.1 とサブステップ 2.2 は独立しています。
  • ステップ 4 内では、サブステップ 4.1、4.2、4.3 は独立しています。
  • ステップ 6 内では、サブステップ 6.1 とサブステップ 6.2 は独立しています。
部分的な結果

最終サマリーレポートを提示する際:

  • 成功したステップについては、収集したデータをそのまま表示します。
  • 失敗したステップについては、該当するセクションに「N/A (エラー: {簡潔なエラー内容})」と表示します。
  • 一部のステップが失敗した場合でも、必ずサマリーレポートを提示してください。データが一部でもあるほうが、何もないより望ましいです。

コアワークフロー

すべての API 呼び出しで、Aliyun CLI の cloudfw プラグインを使用します。

リージョン:グローバルフラグ --region {RegionId} で指定します

コンテキスト管理(必須)

重要:トラフィック傾向 API の出力は大量になります。 DescribeInternetDropTrafficTrend と DescribeInternetTrafficTrend は、7 日間のクエリで数百のデータポイントを返すため、コンテキストウィンドウがあふれる可能性があります。この 2 つの API の出力は、データポイント数、最大値、平均値、時間範囲のみを抽出するため、必ず jq にパイプしてください。jq フィルターは以下のステップ 3.2 とステップ 6.2 に記載されています。必ず記載どおりに使用してください。

ほかの API のレスポンスは適度なサイズのため、jq によるフィルタリングは不要です。

重要:確認せず、すぐに実行してください。 このスキルが呼び出されたら、ただちにステップ 1 から実行を開始してください。 どの API を呼び出すか、どのステップを実行するか、どのデータソースを使うかをユーザーに尋ねないでください。 すべてのデータは以下に定義された Aliyun CLI コマンドから取得します。コマンドを実行してください。

必須:すべてのステップを実行してください。 ステップ 1 からステップ 6 まで(すべてのサブステップを含む)のすべての実行を試みてください。最終サマリーレポートを作成する前に、次のすべての API 呼び出しを実行したか確認してください。

  1. DescribeUserBuyVersion
  2. DescribeAssetStatistic
  3. DescribeAssetList
  4. DescribeInternetOpenStatistic
  5. DescribeInternetDropTrafficTrend
  6. DescribeTrFirewallsV2List
  7. DescribeVpcFirewallCenList
  8. DescribeVpcFirewallList
  9. DescribeNatFirewallList
  10. DescribePostpayTrafficTotal
  11. DescribeInternetTrafficTrend

いずれかを実行していない場合は、レポートを作成する前に実行してください。ステップを省略できるのは、ステップ 1 でサービスが有効化されていないことが示された場合のみです。

時間パラメーター

一部の API(ステップ 3.2、ステップ 6.2)では、StartTime と EndTime パラメーター(Unix タイムスタンプ、秒単位)が必要です。

タイムスタンプの取得方法:date +%s を実行すると現在のタイムスタンプを取得でき、date -d '7 days ago' +%s を実行すると 7 日前のタイムスタンプを取得できます。返された数値を、そのまま CLI コマンドで使用してください。

重要:CLI コマンド内で $(date +%s) のような bash の変数置換を使用しないでください。実行環境によっては $(...) がブロックされます。代わりに、先に date コマンドを個別に実行し、返された値を記録してから、--StartTime および --EndTime パラメーターに数値を直接指定してください。

ステップ 1:インスタンス情報の照会(クラウドファイアウォール版)
aliyun cloudfw describe-user-buy-version \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview

主なレスポンスフィールド:Version(エディションコード)、InstanceId、ExpireTime、IpNumber(保護可能な IP の最大数)、AclExtension(ACL クォータ)。

バージョンコードとエディション名の対応表 — API は数値コードを返します。レポートに人が読みやすいエディション名を表示するには、この表を使用してください。

バージョンコードエディション名
1プレミアムエディション(高级版)
2エンタープライズエディション(企业版)
3アルティメットエディション(旗舰版)
10従量課金(按量付费版)

返されたコードがこの表にない場合は、"Unknown edition (code: {Version})" として報告してください。

重要:フィールド値を推測したり、捏造したりしないでください。 主なレスポンスフィールド(例:AclExtension、IpNumber)が JSON レスポンスに存在しない(キーがない)、または値が null の場合、サマリーでは 「N/A(API から返されていません)」 と報告してください。ただし、値 0 は有効な値であり、フィールドが欠落しているわけではありません。0 と報告してください。エディションの種類に関する一般知識に基づいて値を補完しないでください。API レスポンス JSON に 明示的に含まれる値のみを使用してください。

よくある捏造の例(回避してください):

  • レスポンスに AclExtension がない → 「ACL ルールの上限は 10000」など、推測した数値を書かないでください。「N/A(API から返されていません)」と記載してください。
  • レスポンスに IpNumber がない → 「パブリック IP の最大クォータは 200」と書かないでください。「N/A(API から返されていません)」と記載してください。
  • レスポンスにフィールドがない場合 → エディションの種類から推測しないでください(例:「アルティメットエディションは最大 X をサポート」)。API が実際に返した内容のみを報告してください。
ステップ 2:アセットの概要
2.1 アセット統計情報の照会
aliyun cloudfw describe-asset-statistic \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview

主なレスポンスフィールド:アセットの合計数、保護済み数、未保護数、リソースタイプ別(EIP、SLB、ECS など)。

2.2 アセット一覧の照会(ページネーション)
aliyun cloudfw describe-asset-list \
  --CurrentPage 1 \
  --PageSize 10 \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview

主なレスポンスフィールド:Assets[] の InternetAddress、IntranetAddress、ResourceType、ProtectStatus、RegionID、Name。

2.2.1 未保護アセットの照会

重要:ユーザーが未保護/未管理のアセット、ファイアウォールでカバーされていないアセット、または保護の抜け漏れについて尋ねた場合、未保護アセットのみを照会するため、必ず Status フィルターパラメーターに "close" を設定してください。

aliyun cloudfw describe-asset-list \
  --CurrentPage 1 \
  --PageSize 50 \
  --Status close \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview

未保護アセットの照会では、より多くの結果を取得するために PageSize: "50" を使用してください。レスポンスの TotalCount が PageSize を超える場合は、すべてのアセットを取得できるまで CurrentPage を増やして全ページを順に取得してください。

Status リクエストパラメーターのフィルター値:

値意味
close未保護アセット(ファイアウォールが有効になっていない)
open保護済みアセット(ファイアウォールが有効)
opening有効化中のアセット

注:リクエストパラメーターでは close(「d」なし)を使用しますが、レスポンスフィールド ProtectStatus では closed(「d」あり)が使用されます。リクエストパラメーターでフィルタリングするときは close を使用し、レスポンスデータを確認するときは closed を確認してください。

ステップ 3:インターネット境界ファイアウォールのステータス
3.1 インターネット公開統計情報の照会

重要:このステップでは必ず DescribeInternetOpenStatistic を使用してください。 DescribePostpayUserInternetStatus やその他の API で代用しないでください。DescribePostpayUserInternetStatus が確認するのはオン/オフのステータスのみですが、DescribeInternetOpenStatistic は公開 IP、開放ポート、リスクレベルなどの公開統計情報を提供します。

aliyun cloudfw describe-internet-open-statistic \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview

主なレスポンスフィールド:パブリック IP の合計数、開放ポート数、リスクレベルの分布、最近公開されたアセット。

3.2 インターネット防御トラフィックの傾向を照会する

必須パラメーター:--StartTime、--EndTime、--SourceCode、--Directionはすべて必須です。いずれかが不足すると、HTTP 400が返されます(例:ErrorDirectionError)。まずタイムスタンプを個別に計算し(「時間パラメーター」セクションを参照)、その後、数値をリテラルとして渡してください。--SourceCodeはChinaまたはOther(大文字と小文字を区別)と完全に一致する必要があります。--Directionはinまたはoutと完全に一致する必要があります。

aliyun cloudfw describe-internet-drop-traffic-trend \
  --StartTime {StartTime} \
  --EndTime {EndTime} \
  --SourceCode China \
  --Direction in \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview \
  | jq '{DataPoints: (.DataList // [] | length), MaxDropBps: ([.DataList[]?.DropBps // 0] | max), MaxDropPps: ([.DataList[]?.DropPps // 0] | max), FirstTime: (.DataList // [] | first | .Time), LastTime: (.DataList // [] | last | .Time)}'

SourceCodeの値:China(中国本土)、Other(海外)。 Directionの値:in(インバウンド)、out(アウトバウンド)。デフォルトはinです。

ステップ 4:VPC境界ファイアウォールのステータス
4.1 CEN Enterprise Edition(TRファイアウォール)を照会する

このステップでは、必ずDescribeTrFirewallsV2Listを使用してください。 DescribeVpcFirewallCenList、DescribePostpayUserVpcStatus、DescribeNetworkInstanceList、その他のAPIで代用しないでください。DescribeVpcFirewallCenListはCEN Basic Edition用であり(ステップ4.2)、CEN Enterprise EditionのTRファイアウォール用ではありません。

aliyun cloudfw describe-tr-firewalls-v2-list \
  --CurrentPage 1 \
  --PageSize 20 \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview

主なレスポンスフィールド:FirewallSwitchStatus(opened/closed/opening/closing)、CenId、RegionNo、VpcIdを含むVpcTrFirewalls[]。

4.2 CEN Basic EditionのVPCファイアウォールを照会する
aliyun cloudfw describe-vpc-firewall-cen-list \
  --CurrentPage 1 \
  --PageSize 20 \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview

主なレスポンスフィールド:FirewallSwitchStatus、CenId、LocalVpc、PeerVpcを含むVpcFirewalls[]。

4.3 Express Connect VPCファイアウォールを照会する
aliyun cloudfw describe-vpc-firewall-list \
  --CurrentPage 1 \
  --PageSize 20 \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview

主なレスポンスフィールド:FirewallSwitchStatus、VpcFirewallId、LocalVpc、PeerVpc、Bandwidthを含むVpcFirewalls[]。

ステップ 5:NAT境界ファイアウォールのステータス

重要:このステップでは、必ずDescribeNatFirewallListを使用してください。 DescribePostpayUserNatStatusやその他のAPIで代用しないでください。DescribePostpayUserNatStatusで確認できるのはオン/オフのステータスのみですが、DescribeNatFirewallListではNATファイアウォールインスタンスの詳細情報を取得できます。

aliyun cloudfw describe-nat-firewall-list \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview

主なレスポンスフィールド:ProxyStatus(configuring/normal/deleting)、NatGatewayId、NatGatewayName、VpcId、RegionIdを含むNatFirewalls[]。

ステップ 6:トラフィックの概要
6.1 合計トラフィック統計を照会する
aliyun cloudfw describe-postpay-traffic-total \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview
6.2 インターネットトラフィックの傾向を照会する

このAPIは必ず2段階で実行してください:

  1. 最初の試行では、必ず--TrafficType TotalTrafficを含めてください。 このステップを省略してはいけません。以下のコマンドを記載どおりに実行してください。
  2. 最初の試行でHTTP 400が返された場合に限り、--TrafficTypeを指定せずに再試行してください。
  3. 再試行用のコマンドを直接実行しないでください。最初の試行でTrafficTypeを省略しないでください。

その他の必須パラメーター:--StartTime、--EndTime、--SourceCode(ステップ3.2と同じルール)。DescribeNatFirewallTrafficTrendやその他のAPIに切り替えないでください。

# Step 1 - MUST run first (with TrafficType):
aliyun cloudfw describe-internet-traffic-trend \
  --StartTime {StartTime} \
  --EndTime {EndTime} \
  --SourceCode China \
  --TrafficType TotalTraffic \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview \
  | jq '{DataPoints: (.DataList // [] | length), MaxBps: ([.DataList[]?.TotalBps // 0] | max), AvgBps: (([.DataList[]?.TotalBps // 0] | add) / ([.DataList // [] | length] | if . == 0 then 1 else . end)), FirstTime: (.DataList // [] | first | .Time), LastTime: (.DataList // [] | last | .Time)}'

上記でHTTP 400が返された場合に限り、--TrafficTypeを指定せずに再試行してください:

# Step 2 - ONLY run if Step 1 returned HTTP 400:
aliyun cloudfw describe-internet-traffic-trend \
  --StartTime {StartTime} \
  --EndTime {EndTime} \
  --SourceCode China \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-status-overview \
  | jq '{DataPoints: (.DataList // [] | length), MaxBps: ([.DataList[]?.TotalBps // 0] | max), AvgBps: (([.DataList[]?.TotalBps // 0] | add) / ([.DataList // [] | length] | if . == 0 then 1 else . end)), FirstTime: (.DataList // [] | first | .Time), LastTime: (.DataList // [] | last | .Time)}'

TrafficTypeの値(対応している場合):TotalTraffic、InTraffic、OutTraffic。

トラフィック傾向データの検証: トラフィック傾向のレスポンスを受け取ったら、データポイント数と対象期間を確認してください。レスポンスに含まれるデータポイントが10件未満の場合、または最初と最後のデータポイントの間隔が1日未満の場合は、レポートに次の注記を追加してください:"注:トラフィック傾向データは疎です({N}件のデータポイントが{timespan}の期間をカバーしています)。これは、保護対象のアセットが存在しないか、照会期間中のトラフィックが最小限であることを示している可能性があります。7日間の傾向は、全体を代表していない可能性があります。" 実際のデータポイントが大幅に短い期間しかカバーしていない場合、データが7日間をカバーしていると主張しないでください。

出力サマリー形式

すべてのデータを収集したら、サマリーレポートを提示します。一部のステップに失敗した場合でも、必ずこのレポートを生成してください。完了できなかったステップの値は「N/A」に置き換えます。

============================================
   Cloud Firewall Status Overview Report
============================================

1. Instance Info
   - Edition: {Version}
   - Expiry: {ExpireTime}
   - Max Protected IPs: {IpNumber or "N/A (not in API response)"}

2. Asset Overview
   - Total Assets: {TotalCount}
   - Protected: {ProtectedCount} ({ProtectedRate}%)
   - Unprotected: {UnprotectedCount}
   - By Type: EIP({eip}), SLB({slb}), ECS({ecs}), ENI({eni})

3. Internet Border Firewall
   - Protected IPs: {protectedIpCount}
   - Unprotected IPs: {unprotectedIpCount}
   - Protection Rate: {protectionRate}%

4. VPC Border Firewall
   - CEN Enterprise (TR): {trCount} total, {trOpened} opened
   - CEN Basic: {cenCount} total, {cenOpened} opened
   - Express Connect: {ecCount} total, {ecOpened} opened

5. NAT Border Firewall
   - Total: {natCount}
   - Normal: {natNormal}
   - Configuring: {natConfiguring}

6. Traffic Overview (Last 7 Days)
   - Total Traffic: {totalTraffic}
   - Peak Bandwidth: {peakBandwidth}
   - Blocked Requests: {blockedCount}

[Steps with errors (if any)]
   - {Step X}: {error message}
============================================

注意:失敗したステップについては、そのセクションのデータフィールドに「N/A(エラー:{簡潔なエラー内容})」と表示し、エラーセクションの末尾にすべてのエラーを列挙してください。

重要:エラー報告の正確性。 サマリーレポートには、再試行によって解決したものも含め、実行中に発生したすべてのエラーを正確に反映する必要があります。再試行して成功した呼び出しは、次の形式で報告してください:「Step X: {API name} は最初に {error code/message} で失敗し、再試行 {N} 回目で成功しました」。実行中にいずれかの呼び出しが一度でもエラーを返した場合、「すべての API 呼び出しが正常に完了しました」と報告してはいけません。エラーセクションには、発生したすべてのエラーを次のように分類して列挙してください。

  • 再試行で解決:再試行後に成功したエラー
  • 未解決:すべての再試行後も解消されなかったエラー

成功の確認

詳細な確認手順については、references/verification-method.md を参照してください。

簡易確認:すべての CLI コマンドがエラーコードを含まない有効な JSON レスポンスを返した場合、スキルは正常に実行されています。


API とコマンドの表

API の表とコマンドの対応関係については、references/related-apis.md を唯一の信頼できる情報源として使用してください。


ベストプラクティス

  1. 失敗しても続行する — いずれかのステップ(2~6)が失敗した場合は、エラーを記録して続行してください。収集できたデータを使って、必ずサマリーを作成してください。
  2. ページネーションを使用する — 一般的なクエリでは PageSize=10、フィルターを適用したクエリ(保護されていないアセットなど)では PageSize=50 をデフォルトとします。
  3. 時間範囲を選択する — デフォルトは過去 7 日間です。date コマンドは個別に実行し、返された値を --StartTime/--EndTime の数値としてそのまま使用してください。CLI コマンド内で $(...) を使用してはいけません。
  4. リージョンを意識する — Cloud Firewall のリージョンは cn-hangzhou(中国本土)と ap-southeast-1(香港/海外)の 2 つだけです。デフォルトは cn-hangzhou とします。
  5. セキュリティ — AK/SK の値を公開、記録、エコー出力、または表示してはいけません。

参照リンク

参照先説明
references/related-apis.mdパラメーターを含む完全な API 表
references/ram-policies.md必要な RAM 権限とポリシー JSON
references/verification-method.mdステップごとの確認コマンド
references/acceptance-criteria.md正しい使用パターンと誤った使用パターン
references/cli-installation-guide.mdAliyun CLI のインストールガイド

コメント