mcpField
A
alibabacloud-waf-cname-config-export

alibabacloud-waf-cname-config-export

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

alibabacloud-waf-cname-config-export について

Alibaba Cloud WAF 3.0 の CNAME ドメイン設定を一括エクスポートするエージェントスキルです。設定監査や納品・点検資料向けに、両リージョンのインスタンスと詳細設定を取得し、リージョン別シートの Excel ファイルにまとめます。

主な機能

  1. 01両リージョンの WAF インスタンス検出
  2. 02CNAME ドメインのページ取得
  3. 03リスナー、リダイレクト、証明書設定の収集
  4. 04リージョン別ワークシートの作成
  5. 0518 列の設定データ出力

活用シーン

  1. 01WAF ドメイン設定の監査
  2. 02プロジェクト納品資料の作成
  3. 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.md
cli-installation-guide.md
ram-policies.md
related-commands.md
verification-method.md
scripts/
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

サイトとインスタンスタイプ
項目中国本土インスタンス中国本土以外のインスタンス
RegionIdcn-hangzhouap-southeast-1
Endpointwafopenapi.cn-hangzhou.aliyuncs.comwafopenapi.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

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

  1. Alibaba Cloud コンソールから認証情報を取得します
  2. このセッションの外部で認証情報を設定します
  3. aliyun configure list に有効なプロファイルが表示された後、戻って再実行します

国際サイトのユーザーは、別のプロファイル(例:aliyun configure --profile intl)を設定する必要があります。中国本土サイトと国際サイトの AK は相互に使用できません。

RAM ポリシー

アクション説明
yundun-waf:DescribeInstanceWAF インスタンス情報を照会
yundun-waf:DescribeDomainsドメイン一覧を照会
yundun-waf:DescribeDomainDetailドメインの詳細設定を照会

推奨:システムポリシー AliyunYundunWAFReadOnlyAccess をアタッチします。

RAM ポリシーの全一覧:references/ram-policies.md を参照してください。

[MUST] 権限エラーへの対応: 実行中のいずれかの時点で、コマンドまたは API 呼び出しが権限エラーにより失敗した場合は、次の手順に従ってください。

  1. references/ram-policies.md を読み、この SKILL に必要な権限の全一覧を確認します
  2. ram-permission-diagnose スキルを使用して、必要な権限を申請するようユーザーを案内します
  3. 必要な権限が付与されたことをユーザーが確認するまで待機します

パラメーターの確認

重要:パラメーターの確認 — コマンドまたは 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 を参照してください。

  1. Excel ファイルが開き、リージョンごとに 1 つのシートがある
  2. 各シートに 18 個の列見出しがあり、データが正しく保持されている
  3. 各シートのドメイン数が WAF コンソールの表示と一致している
  4. 2~3 個のドメインをコンソールと照合し、CNAME とバックエンド設定が正確であることを確認する

クリーンアップ

リソースは作成されないため、クリーンアップは不要です。

ベストプラクティス

  1. 2 つのインスタンスが存在するケースを見落とさないよう、常に両方のリージョンをクエリする
  2. リクエスト数を減らすため、PageSize を最大値の 50 に設定する
  3. スロットリングを防ぐため、リクエストの間に 200ms 以上の間隔を設ける(time.sleep(0.2))
  4. CNAME 以外のドメインでは CNAME フィールドが空の場合があるため、その旨を表示する
  5. 中国本土と国際サイトの CLI プロファイルは、それぞれ別に設定する

References

TopicLink
CLI CommandsSee references/related-commands.md
RAM PoliciesSee references/ram-policies.md
Verification MethodSee references/verification-method.md
Acceptance CriteriaSee references/acceptance-criteria.md
CLI InstallationSee references/cli-installation-guide.md
DescribeDomains APIhttps://help.aliyun.com/zh/waf/web-application-firewall-3-0/developer-reference/api-waf-openapi-2021-10-01-describedomains
DescribeDomainDetail APIhttps://help.aliyun.com/zh/waf/web-application-firewall-3-0/developer-reference/api-waf-openapi-2021-10-01-describedomaindetail
DescribeInstance APIhttps://help.aliyun.com/zh/waf/web-application-firewall-3-0/developer-reference/api-waf-openapi-2021-10-01-describeinstance

コメント