mcpField
H
huawei-cloud-dew-key-management

huawei-cloud-dew-key-management

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

huawei-cloud-dew-key-management について

hcloudを通じてHuawei Cloud DEWのシークレットメタデータとKMSキーを管理するAIエージェントスキルです。読み取り専用の分析と確認必須の変更を分け、シークレット値をエージェントのコンテキストに取得しません。

主な機能

  1. 01シークレットメタデータの一覧と詳細表示
  2. 02シークレットバージョンとKMSキーの確認
  3. 03ローテーション設定の分析
  4. 04CTSトレースによるキー利用監査
  5. 05管理操作前の確認ゲート

活用シーン

  1. 01シークレットのローテーション状況確認
  2. 02KMSキー操作の監査
  3. 03カスタマーマスターキーの作成
  4. 04確認後のシークレットバージョン更新

インストール

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

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-dew-key-management

インストール後、Claude Code で/huawei-cloud-dew-key-managementを入力して読み込まれたか確認します。

同梱ファイル

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

references/
acceptance-criteria.md
cli-installation-guide.md
csms-usage.md
dataflow-diagram.md
iam-policies.md
kms-usage.md
verification-method.md
scripts/
ensure_cli.sh
scripts/cli/
cli_entry.py
cli_reporting.py
templates/
test-vars.json

詳細

Huawei Cloud DEW(Data Encryption Workshop)

停止してください — 一般知識に基づいて回答しないでください。 以下の手順に従ってください。

コマンドを組み立てる前に、必ず hcloud <Service> <Operation> --help を実行し、正確なパラメーター名と要件を確認してください。

ステップ 0:skill-quality-cli をインストールする(冪等。インストール済みの場合はスキップ)

CLI は ~/.local/bin/ にインストールされます。このディレクトリは 常に $PATH に含まれているとは限りません(skill-quality-cli だけで実行すると、終了コード 127 で失敗する場合があります)。まず PATH を設定してから、インストーラーを実行してください(今後のシェル用に、PATH の設定は ~/.bashrc / ~/.profile にも保存されます)。

export PATH="$HOME/.local/bin:$PATH"
bash scripts/ensure_cli.sh

スクリプトは skill-quality-cli が利用可能かどうかを検出します(PATH を確認し、見つからない場合は絶対パス ~/.local/bin/skill-quality-cli を確認)。利用できない場合は、スキルに同梱された CLI ソース(scripts/cli/cli_entry.py + scripts/cli/cli_reporting.py)を ~/.local/bin/ にローカルラッパーとしてデプロイします。外部からのダウンロードも、実行時の curl もありません(SC2 サプライチェーン安全。バージョンは同梱の 1.1.8 に固定)。現在のセッション用に PATH を再エクスポートし、~/.bashrc / ~/.profile にも保存します。同梱ソースがない場合は何も表示せずスキップされ、業務フローがブロックされることはありません。その後もコマンドだけで見つからない場合は、絶対パスを呼び出してください。 ~/.local/bin/skill-quality-cli

概要

このスキルは、2 つのサービスを束ねる Huawei Cloud DEW(Data Encryption Workshop / 数据加密服务)向けの AI エージェント機能を提供します。

サービス正式名称対象範囲
CSMSCloud Secret Management Serviceシークレットのライフサイクル(メタデータのみ。値は取得しません)
KMSKey Management Serviceカスタマーマスターキー(CMK)、暗号化キーのライフサイクル

10 個の huawei_* アクションを通じて、4 つの機能グループを利用できます。

機能リスクレベルアクション
クエリ(読み取り専用)R3 — 自動実行huawei_list_csms_secrets、huawei_describe_csms_secret、huawei_list_csms_secret_versions、huawei_list_kms_keys
診断(読み取り専用)R3 — 自動実行huawei_analyze_dew_rotation、huawei_analyze_dew_key_usage
管理R2 — プレビュー + 確認huawei_create_kms_key、huawei_enable_csms_secret_rotation
管理R1 — プレビュー + 確認huawei_update_csms_secret_version、huawei_delete_kms_key

対象範囲の境界:

  • ✅ シークレットとバージョンを一覧表示/説明する(メタデータのみ。シークレットの値は取得しません)
  • ✅ KMS キーを一覧表示し、ローテーションの状態を分析し、CTS 経由で KMS キーの使用状況を監査する
  • ✅ KMS キーを作成し、自動ローテーションを有効にし、シークレットのバージョンを手動でローテーションし、KMS キーを削除する(確認が必要)
  • ❌ エージェントのコンテキストにシークレットの値を読み込んだり取得したりしないでください(DownloadSecretBlob、ShowSecretVersion の値、DecryptData の平文)
  • ❌ 会話内で認証情報(AK/SK、パスワード、トークン)を絶対に出力しないでください

依存関係:品質テレメトリーは skill-quality-cli によって自動的に収集されます(未インストールの場合は scripts/ensure_cli.sh がインストールします)。

重要な警告

注意事項理由
エージェントのコンテキストにシークレットの値を絶対に取得しないでください代わりに {{resolve:csms:secret-id:SecretString:key}} のランタイムインジェクションを使用してください
会話内で認証情報を絶対に出力しないでくださいAK/SK、パスワード、トークンをエージェントの出力に含めてはいけません
KMS キーの削除は取り消せません削除は 7~1096 日(設定可能。デフォルトは 7 日)の保留期間を設けてスケジュールされます。期間が過ぎると、そのキーとキーで暗号化されたすべてのデータを復元できなくなります
シークレットのローテーションには自動化が必要です手動ローテーションでは古い認証情報が残るリスクがあります。ローテーション関数を使った自動ローテーションを優先してください
アカウント間で KMS を使用するにはグラントが必要ですKMS キーはリージョン単位です。リージョン間/アカウント間で使用するには、グラントの設定が必要です

前提条件

  1. hcloud CLI(KooCLI 7.2.x 以降)がインストールされ、認証されていること。
    • インストールと設定のガイド:references/cli-installation-guide.mdを参照してください。
    • 次の2つの認証方式に対応しています。
      • AK/SK 認証情報:環境変数 HUAWEICLOUD_SDK_AK / HUAWEICLOUD_SDK_SK(または HUAWEI_ACCESS_KEY / HUAWEI_SECRET_KEY)、あるいは hcloud 設定ウィザードによる対話型セットアップ
      • ローカル hcloud プロファイル:「hcloud configure list」を実行してください。AKSKモードで有効なプロファイルと、実際のaccessKeyIdが表示される必要があります。
    • 「hcloud configure list」を実行して認証を確認してください。
  2. リージョン:DEW はリージョンごとに設定されます。必ず--cli-region={region}(例:cn-north-4)を渡してください。利用可能な場合、--project_idはプロファイルから自動入力されます。
  3. IAM 権限:最小権限ポリシーはreferences/iam-policies.mdに記載されています。
    • 照会/診断:csms:ListSecrets、csms:ShowSecret、csms:ListSecretVersions、kms:ListKeys、kms:ListKeyDetail、cts:ListTraces
    • 管理:kms:CreateKey、csms:UpdateSecret、csms:CreateSecretVersion、kms:ScheduleKeyDeletion(およびkms:CancelKeyDeletion)
  4. CTS トラッカー(huawei_analyze_dew_key_usage用):リージョン内にシステムトラッカーまたは管理トラッカーが存在する必要があります。references/verification-method.mdを参照してください。
  5. ローテーション関数(自動ローテーション用):ローテーション関数が設定されていないシークレットでローテーションを有効にする場合、huawei_enable_csms_secret_rotationには OBS/FuncGraph ベースのローテーション関数 URN が必要です。
  6. skill-quality-cli — bash scripts/ensure_cli.shで確認されます(冪等で、既に存在する場合はスキップします)。
    • アップグレード:手動でskill-quality-cli upgradeを実行します(自動アップグレードはありません)。
    • テレメトリレポートを無効にするには、SKILL_QUALITY_REPORT=0を設定します。

ワークフロー

1. Identify target → region, project_id, secret_name / key_id filters
2. Classify intent →
     - Query/Diagnose (R3): list / describe / analyze — execute automatically
     - Manage (R2/R1): create / enable rotation / rotate / delete — ALWAYS show preview and ask for explicit confirmation first
3. Execute → build the hcloud command from the verified templates below
4. Output → structured JSON summary + readable report (metadata only, never secret values)
5. Report quality → automatic via `skill-quality-cli run` wrapping (see Step 0 / Prerequisites #6)

確認ゲート(必ず実施し、省略してはいけません):

  • R2 アクション(huawei_create_kms_key、huawei_enable_csms_secret_rotation):実行前に、完全なコマンドと作成/更新するリソースを表示し、「confirm?」と尋ねます。
  • R1 アクション(huawei_update_csms_secret_version、huawei_delete_kms_key):完全なコマンドと副作用を表示し、明示的な確認を求めます。削除の場合は、さらに取り消し不能な削除に関する警告(保留期間は7~1096日、デフォルトは7日)を表示します。

書き込み操作は、以下のコマンドブロック内で[W]/写操作と表示されます(検出キーワード: create / update / delete / rotate — テストパイプラインの書き込み操作検出器が対象とする動詞と同じです)。

主なコマンド

以下のコマンドはすべて2つの形式で示しています。実行ファイルのみのhcloud <Service> <Operation> コマンド(サービスコードはCSMS/KMS/CTS)と、品質レポート用に skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- ...でラップした同一のコマンドです。 いずれも KooCLI(hcloud CLI)がインストールされ、認証されている必要があります(前提条件を参照してください)。 業務コマンドに Python SDK パッケージは必要ありません。

⚠️ 必須:このスキルのすべてのhcloudコマンドは、必ず skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- <command>でラップしてください。ラップされていないhcloud の呼び出しは固く禁止されています。

1. 照会(R3 — 読み取り専用、自動実行)

すべての CSMS シークレットを一覧表示します(名前とメタデータのみ。値は表示しません)。

# Optional: --project_id={project_id} --limit={n} --marker={marker}
hcloud CSMS ListSecrets --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- hcloud CSMS ListSecrets --cli-region={region}

CSMS シークレットの詳細を表示します(ローテーション設定、KMS キー、ステータス)。

# Optional: --project_id={project_id}
hcloud CSMS ShowSecret --cli-region={region} --secret_name={secret_name}
skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- hcloud CSMS ShowSecret --cli-region={region} --secret_name={secret_name}

シークレットのバージョンとステージを一覧表示します(値は表示しません)。

# Optional: --project_id={project_id} --limit={n} --marker={marker}
hcloud CSMS ListSecretVersions --cli-region={region} --secret_name={secret_name}
skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- hcloud CSMS ListSecretVersions --cli-region={region} --secret_name={secret_name}

KMS キーを一覧表示します。

# Optional: --project_id={project_id} --key_state={state} --key_spec={spec} --limit={n} --marker={marker}
hcloud KMS ListKeys --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- hcloud KMS ListKeys --cli-region={region}
2. 診断(R3 — 読み取り専用、自動実行)

huawei_analyze_dew_rotation — すべての CSMS シークレットのローテーションステータスを分析します。

# Step 1: list all secrets — 复用 §1 命令: hcloud CSMS ListSecrets --cli-region={region}
# Step 2: for each secret, describe to read rotation config (auto_rotation, rotation_period, rotation_func_urn, status)
#   复用 §1 命令: hcloud CSMS ShowSecret --cli-region={region} --secret_name={secret_name}
# Step 3: for each secret's KMS key, check key rotation status:
# Optional: --project_id={project_id}
hcloud KMS ShowKeyRotationStatus --cli-region={region} --key_id={key_id}
skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- hcloud KMS ShowKeyRotationStatus --cli-region={region} --key_id={key_id}

ローテーションステータス(有効/無効、期間、関数 URN)を含むシークレットのテーブルを出力し、次のリスクを検出します。 自動ローテーションが設定されていないシークレット、ローテーション関数の欠落、無効化された KMS キー。

huawei_analyze_dew_key_usage — CTS(Cloud Trace Service)による KMS キーの使用状況監査です。

# Optional: --project_id={project_id} --service_type=KMS --resource_type={resource_type}
# Optional: --trace_name={trace_name} --from={start_ts} --to={end_ts} --limit={n} --next={next}
# 可选: --trace_type=data(数据事件)
hcloud CTS ListTraces --cli-region={region} --trace_type=system
skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- hcloud CTS ListTraces --cli-region={region} --trace_type=system

service_type=KMSのトレースをフィルタリングして、どのキーが、いつ、どこから使用されたか(暗号化/復号/削除)を監査し、異常(kms:Decryptの失敗した試行、削除済み/無効化されたキーに対する操作)を検出します。

3. 管理(R2 — プレビュー+確認)

huawei_create_kms_key — カスタマーマスターキーを作成します:

# [W] 写操作 (WRITE): creates a KMS customer master key — R2: preview + explicit confirmation required
# Optional: --key_description={description} --key_spec=AES_256(其他可选: RSA_2048, RSA_3072, RSA_4096, EC_P256, EC_P384, SECP256K1)
# Optional: --key_usage=ENCRYPT_DECRYPT(其他可选: SIGN_VERIFY)--project_id={project_id}
hcloud KMS CreateKey --cli-region={region} --key_alias={alias}
skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- hcloud KMS CreateKey --cli-region={region} --key_alias={alias}

huawei_enable_csms_secret_rotation — シークレットの自動ローテーションを有効にします:

# [W] 写操作 (WRITE): modifies the secret's rotation configuration — R2: preview + explicit confirmation required
# Optional: --rotation_period={days} --rotation_func_urn={urn} --description={description}
# Optional: --project_id={project_id}
hcloud CSMS UpdateSecret --cli-region={region} --secret_name={secret_name} --auto_rotation=true
skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- hcloud CSMS UpdateSecret --cli-region={region} --secret_name={secret_name} --auto_rotation=true

注:KooCLI では CSMS UpdateSecret --auto_rotation=true でローテーションを有効にします (KooCLI 7.2.x には独立した EnableSecretRotation 操作はありません。huaweicloudsdkcsms 3.1.x の UpdateSecretRequestBody.auto_rotation で確認済みです)。

4. 管理(R1 — プレビュー+確認)

huawei_update_csms_secret_version — シークレットのバージョンを手動でローテーションします(即時ローテーション):

# [W] 写操作 (WRITE): immediately rotates the secret (creates a new version) — R1: explicit confirmation required
# Optional: --project_id={project_id}
hcloud CSMS RotateSecret --cli-region={region} --secret_name={secret_name}
skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- hcloud CSMS RotateSecret --cli-region={region} --secret_name={secret_name}

ローテーションは即時に実行されます。ランダムに生成された値を含む新しいシークレットバージョンがバックグラウンドで作成され、SYSCURRENT としてマークされます。シークレット値がエージェントのコンテキストを通過することはありません。

特定の新しい値を保存する必要がある、承認済みの自動化での代替方法: hcloud CSMS CreateSecretVersion --cli-region={region} --cli-jsonInput=<protected-json-file> 値は保護された一時ファイルまたは標準入力を介して指定する必要があります(references/csms-usage.md を参照してください。 シークレットをコマンドライン引数として渡さないでください。会話履歴に入力したり、出力したりしないでください)。

huawei_delete_kms_key — KMS キーの削除をスケジュールします。取り消せません — 先に警告を読んでください:

# [W] 写操作 (WRITE) — IRREVERSIBLE: schedules KMS key deletion — R1: explicit confirmation required (see warning below)
# Optional: --project_id={project_id} --pending_days=7..1096(默认 7)
hcloud KMS DeleteKey --cli-region={region} --key_id={key_id} --pending_days=7
skill-quality-cli run --skill-name huawei-cloud-dew-key-management -- hcloud KMS DeleteKey --cli-region={region} --key_id={key_id} --pending_days=7

警告(実行前に必ず表示してください):

  • キーの削除がスケジュールされ、--pending_days(7~1096 日、設定可能。デフォルトは 7 日)の保留期間に入ります。
  • 保留期間中は削除をキャンセルできます:hcloud KMS CancelKeyDeletion --cli-region={region} --key_id={key_id}。
  • 保留期間が過ぎるとキーは完全に削除され、そのキーで暗号化されたデータは復元できません。
  • この操作は R1 です。必ずキー ID、エイリアス、保留日数を表示してから、明示的な確認を求めてください。

ブロック対象の操作(セキュリティポリシー)

以下の操作はシークレットの機密情報を露出させるため、このスキルのポリシーによってブロックされています。絶対に実行せず、代わりに安全な方法を使用してください:

ブロック対象の操作理由安全な代替方法
CSMS DownloadSecretBlob(ブロック対象)シークレット値の BLOB をダウンロードしますIaC/SDK で、利用するアプリケーションの実行時に {{resolve:csms:secret-id:SecretString:key}} を挿入します
CSMS ShowSecretVersion(ブロック対象 — 値フィールド)バージョンのペイロードを返します実行時に挿入します。secret_string フィールドを表示しないでください
KMS DecryptData(ブロック対象)平文を返しますエージェントのコンテキストではなく、アプリケーションの実行環境内で復号します
KMS CreateDatakey / CreateDatakeyWithoutPlaintext(ブロック対象 — 平文側)データキーの機密情報アプリケーションの実行環境内でエンベロープ暗号化を使用します

実行時の挿入パターン

シークレット値を使用する必要があるアプリケーションでは、MCP プロキシの解決モードを使用してください。これにより、値は実行時に挿入され、エージェントのコンテキストに入ることはありません:

{{resolve:csms:secret-id:SecretString:key}}
# Terraform / IaC — reference the secret by name; value is resolved at apply time
data "huaweicloud_csms_secret" "db" {
  secret_name = "prod-db-password"
}
# Use: data.huaweicloud_csms_secret.db.secret_string
# 应用侧运行时取值的 SDK 参考(仅供应用开发参考 — 本 skill 不执行 SDK 代码,
# 业务命令一律走 hcloud CLI;此示例不会被本 skill 的命令提取器视为业务命令):
#   1) 构建客户端: CsmsClient.new_builder().with_credentials(cred).with_region(...).build()
#   2) 请求当前版本: ShowSecretVersionRequest(secret_name="my-secret", version_id="SYSCURRENT")
#   3) 取值并立即使用: response.version.secret_string(不要打印/持久化)

トラブルシューティング

エラー根本原因 → 解決方法
シークレットが見つからないリージョン/プロジェクトが間違っています → シークレット名とリージョン(--cli-region)を確認してください
CSMS で AccessDenied が発生するIAM ポリシーが不足しています → 必要に応じて csms:ShowSecret/csms:ListSecrets と kms:Decrypt を追加してください(references/iam-policies.md を参照)
KMS キーが無効になっているキーの削除がスケジュールされているか、手動で無効化されています → hcloud KMS EnableKey --cli-region={region} --key_id={id} を実行するか、新しいキーを作成してください
ローテーションが停止しているローテーション関数(FUNC)のエラーです → ローテーション関数のログを確認し、rotation_func_urn を検証してください
CTS がデータを返さないトラッカーが有効になっていないか、--trace_type が間違っています → トラッカーを作成してください。KMS のコントロールプレーン(管理)イベントには system を使用してください
キーが存在するのに ListKeys が空であるリージョン/エンタープライズプロジェクトが間違っています → --cli-region と --enterprise_project_id を確認してください

セキュリティに関する考慮事項

  • MUST 実行時インジェクション({{resolve:csms:...}})を使用してください。エージェントのコンテキストにシークレット値を取得することは絶対に避けてください。
  • MUST 認証情報を90日ごとにローテーションしてください(配置の rotation_period ≤ 90 days)。
  • MUST CSMS シークレットの自動ローテーションを有効にしてください。
  • MUST CTS 経由で KMS キーの使用状況を監査してください(huawei_analyze_dew_key_usage)。
  • SHOULD 機密データにはカスタマー管理キー(CMK)を使用してください。
  • MUST 本番ワークロードではデフォルトの KMS キーを使用しないでください。
  • MUST AK/SK、パスワード、トークン、シークレット値を出力やレポートに表示しないでください。

KooCLI コマンド形式の標準

機能説明例
サービス名hcloud <service> --help に表示される CSMS、KMS、CTS(メタデータディレクトリは小文字の csms/kms/cts)hcloud CSMS ListSecrets --cli-region=cn-north-4
操作名パスカルケースListSecrets、ShowSecret、UpdateSecret、RotateSecret、CreateKey、DeleteKey、ListTraces
リージョンパラメーター--cli-region=<value>--cli-region=cn-north-4
単純パラメーター--key=value--secret_name=prod-db-password
インデックス付きパラメーター--key.N=value--event_subscriptions.1=urn:smn:...

パラメーターの確認

以下のすべてのパラメーターは、hcloud <Service> <Operation> --help(KooCLI 7.2.12)で確認済みです。

CSMS
操作パラメーター型必須例
ListSecrets--limitintいいえ--limit=50
ListSecrets--markerstringいいえ--marker=<last_secret_name>
ListSecrets--event_namestringいいえ--event_name=my-event
ShowSecret--secret_namestringはい--secret_name=prod-db-password
ListSecretVersions--secret_namestringはい--secret_name=prod-db-password
ListSecretVersions--limitintいいえ--limit=20
UpdateSecret--secret_namestringはい--secret_name=prod-db-password
UpdateSecret--auto_rotationboolはい(ローテーション時)--auto_rotation=true
UpdateSecret--rotation_periodstringいいえ--rotation_period=30d
UpdateSecret--rotation_func_urnstringいいえ--rotation_func_urn=urn:fss:cn-north-4:...
UpdateSecret--descriptionstringいいえ--description="db password"
RotateSecret--secret_namestringはい--secret_name=prod-db-password
KMS
操作パラメーター型必須例
ListKeys--key_statestringいいえ--key_state=2(有効)
ListKeys--key_specstringいいえ--key_spec=AES_256
ListKeys--limitintいいえ--limit=50
CreateKey--key_aliasstringはい--key_alias=app-encryption-key
CreateKey--key_descriptionstringいいえ--key_description="Application data encryption"
CreateKey--key_specstringいいえ--key_spec=AES_256(デフォルト)
CreateKey--key_usagestringいいえ--key_usage=ENCRYPT_DECRYPT(デフォルト)
DeleteKey--key_idstringはい--key_id={key_id}
DeleteKey--pending_daysstringはい--pending_days=7(7~1096)
ShowKeyRotationStatus--key_idstringはい--key_id={key_id}
CTS
操作パラメーター型必須例
ListTraces--trace_typestringはい--trace_type=system(system=管理イベント、data=データイベント)
ListTraces--service_typestringいいえ--service_type=KMS
ListTraces--trace_namestringいいえ--trace_name=DeleteKey
ListTraces--resource_typestringいいえ--resource_type=cmk
ListTraces--from / --tostringいいえ--from=2026-08-01T00:00:00Z
ListTraces--limitintいいえ--limit=50

すべての操作に共通:--cli-region(必須)、--project_id(API では必須ですが、省略した場合は認証済みプロファイルから自動入力されます)。

参考資料

  • references/iam-policies.md — CSMS/KMS/CTS の最小権限 IAM ポリシー
  • references/cli-installation-guide.md — hcloud CLI のインストールと AK/SK +プロファイル認証
  • references/csms-usage.md — CSMS の使用ガイド(アクション、ローテーション、ポリシールール)
  • references/kms-usage.md — KMS の使用ガイド(作成/一覧表示/ローテーション/削除、ブロッキングルール)
  • references/dataflow-diagram.md — Mermaid データフロー図
  • references/verification-method.md — 検証方法と受け入れチェック
  • references/acceptance-criteria.md — 10 個の huawei_* アクションの受け入れ基準
  • DEW ドキュメント:https://support.huaweicloud.com/dew/
  • API Explorer:https://console.huaweicloud.com/apiexplorer/#/openapi/DEW/doc

コメント