alibabacloud-cfw-acl-diagnosis について
Alibaba Cloud Cloud Firewall の ACL ルールを調査する読み取り専用スキルで、ポリシーや通信状況を確認する運用者向けです。ファイアウォールの種類に応じてルール、アセット状態、通信ログを確認し、実際の CLI 応答に基づいて診断します。
主な機能
- 01読み取り専用の ACL ルール診断
- 02Internet、NAT、VPC ファイアウォールに対応
- 03ルール、アセット、状態の順次確認
- 04条件を満たした場合の通信ログ照会
- 05CLI 結果に基づくレポート
活用シーン
- 01ルール無効化や通信遮断の調査
- 02保護対象アセットとルールの適合確認
- 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.mdcli_commands.mdcli_traps.mdconfiguration_guide.mddiagnosis.mdexecution_standards.mdram-policies.mdsecurity_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 つ生成してください。
- 形式:小文字の UUIDv4(例:
a1b2c3d4-e5f6-7890-abcd-ef1234567890)。 - そのワークフロー内の Alibaba Cloud サービス CLI コマンドには、すべて同じセッション IDを使用してください。
- 別のワークフローや別のユーザーとの会話で、セッション 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/DNAT | NAT 境界ファイアウォール | 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}}" |
| NAT | aliyun cloudfw describe-nat-firewall-control-policy --NatFirewallId <ID> --CurrentPage 1 --PageSize 50 --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-acl-diagnosis/{{SESSION_ID}}" |
| VPC | aliyun 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 の場合:
- 直ちに停止 — ステップ 3 またはステップ 4 の CLI コマンド(describe-traffic-log など)を実行しないでください
- 禁止事項:この時点以降、追加の CLI コマンドを呼び出すこと
- 出力形式セクションに直接進み、今すぐ最終レポートを作成してください
- 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:
EngineMode=loose+ ドメインルール → ドメインが一致しない → strict モードに切り替えstrict+ ドメインルール →telnetではなくcurl/wgetでテスト(telnet ではドメイン認識をトリガーできません)- ログの
AclPreState=app_unknown→ L7 の事前マッチ。アプリケーションがまだ識別されていません
NAT FW:
StrictMode=0+ ドメインルール → ドメインが一致しない(根本原因の可能性が高い)- 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.md | CLI でよくある落とし穴とエラーパターン |
references/diagnosis.md | 診断フレームワークの全容、L7 の事前照合、チェックリスト |
references/configuration_guide.md | コンソール設定のガイダンス(テキストのみ、ユーザー向け) |
references/security_rules.md | セキュリティ上の禁止事項と出力チェックリストの全容 |
references/ram-policies.md | 必要な RAM 権限 |
references/cfw_acl_knowledge.md | ACL ナレッジベースと FAQ |