mcpField
A
alibabacloud-cfw-acl-diagnosis

alibabacloud-cfw-acl-diagnosis

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

alibabacloud-cfw-acl-diagnosis について

Alibaba Cloud Cloud Firewall の ACL ルールを調査する読み取り専用スキルで、ポリシーや通信状況を確認する運用者向けです。ファイアウォールの種類に応じてルール、アセット状態、通信ログを確認し、実際の CLI 応答に基づいて診断します。

主な機能

  1. 01読み取り専用の ACL ルール診断
  2. 02Internet、NAT、VPC ファイアウォールに対応
  3. 03ルール、アセット、状態の順次確認
  4. 04条件を満たした場合の通信ログ照会
  5. 05CLI 結果に基づくレポート

活用シーン

  1. 01ルール無効化や通信遮断の調査
  2. 02保護対象アセットとルールの適合確認
  3. 03通信ログで許可・拒否結果を確認

インストール

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

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

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

同梱ファイル

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

references/
cfw_acl_knowledge.md
cli_commands.md
cli_traps.md
configuration_guide.md
diagnosis.md
execution_standards.md
ram-policies.md
security_rules.md

詳細

クラウドファイアウォール ACL ルールの診断(読み取り専用)

⚠️ 読み取り専用の制約(最優先)

ワークフロー全体を通じて、以下を厳禁とします:

  • ❌ Create/Update/Delete API 呼び出しや、書き込みを行う CLI コマンドを実行しないでください
  • ❌ 特定のパラメーター値を指定した、実行可能な設定コマンドを提示しないでください
  • ❌ CLI コマンドで --profile パラメーターを使用しないでください
  • ❌ aliyun configure get や aliyun configure list を実行しないでください
  • ❌ CLI の出力を捏造しないでください。実際の API レスポンスのみを使用してください
  • ❌ 少なくとも 1 つの CLI クエリが成功するまで、診断レポートを出力しないでください
  • ❌ メモリー、経験、外部知識を参照しないでください。参照できるのはこの SKILL.md と CLI の出力のみです
  • ❌ いかなる方法でもファイルを作成しないでください。write_file、create_file、Bash のリダイレクト(>、>>、tee)、その他のファイル書き込み手段を使用しないでください

出力前の厳格なセルフチェック(返信を生成する前に必ず実施):

返信を書く前に、内部で確認してください。write_file、create_file、または Bash のリダイレクトを呼び出しましたか?「はい」の場合 → ファイル出力を直ちに中止し、内容を Markdown テキストとして会話に直接出力してください。このルールに違反すると、タスクはただちに失敗します。

すべての診断レポートは、必ず次の行から始めてください:

⚠️ Disclaimer: This tool is a read-only diagnostic assistant. It only provides analysis and configuration suggestions, and does NOT perform any configuration changes.

トリガーとサービスの特定

意図の分類(最初のステップ — 何かを行う前に進む経路を決定してください)
ユーザーの意図キーワードアクション
設定に関する問い合わせ"how to configure" / "configuration steps" / "how to set up" / "rule writing" / "configuration guide"→ CONFIG 経路:references/configuration_guide.md を読み、手順を会話に直接出力してください。CLI コマンドも、ファイアウォールへのクエリも実行しないでください。
診断/トラブルシューティング"not working" / "no effect" / "blocked" / "HitTimes=0" / "traffic log" / "troubleshoot"→ 診断経路:提供済みの情報を使って、ただちにステップ 0 を開始してください。追加情報を待たないでください。
"Security Group"—このスキルの対象外です(aliyun ecs コマンドを使用してください)
修飾語のない "firewall"—Cloud Firewall か Security Group かを確認してください。

CONFIG 経路の出力ルール:設定手順はテキストとして会話に直接出力してください。内容は references/configuration_guide.md を参照してください。CLI コマンドは実行しないでください。


可観測性

このスキルで実行する Alibaba Cloud サービスへのすべての呼び出しでは、すべての診断ワークフローを追跡できるよう、以下の User-Agent(UA)テンプレートとセッション ID のルールを使用する必要があります。

User-Agent テンプレート
AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}
  • {{SESSION_ID}} は、実行時に実際のセッション識別子に置き換えてください。
  • ドキュメントやコマンド例では、プレースホルダーの形式を維持する必要があります。
セッション ID の生成ルール
  1. 各診断ワークフローの開始時に、一意のセッション識別子を 1 つ生成してください。
  2. 形式:小文字の UUIDv4(例:a1b2c3d4-e5f6-7890-abcd-ef1234567890)。
  3. そのワークフロー内の Alibaba Cloud サービス CLI コマンドには、すべて同じセッション IDを使用してください。
  4. 別のワークフローや別のユーザーとの会話で、セッション ID を再利用しないでください。
適用範囲のルール
  • Alibaba Cloud サービス API の呼び出し(例:aliyun cloudfw describe-*、aliyun sls get-logs-v2、aliyun actiontrail lookup-events)には、--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}" を含める必要があります。
  • which aliyun、aliyun version、aliyun plugin list、aliyun plugin update などのローカル/システムコマンドは Alibaba Cloud サービス API を呼び出さないため、--user-agent を追加してはいけません。

セットアップ

前提条件の確認
which aliyun && aliyun version
aliyun plugin list  # Confirm aliyun-cli-cloudfw installed

プラグインがない場合はインストール(実行前にユーザーの明示的な確認が必要です):aliyun plugin install cloudfw
認証情報:ALIBABA_CLOUD_ACCESS_KEY_ID / ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数。references/ram-policies.md を参照してください。
リージョン:常に cn-hangzhou を使用してください(Cloud Firewall はグローバルサービスです。リージョンについてユーザーに質問しないでください)。


ファイアウォールの種類の特定

シナリオファイアウォールの種類主なパラメーター
パブリック IP、EIP、インターネットのインバウンド/アウトバウンドインターネットファイアウォールFirewallId なし(グローバル)
VPC 間アクセス、CEN、専用線接続VPC 境界ファイアウォールVpcFirewallId
NAT Gateway、SNAT/DNATNAT 境界ファイアウォールNatFirewallId

主な違い:

  • インターネット FW:--Direction <in|out> が必須。アセットレベルの EngineMode(strict/loose)
  • NAT FW:Direction なし。ファイアウォールレベルの StrictMode(0=loose、1=strict)。ドメインルールをサポート
  • VPC FW:Direction なし。strict モードなし。ドメインルールなし(レイヤー 4 のみ)

保護対象アセットの特定:

  • インバウンド(in)→ 保護対象アセット=宛先
  • アウトバウンド(out)→ 保護対象アセット=送信元(内部 CIDR ではなくパブリック IP)

診断フロー(必須順序)

プロセス:Step 0 → Step 1 → Step 2 (3 checks) → [ANY FAIL: output conclusion, STOP] → Step 3 → Step 4 → Report

🔴 Step 2 が完了する前は禁止:エンジンモードに言及する、結論を述べる、解決策を提案する、またはいずれかの CLI クエリを省略することは禁止です。


Step 0:保護対象アセットの特定

ユーザーのメッセージから抽出します。ユーザーがすでに提示した情報を再度尋ねないでください:

  • ファイアウォールの種類、方向(in/out)、対象 IP/ドメイン
  • 上記の保護対象アセットのルールを適用します

Step 1:ルールの照会(CLI を必ず実行。捏造禁止)
ファイアウォールコマンド
インターネットaliyun cloudfw describe-control-policy --Direction <in|out> --CurrentPage 1 --PageSize 50 --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}"
NATaliyun cloudfw describe-nat-firewall-control-policy --NatFirewallId <ID> --CurrentPage 1 --PageSize 50 --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}"
VPCaliyun cloudfw describe-vpc-firewall-control-policy --VpcFirewallId <ID> --CurrentPage 1 --PageSize 50 --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}"

記録する項目:Source、Destination、DestinationType、AclAction、Order、Release。

セルフチェック:CLI コマンドをまだ実行していない場合は、処理を停止し、続行する前に今すぐ実行してください。


ステップ 2:事前チェック(3 項目すべてを順番に実施 — スキップ禁止、推測禁止)

チェック 2.1:アセット/ファイアウォールの状態

  • インターネット FW:aliyun cloudfw describe-asset-list --CurrentPage 1 --PageSize 50 --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}"
    • ProtectStatus=open ✅ | その他の値 ❌(ルールが機能しない最も一般的な原因)
    • EngineMode を記録:strict / loose
  • NAT FW:aliyun cloudfw describe-nat-firewall-list --PageNo 1 --PageSize 50 --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}"
    • ファイアウォールが存在し、状態が正常であることを確認し、StrictMode を記録:0=loose / 1=strict
  • VPC FW:aliyun cloudfw describe-vpc-firewall-list --CurrentPage 1 --PageSize 50 --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}"
    • ファイアウォールが存在し、状態が正常であることを確認

チェック 2.2:ポリシーとアセットの一致

  • 送信元/宛先が保護対象のアセットをカバーしていること、方向が正しいこと
  • ユーザーの対象ドメイン ≠ ルールのドメインの場合 → 設定の不一致 — 明示的に強調

チェック 2.3:ルールが有効

  • Release=true ✅ | Release=false ❌

🔴 必須停止ポイント — ステップ 2 分岐ゲート — 即時停止

いずれかのチェック結果が FAIL の場合:

  1. 直ちに停止 — ステップ 3 またはステップ 4 の CLI コマンド(describe-traffic-log など)を実行しないでください
  2. 禁止事項:この時点以降、追加の CLI コマンドを呼び出すこと
  3. 出力形式セクションに直接進み、今すぐ最終レポートを作成してください
  4. FAIL の後にステップ 3/4 に進むことは、タスク失敗の原因となる重大な違反です

すべてのチェックが PASS の場合 → ステップ 3 に進みます。

権限拒否時の処理:ブロックされたチェックを記録し、[Blocked - Permission Denied] とマークして、残りのチェックを続行します(ステップ 3/4 には進みません)。ブロックされたチェックをすべて最終レポートに記載してください。


ステップ 3:トラフィックログの照会(ステップ 2 がすべて PASS の場合のみ)
# Internet FW
aliyun cloudfw describe-traffic-log --FirewallType InternetFirewall --Direction <in|out> \
  --SourceCode yundun [--StartTime <unix>] [--EndTime <unix>] [--SrcIP <ip>] [--DstIP <ip>] \
  --CurrentPage 1 --PageSize 10 --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}"

# NAT FW
aliyun cloudfw describe-traffic-log --FirewallType NatFirewall --SourceCode yundun \
  [--StartTime <unix>] [--EndTime <unix>] \
  --CurrentPage 1 --PageSize 10 --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}"

重要:SourceCode=yundun が必須です。FlowType は設定しないでください(結果が返らなくなります)。RuleResult:0=許可、2=拒否。
ユーザーが時間/IP のパラメーターを指定した場合、必ず含めてください。すべてを照会してから手動で絞り込んではいけません。


ステップ 4:詳細な診断(ステップ 2 がすべて PASS の場合のみ)

インターネット FW:

  1. EngineMode=loose + ドメインルール → ドメインが一致しない → strict モードに切り替え
  2. strict + ドメインルール → telnet ではなく curl/wget でテスト(telnet ではドメイン認識をトリガーできません)
  3. ログの AclPreState=app_unknown → L7 の事前マッチ。アプリケーションがまだ識別されていません

NAT FW:

  1. StrictMode=0 + ドメインルール → ドメインが一致しない(根本原因の可能性が高い)
  2. SNAT 後の実際の送信元 IP を確認。同じ L7 ルールがインターネット FW と同様に適用されます

診断の全体的な枠組み、L7 の事前マッチの仕組み、トラブルシューティングのチェックリストについては、references/diagnosis.md を参照してください。


出力形式

厳守する書式指示 — 出力を一語でも書く前に必ずお読みください:

  • 出力は以下のテンプレートに正確に従う必要があります — 追加の見出し、挨拶、背景説明の段落は禁止です
  • 出力全体は 30 行以内にしてください。内容が 30 行を超える場合は、自動的に切り詰めてください:
    • 診断の結論:最大 1 行
    • 事前チェック結果テーブル:5 行以内
    • 修正案:箇条書き 3 項目以内
    • 検証方法:1 行
    • これらの制限を超える説明文はすべて削除
  • ❌ 出力をファイルに書き込まないでください — Markdown テキストとして会話に直接出力してください
⚠️ Disclaimer: This tool is a read-only diagnostic assistant. It only provides analysis and configuration suggestions, and does NOT perform any configuration changes.

## Diagnosis Conclusion
[One-sentence root cause, max 50 characters]

## Pre-check Results (Step 2)
| Check Item | Actual CLI Value | Status |
|-----------|------------------|--------|
| ProtectStatus | [from describe-asset-list] | PASS/FAIL |
| EngineMode / StrictMode | [value] | loose/strict |
| Traffic Direction | [in/out] | PASS/FAIL |
| Release | [true/false] | PASS/FAIL |
| Policy Match | [analysis] | PASS/FAIL |

## Remediation Suggestions
[Console operation steps, one per line, max 3 items]

Verification Method: [one-line description]

ルール:

  • ❌ 出力をファイルに書き込まないでください — 結果はすべて会話にテキストで直接出力してください
  • レポート内の UUID/IP/値はすべて CLI 出力からコピー&ペーストしてください(記憶を頼りに入力しないでください)
  • 検出結果を分類してください:[Verified](CLI で確認済み)/[Unverified](理論上のもの)/[Blocked](権限拒否)
  • TotalCount > PageSize の場合、「すべてのアセット」に関する要約を記載する前に、すべてのページを照会してください

リファレンスファイル

ファイル目的
references/cli_commands.md主要なレスポンスフィールドを含む CLI コマンドの完全な例
references/cli_traps.mdCLI でよくある落とし穴とエラーパターン
references/diagnosis.md診断フレームワークの全容、L7 の事前照合、チェックリスト
references/configuration_guide.mdコンソール設定のガイダンス(テキストのみ、ユーザー向け)
references/security_rules.mdセキュリティ上の禁止事項と出力チェックリストの全容
references/ram-policies.md必要な RAM 権限
references/cfw_acl_knowledge.mdACL ナレッジベースと FAQ

コメント