alibabacloud-waf-cname-config-export について
Alibaba Cloud WAF 3.0 の CNAME ドメイン設定を一括エクスポートするエージェントスキルです。設定監査や納品・点検資料向けに、両リージョンのインスタンスと詳細設定を取得し、リージョン別シートの Excel ファイルにまとめます。
主な機能
- 01両リージョンの WAF インスタンス検出
- 02CNAME ドメインのページ取得
- 03リスナー、リダイレクト、証明書設定の収集
- 04リージョン別ワークシートの作成
- 0518 列の設定データ出力
活用シーン
- 01WAF ドメイン設定の監査
- 02プロジェクト納品資料の作成
- 03設定点検レポートの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-waf-cname-config-exportインストール後、Claude Code で/alibabacloud-waf-cname-config-exportを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdcli-installation-guide.mdram-policies.mdrelated-commands.mdverification-method.mdscripts/alibabacloud_waf_cname_config_export.py詳細
Alibaba Cloud WAF 3.0 の CNAME ドメイン設定を一括エクスポート
WAF 3.0 インスタンス配下にある CNAME ベースのすべてのドメイン設定を一括で照会し、設定監査、納品ドキュメント、点検レポートに利用できる構造化された Excel ファイルを生成します。
アーキテクチャ:WAF 3.0 Instance → CNAME Domains (DescribeDomains) → Domain Config: Listen + Redirect + Cert (DescribeDomainDetail) → Excel Export
サイトとインスタンスタイプ
| 項目 | 中国本土インスタンス | 中国本土以外のインスタンス |
|---|---|---|
| RegionId | cn-hangzhou | ap-southeast-1 |
| Endpoint | wafopenapi.cn-hangzhou.aliyuncs.com | wafopenapi.ap-southeast-1.aliyuncs.com |
1 つのアカウントで両方のインスタンスタイプを利用できます。エクスポートでは両方の RegionId を照会し、結果を統合する必要があります。
インストール
事前確認:Aliyun CLI >= 3.3.3 が必要です
aliyun versionを実行して、バージョンが 3.3.3 以上であることを確認してください。インストールされていない場合は、references/cli-installation-guide.md を参照してください。
事前確認:Aliyun CLI プラグインの更新が必要です
aliyun configure set --auto-plugin-install true
aliyun plugin update
Python の依存関係(再現性のためバージョンを固定):
pip install openpyxl==3.1.5
認証
事前確認:Alibaba Cloud の認証情報が必要です
セキュリティルール:
- AK/SK の値を読み取ったり、エコーしたり、表示したりすることは絶対にしないでください
- AK/SK を直接入力するようユーザーに求めることは絶対にしないでください
aliyun configure setに認証情報の値を直接指定することは絶対にしないでください- 認証情報の状態確認には
aliyun configure listのみを使用してくださいaliyun configure list有効なプロファイルが存在しない場合は、ここで停止してください。
- Alibaba Cloud コンソールから認証情報を取得します
- このセッションの外部で認証情報を設定します
aliyun configure listに有効なプロファイルが表示された後、戻って再実行します
国際サイトのユーザーは、別のプロファイル(例:
aliyun configure --profile intl)を設定する必要があります。中国本土サイトと国際サイトの AK は相互に使用できません。
RAM ポリシー
| アクション | 説明 |
|---|---|
yundun-waf:DescribeInstance | WAF インスタンス情報を照会 |
yundun-waf:DescribeDomains | ドメイン一覧を照会 |
yundun-waf:DescribeDomainDetail | ドメインの詳細設定を照会 |
推奨:システムポリシー AliyunYundunWAFReadOnlyAccess をアタッチします。
RAM ポリシーの全一覧:references/ram-policies.md を参照してください。
[MUST] 権限エラーへの対応: 実行中のいずれかの時点で、コマンドまたは API 呼び出しが権限エラーにより失敗した場合は、次の手順に従ってください。
references/ram-policies.mdを読み、この SKILL に必要な権限の全一覧を確認しますram-permission-diagnoseスキルを使用して、必要な権限を申請するようユーザーを案内します- 必要な権限が付与されたことをユーザーが確認するまで待機します
パラメーターの確認
重要:パラメーターの確認 — コマンドまたは API 呼び出しを実行する前に、 ユーザーが変更可能なすべてのパラメーター(例:RegionId、インスタンス名、CIDR ブロック、 パスワード、ドメイン名、リソース仕様など)をユーザーに確認する必要があります。 明示的な承認なしに、値を推測したりデフォルト値を使用したりしないでください。
| パラメーター | 必須/任意 | 説明 | デフォルト値 |
|---|---|---|---|
| RegionId | 自動 | 両方のリージョン(cn-hangzhou + ap-southeast-1)を照会します | 両方 |
| InstanceId | 自動 | DescribeInstance で自動検出します | — |
| CLI Profile | 任意 | デフォルトプロファイルを使用します。ユーザーが指定した場合は --profile <name> を追加します | default |
| Output File | 自動 | タイムスタンプ付きの固定ファイル名 | waf_cname_config_export_YYYYMMDD_HHMMSS.xlsx |
コアワークフロー
コアワークフローの開始時(CLI を実行する前)に: [必須]AI モードを有効化 — エージェントスキルの実行には AI モードが必要です。
aliyun configure ai-mode enable aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-waf-cname-config-export"
ステップ 1:WAF インスタンスを自動検出する
[必須]両方のリージョンを必ずクエリしてください。 ユーザーが「国内のみ」「海外のみ」「1 つのリージョンしか使用しない」と述べた場合でも、以下の両方のコマンドを必ず実行してください。インスタンスの分布に関するユーザーの申告は、いずれかのリージョンを省略する理由にはなりません。検出結果のみが信頼できる情報源です。
aliyun waf-openapi describe-instance --region cn-hangzhou
aliyun waf-openapi describe-instance --region ap-southeast-1
応答に空でない InstanceId が含まれている場合、インスタンスは存在します。国際サイトのユーザーは --profile intl を追加してください。
ステップ 2:ドメインリストを一括クエリする
aliyun waf-openapi describe-domains \
--region cn-hangzhou \
--instance-id <InstanceId> \
--page-number 1 \
--page-size 50
ページネーション:TotalCount が 50 を超える場合は、PageNumber を繰り返し指定してください。
ステップ 3:各ドメインの詳細設定をクエリする
aliyun waf-openapi describe-domain-detail \
--region cn-hangzhou \
--instance-id <InstanceId> \
--domain <DomainName>
Listen(HttpPorts/HttpsPorts/TLSVersion/CipherSuite/Http2Enabled/CertId)および Redirect(BackendList/BackupBackends/Loadbalance/SniEnabled/SniHost/Timeouts)を返します。
[必須]検出されたインスタンスごとに、DescribeDomainDetail を少なくとも 1 回呼び出してください。 ステップ 2 で取得したドメインリストを順に処理し、すべてのドメインについてこの API を呼び出します。あるインスタンスでステップ 2 のリストが空(
TotalCount == 0)の場合でも、API の到達性と権限を確認するため、プレースホルダーのドメイン(例:--domain none)を使用して、そのインスタンスに対してdescribe-domain-detailを必ず 1 回実行してください。その後、「ドメインなし」と記録して続行します。リストが空であることを理由に、このステップを省略しないでください。
ステップ 4:Excel エクスポートを生成する
リージョンごとに 1 つのシート(「中国本土」/「中国本土以外」)。18 列:Domain、CNAME、Status、HTTP Ports、HTTPS Ports、Backends、Backup Backends、Load Balancing、TLS Version、HTTP/2、Cert ID、SNI、SNI Host、Connect Timeout(s)、Read Timeout(s)、Write Timeout(s)、Force HTTP Backend、Resource Group。
[必須]同梱スクリプトを使用してください。これが許可されている唯一の実行方法です:
python scripts/alibabacloud_waf_cname_config_export.py
エクスポートロジックを独自の Python コードで書き換えたり、インライン化したり、再実装したりしないでください。 同梱スクリプトには、正しい 18 列のスキーマ、リージョンごとのシート構成、ページネーション、フィールド名の規則が含まれています。スクリプトが失敗した場合は、失敗の原因(
openpyxl==3.1.5の不足、認証情報の問題など)を診断し、根本原因を解決してください。その場しのぎのコードに切り替えないでください。
フィールド名に関する注意:ロードバランシングは
Redirect.Loadbalanceです(LoadBalanceTypeではありません)。バックエンド IP リストはRedirect.BackendList(文字列配列)です。証明書 ID はListen.CertIdにあります。
ステップ 5:AI モードを無効化する
[必須]あらゆる終了時点で AI モードを無効化してください — どのような理由であっても、最終応答を返す前に必ず AI モードを無効化してください。
aliyun configure ai-mode disable
成功の確認
詳しい確認手順については、references/verification-method.md を参照してください。
- Excel ファイルが開き、リージョンごとに 1 つのシートがある
- 各シートに 18 個の列見出しがあり、データが正しく保持されている
- 各シートのドメイン数が WAF コンソールの表示と一致している
- 2~3 個のドメインをコンソールと照合し、CNAME とバックエンド設定が正確であることを確認する
クリーンアップ
リソースは作成されないため、クリーンアップは不要です。
ベストプラクティス
- 2 つのインスタンスが存在するケースを見落とさないよう、常に両方のリージョンをクエリする
- リクエスト数を減らすため、PageSize を最大値の 50 に設定する
- スロットリングを防ぐため、リクエストの間に 200ms 以上の間隔を設ける(
time.sleep(0.2)) - CNAME 以外のドメインでは CNAME フィールドが空の場合があるため、その旨を表示する
- 中国本土と国際サイトの CLI プロファイルは、それぞれ別に設定する
References
| Topic | Link |
|---|---|
| CLI Commands | See references/related-commands.md |
| RAM Policies | See references/ram-policies.md |
| Verification Method | See references/verification-method.md |
| Acceptance Criteria | See references/acceptance-criteria.md |
| CLI Installation | See references/cli-installation-guide.md |
| DescribeDomains API | https://help.aliyun.com/zh/waf/web-application-firewall-3-0/developer-reference/api-waf-openapi-2021-10-01-describedomains |
| DescribeDomainDetail API | https://help.aliyun.com/zh/waf/web-application-firewall-3-0/developer-reference/api-waf-openapi-2021-10-01-describedomaindetail |
| DescribeInstance API | https://help.aliyun.com/zh/waf/web-application-firewall-3-0/developer-reference/api-waf-openapi-2021-10-01-describeinstance |