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 Agent 技能。它区分只读分析与需确认的变更,且不会将密钥值读取到 Agent 上下文中。

主要功能

  1. 01列出并查看密钥元数据
  2. 02检查密钥版本和 KMS 密钥
  3. 03分析轮换配置
  4. 04通过 CTS trace 审计密钥使用
  5. 05管理操作前设置确认门槛

适用场景

  1. 01检查密钥轮换状态
  2. 02审计 KMS 密钥活动
  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

详细介绍

华为云 DEW(数据加密工作坊)

停止——请勿依据常识作答。 请遵循以下流程。

构造命令前,务必先运行 hcloud <Service> <Operation> --help,以了解准确的参数名称和要求。

步骤 0:安装 skill-quality-cli(幂等操作,若已安装则跳过)

CLI 会安装到 ~/.local/bin/,该目录不一定位于 $PATH 中(直接运行 skill-quality-cli 可能以退出码 127 失败)。请先导出路径,再运行安装程序(它也会将 PATH 导出语句写入 ~/.bashrc / ~/.profile,供后续 Shell 使用):

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。

概述

此技能为华为云 DEW(数据加密服务)提供 AI Agent 能力,其中包含两项服务:

服务全称范围
CSMS云凭据管理服务凭据生命周期(仅元数据——绝不获取凭据值)
KMS密钥管理服务客户主密钥(CMK)、加密密钥生命周期

它通过 10 个 huawei_* 操作提供四组能力:

能力风险级别操作
查询(只读)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 明文)读取或获取到 Agent 上下文中
  • ❌ 绝不在对话中回显凭据(AK/SK、密码、令牌)

依赖项:通过 skill-quality-cli 自动收集质量遥测数据(若未安装,则由 scripts/ensure_cli.sh 安装)。

重要警告

陷阱原因
绝不将凭据值获取到 Agent 上下文中请改用 {{resolve:csms:secret-id:SecretString:key}} 进行运行时注入
绝不在对话中回显凭据AK/SK、密码和令牌绝不能出现在 Agent 输出中
删除 KMS 密钥不可逆删除操作会安排一个 7~1096 天(可配置,默认 7 天)的待删除期限;期限过后,该密钥及所有使用它加密的数据都将无法恢复
凭据轮换需要自动化手动轮换可能导致凭据过期;建议使用轮换函数进行自动轮换
跨账户使用 KMS 需要授权KMS 密钥具有区域属性;跨区域/跨账户使用需要配置授权

前提条件

  1. hcloud CLI(KooCLI 7.2.x 或更高版本)已安装并完成身份验证。
    • 安装和配置指南:参见 references/cli-installation-guide.md
    • 支持以下两种身份验证模式:
      • 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):显示完整命令、要创建/更新的资源,并在运行前询问“确认?”
  • R1 操作(huawei_update_csms_secret_version、huawei_delete_kms_key):显示完整命令和副作用,并要求明确确认。对于删除操作,还必须打印不可逆删除警告(7~1096 天的待处理窗口,默认 7 天)。

以下命令块中的写操作标记为 [W] / 写操作(检测关键字:create / update / delete / rotate — 与测试流水线写操作检测器所识别的动词相同)。

核心命令

以下所有命令均以双重形式展示:裸可执行命令 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(云跟踪服务)审计 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。密钥值不会经过 Agent 上下文。

当获批的自动化需要存储特定新值时,可使用替代方案: hcloud CSMS CreateSecretVersion --cli-region={region} --cli-jsonInput=<protected-json-file> 必须通过受保护的临时文件或 stdin 提供该值(参见 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(禁止)下载密钥值数据块在 IaC/SDK 中,由使用该密钥的应用进行 {{resolve:csms:secret-id:SecretString:key}} 运行时注入
CSMS ShowSecretVersion(禁止 — 值字段)返回版本载荷运行时注入;切勿呈现 secret_string 字段
KMS DecryptData(禁止)返回明文在应用运行时内部解密,切勿在 Agent 上下文中解密
KMS CreateDatakey / CreateDatakeyWithoutPlaintext(禁止 — 明文侧)数据密钥材料在应用运行时内部进行信封加密

运行时注入模式

对于必须使用密钥值的应用,请使用 MCP 代理的解析模式,以便在运行时注入该值,且不让其进入 Agent 上下文:

{{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:...}})。绝 NEVER 将密钥值提取到 Agent 上下文中。
  • MUST 每 90 天轮换凭据(配置 rotation_period ≤ 90 天)。
  • MUST 为 CSMS 密钥启用自动轮换。
  • MUST 通过 CTS 审计 KMS 密钥使用情况(huawei_analyze_dew_key_usage)。
  • SHOULD 对敏感数据使用客户管理的密钥(CMK)。
  • MUST NOT 在生产工作负载中使用默认 KMS 密钥。
  • MUST NOT 在任何输出或报告中回显 AK/SK、密码、令牌或密钥值。

KooCLI 命令格式标准

特性说明示例
服务名称CSMS、KMS、CTS(如 hcloud <service> --help 所示;元数据目录名为小写的 csms/kms/cts)hcloud CSMS ListSecrets --cli-region=cn-north-4
操作名称PascalCaseListSecrets、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

评论

支持 Markdown