alibabacloud-sas-overview について
Alibaba Cloud Security Center(SAS)の概要データをAliyun CLIで照会するためのスキルです。セキュリティ状況や請求を確認するユーザー向けに、地域・権限・機能の利用可否を考慮し、項目やモジュールごとに実行できます。
主な機能
- 01セキュリティスコア、脆弱性、アラートの照会
- 02サービス利用状況とサブスクリプション情報の確認
- 03セキュリティ運用とWAFブロックの集計
- 04アセットリスク比率と推移の分析
- 05請求とサブスクリプション設定の照会
活用シーン
- 01現在のセキュリティスコアと処理済みアラートの確認
- 02ホスト、コンテナ、クラウド製品のリスク推移の確認
- 03WAFブロック統計の照会
- 04サブスクリプションの有効期間と請求の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-sas-overviewインストール後、Claude Code で/alibabacloud-sas-overviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdbilling-semantics.mdcli-installation-guide.mdcli-validation.mdconsole-sites.mdmanifest.jsonquery-errors.mdquery-parameters.mdram-policies.mdrelated-apis.mdrequirement-results.mdservice-prerequisites.mdverification-method.mdscripts/check_cli_contract.pycli_query.pyhost_inventory.pyoverview_response.pyquery_parameters.pyquery_permissions.pyuser_agent.pyverify_overview.py詳細
SAS の概要データクエリ
Security Center(SAS)の概要ダッシュボードの5つのコアモジュールを取得します。
- セキュリティの概要 — スコア、修正済みの脆弱性、ベースラインリスク、対応済みアラート
- 使用状況 — サービス利用日数、アセット規模、未インストールのクライアント
- セキュリティ運用 — リスクガバナンス(AI リスク、CSPM、重要な設定、システムの脆弱性)、セキュリティ保護(WAF のブロック)、セキュリティ対応
- アセットリスクの推移 — ホスト/コンテナ/クラウド製品のリスク比率と推移グラフ
- 課金とサブスクリプション — 後払いの切り替え、サブスクリプションの有効性、請求書
実行範囲:各モジュールとデータ項目は個別にクエリできます。 ユーザーのリクエストに合わせて範囲を選択してください。
- 単一のデータ項目 — 例:「セキュリティスコアはいくつですか?」→ コマンド1aのみ
- 単一のモジュール — 例:「アセットリスクの推移を表示して」→ モジュール4のすべて
- 全体の概要 — 例:「SAS の概要」→ 5つのモジュールすべて
アーキテクチャ:SAS + WAF + BssOpenApi
サービスの利用可否 — リクエストされた機能のみを確認
この概要には、有料エディションを一律に必須とする条件はありません。基本的な SAS クエリ、有料機能の利用可否、WAF の利用可否、課金の権限はそれぞれ独立しています。有料機能または全体の概要をクエリする前に、DescribeVersionConfig を再利用して Version、IsPostpay、IsTrialVersion、PostPayStatus とモジュールの切り替え状況を確認してください。有料エディションであればすべての機能が使えると推測したり、無料エディションではすべてのクエリが失敗すると推測したりしないでください。セルフチェックと機能マトリックスについては、service-prerequisites.md を参照してください。購入やアップグレードを自動で行わないでください。
実行状況の報告
ユーザーの言語で応答してください。クエリを実行する前に、選択した項目、確認済みのリージョン、現在の手順を伝えてください。モジュール/リージョンの切り替え時と再試行時には、完了した項目と実行中の項目を報告してください。ページネーション中は、判明している場合、取得済み件数/合計件数を表示してください。進捗率を捏造しないでください。処理に時間がかかる場合は、待機中であることを伝え、新しい結果を得たかのように述べないでください。最後に、完了した項目、失敗した項目/不明な項目、該当しない項目を、部分的な対応範囲と次の手順を含めて報告してください。進捗報告に認証情報や生のレスポンスを表示しないでください。スクリプトの進捗は stderr に出力し、stdout は機械可読な JSON のままにしてください。 例:「上海の2ページ目をクエリ中:ホストを45件中20件取得済み。シンガポールは未開始です。」
可観測性
マニフェストに基づく User-Agent:すべてのクラウドクエリで、AlibabaCloud-Agent-Skills/alibabacloud-sas-overview/<session UUID> skill-version/<manifest version> を使用してください。references/manifest.json のトップレベルの version はこの Skill のバージョンであり、CLI/API のバージョンとは独立しています。Skill の変更をリリースする際に更新してください。コマンド内にバージョンをハードコードしたり、未解決のプレースホルダーを使用したりしないでください。
クエリ例を実行する前に、インストール済みの Skill ディレクトリから次のコマンドを一度実行してください。
USER_AGENT=$(python3 scripts/user_agent.py) || exit 2
export USER_AGENT
このヘルパーは、自身のファイルを基準にマニフェストを解決し、空でない文字列のバージョンを検証し、新しい UUID v4 を生成して、実行時に完全な UA を組み立てます。マニフェストが見つからない場合や無効な場合は初期化を停止してください。バージョンなしの UA にフォールバックしないでください。このセッション中のすべての呼び出し、ページネーション、再試行で、同じ USER_AGENT を再利用してください。ツールごとにシェルが異なる場合は、生成した値を各シェルに明示的に渡してください。コマンドごとに再生成しないでください。Skill を新たに呼び出すたびに新しい UUID が生成されます。この Skill およびそのリファレンス内のすべての例では、--user-agent "$USER_AGENT" を使用しています。インベントリと再試行のヘルパーは、この値を変更せずに引き継ぎます。CLI コントラクトチェッカーは、すべてのヘルプ呼び出しで実行ごとに一度だけ同じビルダーを使用します。
ローカルのメンテナンスコマンド(version、configure、plugin)には、それぞれ独自のフラグがあります。CLI 3.4.11 では、configure と plugin update は --user-agent を指定するとエラーになります。
前提条件
事前確認:Aliyun CLI 3.3.1 以降が必要です
aliyun versionを実行して、バージョンが 3.3.1 以降であることを確認してください。インストールされていない場合、またはバージョンが古い場合は、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を実行して、既存のプラグインが常に最新の状態であることを確認してください。
--auto-plugin-install trueを設定すると、必要なプラグイン(sas、waf-openapi、bssopenapi)は初回使用時に自動的にインストールされるため、aliyun plugin installを手動で実行する必要はありません。
事前確認:Alibaba Cloud の認証情報が必要です
セキュリティルール:
- AK/SK の値(例:
echo $ALIBABA_CLOUD_ACCESS_KEY_ID)を絶対に読み取ったり、表示したり、出力したりしないでください。- 会話中またはコマンドラインで AK/SK を直接入力するようユーザーに求めては絶対にいけません。
- リテラルの認証情報を指定して
aliyun configure setを使用しては絶対にいけません。- 認証情報の状態確認には
aliyun configure listのみを使用してください。aliyun configure list出力を確認し、有効なプロファイル(AK、STS、または OAuth ID)があることを確認してください。
有効なプロファイルがない場合は、ここで停止してください。
- アカウントのサイトに対応する RAM コンソールを使用します:インターナショナル/中国コンソールのリンク。不明な場合はサイトを確認してください。アセットのリージョンやプロンプトの言語からサイトを判断することはできません。
- このセッション外で認証情報を設定します(ターミナルで
aliyun configureを実行するか、シェルプロファイルで環境変数を設定します)。aliyun configure listに有効なプロファイルが表示されてから、戻って再実行します。
パラメーター
パラメーターの確認:このセッションですでに提示または承認されている値を使用してください。 選択したスコープで必要な入力が不足している場合にのみ確認してください。以下に示すデフォルト候補は 自動的に設定される値ではありません。単一リージョンのリクエストは単一リージョンのままにします。
| パラメーター | 必要となる条件 | 情報源/候補 |
|---|---|---|
| SAS Regions | リージョン別の SAS 項目 | cn-shanghai および/または ap-southeast-1 を確認 |
| WAF Regions | WAF 統計情報 | cn-hangzhou および/または ap-southeast-1 を確認 |
| WAF InstanceId | DescribeFlowChart | 同じアカウントおよび WAF リージョンで DescribeInstance が正常に完了していること |
| BillingCycle | 請求明細 | YYYY-MM を確認。「今月」はユーザーのタイムゾーンを使用して一度だけ解決 |
| TimeRangeDays | WAF/トレンドクエリ | 正の整数を確認。候補は 7 日 |
| Account site | コンソールのナビゲーション/請求 | インターナショナルまたは中国のサイトを明示。リージョンとは独立 |
例を実行する前に、確認済みの値を TIME_RANGE_DAYS と BILLING_CYCLE に
設定してください。必要なフラグ、依存関係の確認、タイムスタンプの単位については
query-parameters.md を参照してください。プレースホルダー値は実行しないでください。
RAM の権限
RAM ポリシーの完全な JSON については、references/ram-policies.md を参照してください。
権限はスコープごとに異なります。SAS 項目には SAS の読み取りアクションが、WAF 統計情報には
WAF の読み取りアクションが必要です。請求明細には bss:QueryBill(または
AliyunBSSReadOnlyAccess)が必要です。請求設定のみの場合は SAS の権限を使用します。
python3 scripts/query_permissions.py <items> を使用すると、選択したアクションをオフラインで一覧表示できます。
アクセスを拒否されたサービスが、独立した項目を妨げたり、データがゼロであるかのように表示されたりしてはなりません。
サービスリージョン
| 製品 | 中国のサービスリージョン | 中国以外のサービスリージョン |
|---|---|---|
| SAS | cn-shanghai | ap-southeast-1 |
| WAF 3.0 | cn-hangzhou | ap-southeast-1 |
これらはサービスエンドポイントであり、任意の ECS アセットリージョンではありません。クエリするサービス リージョンを確認し、SAS の Shanghai の値を WAF コマンドにコピーしないでください。確認済みの WAF リージョンごとに、WAF InstanceId を個別に特定してください。WAF インスタンスがない場合は 「該当なし」であり、ブロックされたリクエストがゼロであることを意味しません。エンドポイントのエラーはクエリの失敗です。
コアワークフロー
ユーザーのクエリに基づいて、該当するモジュールを実行します。各モジュールと、モジュール内の各データ項目は、それぞれ独立して実行できます。マルチリージョンと記された API では、確認済みのリージョンのみをクエリし、互換性を検証済みの結果を集約します。2 リージョンの例は、両方のリージョンが指定された場合に適用されます。
モジュール 1:セキュリティ概要
# 1a. Security Score (region-agnostic)
aliyun sas describe-secure-suggestion --cal-type home_security_score --user-agent "$USER_AGENT"
# Validate the full saved response with: python3 scripts/overview_response.py score < response.json
# Exit 0/status=ok: display score (including zero). Exit 2/status=error: report failure.
# HTTP 200 with Score=null/missing is NOT success; do not substitute zero.
#
# NOTE: DescribeScreenScoreThread is currently unavailable (CalType not supported).
# Once supported, switch to the command below for score + historical trend:
# START=$(python3 -c "import time; print(int((time.time()-86400*7)*1000))")
# END=$(python3 -c "import time; print(int(time.time()*1000))")
# aliyun sas describe-screen-score-thread \
# --cal-type home_security_score \
# --start-time "$START" --end-time "$END" \
# --user-agent "$USER_AGENT"
# Extract: Data.SocreThread[-1] = current score, full SocreThread list = historical trend
# 1b. Fixed Vulnerabilities (multi-region: sum FixTotal)
aliyun sas describe-vul-fix-statistics --region cn-shanghai --user-agent "$USER_AGENT"
aliyun sas describe-vul-fix-statistics --region ap-southeast-1 --user-agent "$USER_AGENT"
# 1c. Baseline Risk Statistics (multi-region: sum each Summary field)
aliyun sas get-check-risk-statistics --region cn-shanghai --user-agent "$USER_AGENT"
aliyun sas get-check-risk-statistics --region ap-southeast-1 --user-agent "$USER_AGENT"
# Extract: Summary.RiskCheckCnt, Summary.RiskWarningCnt,
# Summary.HandledCheckTotal, Summary.HandledCheckToday
# Sum each field across regions
# 1d. Handled Alerts (multi-region: sum SuspiciousDealtCount)
aliyun sas get-defence-count --region cn-shanghai --user-agent "$USER_AGENT"
aliyun sas get-defence-count --region ap-southeast-1 --user-agent "$USER_AGENT"
モジュール 2:使用状況情報
# 2a. Service Duration + Subscription (region-agnostic)
aliyun sas describe-version-config --user-agent "$USER_AGENT"
# Validate the saved response: python3 scripts/overview_response.py times < response.json
# OpenTime → service opening; PostPayOpenTime → pay-as-you-go opening (ms).
# Report elapsed days separately, regardless of subscription/postpay coexistence.
# ReleaseTime → instance expiry; do not call it pay-as-you-go expiry.
# Missing/zero/invalid dates are unknown with a reason, never fabricated or forced N/A.
# Do not calculate duration from the undocumented legacy CreateTime field.
# 2b. Host Asset Info: fetch EVERY page before summing Cores.
# Run from this skill directory, after confirming the SAS regions.
python3 scripts/host_inventory.py --regions cn-shanghai ap-southeast-1 \
--user-agent "$USER_AGENT"
# complete=true: total_count and total_cores cover both regions.
# Exit 2 / complete=false: report the failed region/page and partial counts;
# never present partial_cores as a full inventory. Do not add TotalCount per page.
# For host details, use the same page loop and retain each instance by Uuid.
# 2c. Uninstalled Clients (multi-region: sum TotalCount)
aliyun sas list-uninstall-aegis-machines --region cn-shanghai --current-page 1 --page-size 1 --user-agent "$USER_AGENT"
aliyun sas list-uninstall-aegis-machines --region ap-southeast-1 --current-page 1 --page-size 1 --user-agent "$USER_AGENT"
モジュール 3:セキュリティ運用
3a. リスクガバナンス(リージョン非依存、API 呼び出し 1 回)
aliyun sas describe-secure-suggestion --cal-type home_security_score --user-agent "$USER_AGENT"
# Process Suggestions[] by SuggestType:
# SS_AI_RISK → AI Risk
# SSI_AISPM_RISK (AI security posture risks)
# SSI_AI_VUL_RISK (AI application vulnerabilities)
# SSI_AI_SENSITIVE_RISK (AI application plaintext keys)
# Aggregate RiskCount by region
# SS_SAS_CLOUD_HC → CSPM risks (aggregate by HIGH/MEDIUM/LOW and region)
# Cloud: SSI_SAS_CLOUD_HC_HIGH / MEDIUM / LOW
# Host: SSI_SAS_HOST_HC_HIGH / MEDIUM / LOW
# SS_KEY_CONFIG → Key Config (SubType not fixed; analyze Description for unknown SubTypes)
# Aggregate RiskCount by region
# SS_SAS_SYS_VUL → System Vulns (aggregate by HIGH/MEDIUM/LOW and region)
# SSI_SAS_SYS_VUL_HIGH / SSI_SAS_SYS_VUL_MEDIUM / SSI_SAS_SYS_VUL_LOW
# SS_SAS_EMG_VUL → Emergency Vulns (unfixed emergency vulnerabilities)
# SSI_SAS_EMG_VUL
# SS_SAS_APP_VUL → Application Vulns (aggregate by HIGH/MEDIUM and region)
# SSI_SAS_APP_VUL_HIGH / SSI_SAS_APP_VUL_MEDIUM
# SS_PRODUCT_CONNECT → Product Connection (asset protection not enabled)
# SSI_PRODUCT_CONNECT (Description is JSON array with itemDescKey/itemDescText)
# SS_SAS_ALARM → Security Response (see Module 3c)
# SSI_SAS_ALARM_HIGH (emergency) / SSI_SAS_ALARM_MEDIUM (suspicious) / SSI_SAS_ALARM_LOW (reminder)
3b. セキュリティ保護 — WAF ブロック(マルチリージョン、2 ステップ、WAF 3.0 のみ)
WAF バージョン要件:このモジュールでは WAF 3.0 API(製品:
waf-openapi、バージョン:2021-10-01)を使用します。WAF 2.0 インスタンス(バージョン2019-09-10)には互換性がありません。InstanceIdやWafBlockSumなどのフィールドが存在しない場合や、構造が異なる場合があります。ユーザーの WAF インスタンスが 2.0 の場合、このモジュールはそのインスタンスバージョンではサポートされないことを伝えてください。リージョンに関する注意:
waf-openapi(WAF 3.0)は集中型エンドポイントの製品です。中国サイトの RegionId はcn-hangzhouです(cn-shanghaiは使用しないでください)。インストール済みプラグインのヘルプには API2021-10-01が記載されている必要があります。WAF 2.0 のパラメーターを混在させたり、未検証のバージョン上書きを追加したりしないでください。プラグインのデフォルトが異なる場合は、更新または確認してください。
# Step 1: Get WAF Instance ID (per region)
aliyun waf-openapi describe-instance --region cn-hangzhou --user-agent "$USER_AGENT"
aliyun waf-openapi describe-instance --region ap-southeast-1 --user-agent "$USER_AGENT"
# Extract: InstanceId from each region's response
# Step 2: Query WAF flow chart using each region's InstanceId
START_SEC=$(python3 scripts/query_parameters.py window --days "$TIME_RANGE_DAYS" --unit seconds) || exit 2
aliyun waf-openapi describe-flow-chart \
--region cn-hangzhou \
--instance-id "<InstanceId from cn-hangzhou>" \
--start-timestamp "$START_SEC" \
--interval 3600 \
--user-agent "$USER_AGENT"
aliyun waf-openapi describe-flow-chart \
--region ap-southeast-1 \
--instance-id "<InstanceId from ap-southeast-1>" \
--start-timestamp "$START_SEC" \
--interval 3600 \
--user-agent "$USER_AGENT"
# Sum all WafBlockSum values from both regions
3c. セキュリティ対応(リージョン非依存、3a と同じ API)
aliyun sas describe-secure-suggestion --cal-type home_security_score --user-agent "$USER_AGENT"
# Process Suggestions[] where SuggestType == "SS_SAS_ALARM":
# SSI_SAS_ALARM_HIGH → Emergency alarm events count
# SSI_SAS_ALARM_MEDIUM → Suspicious alarm events count
# SSI_SAS_ALARM_LOW → Reminder alarm events count
モジュール 4:アセットリスクの推移
ホストリスクの必須入力:確認済みの SAS リージョンごとに、DescribeCloudCenterInstances.PageInfo.TotalCount(MachineTypes=ecs を指定)と DescribeFieldStatistics.GroupedFields.RiskInstanceCount の両方を取得します。後者の API の InstanceCount は、ゼロの場合でも必須の TotalCount の代わりにはなりません。このセッションで同じアカウント/リージョン/フィルターの検証済みレスポンスを利用できる場合は再利用し、そうでなければ以下の両方の呼び出しを実行します。件数のみのクエリでは CurrentPage=1, PageSize=1 だけが必要です。在庫全件のページネーションと CPU コア数の集計は、要求された場合にモジュール 2b で行います。
両方の件数が、スコープの一致する 0 以上の整数であり、リスク件数が総数以下であることを検証します。入力が欠落または失敗している場合、ホストリスクは不完全として扱います。他の結果は保持し、モジュール全体が完了したと宣言しないでください。総数が有効なゼロの場合、比率は該当なしとして報告します。比率を計算する前に、互換性のあるリージョン別件数を集計します。
# 4a. Host Assets (multi-region)
aliyun sas describe-cloud-center-instances \
--region cn-shanghai --machine-types ecs --current-page 1 --page-size 1 \
--user-agent "$USER_AGENT"
# Extract: PageInfo.TotalCount
aliyun sas describe-field-statistics \
--region cn-shanghai \
--user-agent "$USER_AGENT"
# Extract: GroupedFields.RiskInstanceCount
# Repeat BOTH calls above for ap-southeast-1 when confirmed, then sum each metric.
# 4b. Container Assets (multi-region)
aliyun sas describe-container-field-statistics \
--region cn-shanghai \
--user-agent "$USER_AGENT"
# Extract: ClusterCount, RiskClusterCount
# Repeat for ap-southeast-1, sum both
# 4c. Cloud Product Assets (multi-region)
aliyun sas get-cloud-asset-summary \
--region cn-shanghai \
--user-agent "$USER_AGENT"
# Extract: GroupedFields.InstanceCountTotal, GroupedFields.InstanceRiskCountTotal
# Repeat for ap-southeast-1, sum both
# 4d. Trend Chart Data (multi-region)
START_MS=$(python3 scripts/query_parameters.py window --days "$TIME_RANGE_DAYS" --unit ms) || exit 2
END_MS=$(python3 -c "import time; print(int(time.time()*1000))")
aliyun sas describe-chart-data \
--region cn-shanghai \
--chart-id CID_ASSET_RISK_TREND \
--report-id -1 \
--time-start "$START_MS" --time-end "$END_MS" \
--user-agent "$USER_AGENT"
# Returns time series: host / container / cloud risk counts
モジュール 5:請求とサブスクリプション
# 5a. Query billing mode (from Module 2a response, can reuse cached result)
aliyun sas describe-version-config --user-agent "$USER_AGENT"
# Process the full response with: python3 scripts/overview_response.py billing < response.json
# IsPostpay indicates pay-as-you-go independently of subscription/trial evidence.
# Always parse PostPayModuleSwitch when supplied; do not gate it on IsPaidUser.
# Show coexistence, suspended service and unknown fields explicitly.
# See references/billing-semantics.md for the decision table and FAQ.
# 5c. Billing Details (BSS read permission required; failures remain visible)
BILLING_CYCLE=$(python3 scripts/query_parameters.py billing --cycle "$BILLING_CYCLE") || exit 2
aliyun bssopenapi query-bill \
--region cn-shanghai \
--billing-cycle "$BILLING_CYCLE" --product-code sas \
--user-agent "$USER_AGENT"
# If the above returns a permission error, do NOT silently skip — inform the user (see Data Processing Rules §1)
aliyun bssopenapi query-bill \
--region ap-southeast-1 \
--billing-cycle "$BILLING_CYCLE" --product-code sas \
--user-agent "$USER_AGENT"
# If the above returns a permission error, do NOT silently skip — inform the user (see Data Processing Rules §1)
# QueryBill is account-level: verify bill identity/coverage before combining endpoint results.
# Fetch all bill pages if reporting complete details/totals; do not sum duplicate bills.
# Explicitly report any failed requested coverage.
製品コードの対応表
| 製品名 | コード | ステータス値 |
|---|---|---|
| ホストおよびコンテナセキュリティ | POST_HOST | 1:有効、0:無効 |
| 脆弱性修正 | VUL | 1:有効、0:無効 |
| CSPM | CSPM | 1:有効、0:無効 |
| Agentic SOC | CTDR | 1:有効、0:無効 |
| エージェントレス検知 | AGENTLESS | 1:有効、0:無効 |
| サーバーレスアセット保護 | SERVERLESS | 1:有効、0:無効 |
| アプリケーション保護 | RASP | 1:有効、0:無効 |
| 悪意のあるファイルの検知 | SDK | 1:有効、0:無効 |
| ログ管理 | CTDR_STORAGE | 1:有効、0:無効 |
| ランサムウェア対策 | ANTI_RANSOMWARE | 1:有効、0:無効 |
クエリの失敗
ワークフローの CLI クエリは、scripts/cli_query.py -- aliyun ... を介して実行し、一時的なエラーに対する上限付きリトライ(待機時間 1 秒/2 秒、最大 3 回)を行います。host_inventory.py は内部でこれを実行します。権限、パラメーター、および未サポートのサービスに関するエラーでは、リトライせずに停止します。query-errors.md に従ってください。リトライ上限に達した項目を報告し、独立した要求済みクエリは続行して、部分的な結果であることを明示してください。
データ処理ルール
- マルチリージョン集計:確認済みの各サービスリージョンを個別に照会します。互換性があり、検証済みのSAS/WAF件数のみを合算し、エンドポイントリージョンをまたいでアカウント単位の請求額を安易に合算しないでください。
- 権限エラーの処理:リージョンで権限エラー(例:
ForbiddenまたはNoPermission)が返された場合、黙ってスキップしてはいけません。成功したリージョンと失敗したリージョンを、不足している権限も含めて、必ずユーザーに明示してください。例:「cn-shanghai からデータを取得しましたが、ap-southeast-1 では権限が拒否されました(sas:DescribeSecureSuggestion が不足しています)。結果には cn-shanghai のみが反映されています。」
- 権限エラーの処理:リージョンで権限エラー(例:
- タイムスタンプ:SAS API のタイムスタンプはミリ秒単位です。WAF API のタイムスタンプは秒単位です。
- PostPayModuleSwitch:これはJSON 文字列です。値を読み取る前に、必ず
JSON.parse()/json.loads()で解析してください。 - スコアの検証:スコアを要求された場合は、完全な JSON レスポンスに対して
scripts/overview_response.py scoreを実行してください。スコアがない、null、空、数値以外、または有限値でない場合はエラーとして扱い、診断用に RequestId を保持してください。実際のゼロは有効です。提案があることからスコアを推測してはいけません。スコアの抽出:現在のスコアにはDescribeSecureSuggestionレスポンスのScoreフィールドを使用してください。注:Scoreは数値ではなく文字列(例:"90.0")で返されます。比較や表示の前に float に変換してください。注:DescribeScreenScoreThreadは現在利用できません(CalType が未対応)。対応後は、現在のスコアにはData.SocreThread[]の最後の要素を、履歴の推移にはリスト全体を使用してください。 - セキュリティ対応:
SuggestType == "SS_SAS_ALARM"のDescribeSecureSuggestionから抽出します。サブタイプはSSI_SAS_ALARM_HIGH(緊急)、SSI_SAS_ALARM_MEDIUM(不審)、SSI_SAS_ALARM_LOW(注意喚起)です。 - タイムスタンプの形式:ミリ秒単位のタイムスタンプを、明示的なタイムゾーン付きの読みやすい日付に変換してください(ヘルパーは UTC を使用します)。
成功の検証
要求された範囲のみを検証してください。確認済みのすべてのリージョン/ページと、必須のビジネスフィールドを含めます。HTTP/CLI の成功だけでは不十分です。各項目を、検証の証拠または理由とともに、成功、失敗、不明、該当なしのいずれかとして記録してください。その結果のマニフェストに対して scripts/verify_overview.py --expected <items> を使用し、不足項目や部分的な完了を検出してください。これは網羅性を確認するものであり、API の生のセマンティクスを検証するものではありません。項目ごとの確認については、references/verification-method.md と acceptance-criteria.md を参照してください。
クリーンアップ
このスキルは読み取り専用(照会操作のみ)です。リソースは作成されないため、クリーンアップは不要です。
ベストプラクティス
- 全範囲を報告する前に、確認済みのすべてのリージョンを照会してください。要求されていないリージョンを追加しないでください。
DescribeVersionConfigのレスポンスをキャッシュしてください。これはモジュール 2 とモジュール 5 の両方で使用します。--cli-query(JMESPath)を使用して特定のフィールドを抽出し、出力のノイズを減らしてください。TotalCountだけが必要な場合(例:ListUninstallAegisMachines)は、--page-size 1を設定してください。- WAF の
DescribeFlowChartには有効な WAF インスタンス ID が必要です。先にDescribeInstanceを使って自動取得してください。ユーザーが確認した WAF サービスリージョンcn-hangzhouとap-southeast-1を使用してください。SAS のリージョンや、別の WAF リージョンの InstanceId を流用してはいけません。 - 請求の詳細には BSS の読み取り権限が必要です。拒否されたリージョン/操作と部分的な網羅状況を報告し、独立した SAS/WAF の結果は維持してください。拒否された請求照会を支出ゼロとして報告してはいけません。
- SAS から返されるすべてのタイムスタンプはミリ秒単位です。人間が読める形式に変換するには、1000 で割ってください。
参照リンク
| ドキュメント | 内容 |
|---|---|
| references/billing-semantics.md | 課金の根拠と併用に関する FAQ |
| references/related-apis.md | API と CLI コマンドの完全なリファレンステーブル |
| references/ram-policies.md | 必要な RAM 権限とポリシー |
| references/verification-method.md | 検証コマンドの手順 |
| references/acceptance-criteria.md | CLI の正しい/誤ったパターン |
| references/cli-installation-guide.md | CLI のインストールガイド |