← 返回博客列表
安全2026-05-27·5 分钟阅读

Vault 设计 — 密文托管、明文永不回显、可轮换、访问审计

默认后端用对称加密把密文存在平台侧,API 永不回显明文,只给引用名 / 别名,可轮换 + 全量访问审计(vault_access_log,记操作类型 / 操作者 / 时间 / 成败)。如需更强隔离可切阿里云 Secrets Manager 后端。

凭据托管的目标很朴素:你把微信支付商户 API 密钥这类敏感值交给平台后,日常用得上、但不会被随手看到。我们的默认做法是密文托管 — 用对称加密把密文存在平台侧,API 永不回显明文,只回引用名 / 别名,可随时轮换,且每次访问都留审计。

存储分层(默认后端)

密文层 — 平台侧对称加密

用户每次写入 Vault 的 secret_value 用对称加密落库,API 读取永不回显明文,只对外暴露引用名 / 别名(ref / alias)。需要用到明文的环节由后端在受控上下文内解密、用完即弃,绝不回传给前端。

元数据层 — 我们的数据库

vault_entries 表存:id / user_id / project_id / key_alias / ref / created_at / last_used_at / expires_at,以及加密后的密文。对外接口永远只给引用名 / 别名,不回显明文。

SELECT key_alias, ref, last_used_at
FROM vault_entries
WHERE user_id = 'xxx';

-- 对外接口只返回引用名 / 别名,明文永不回显;
-- 密文可随时轮换,每次访问都进 vault_access_log。

审计层 — vault_access_log

每次写 / 读 / 改 / 轮换 / 删 都进 vault_access_log,记操作类型 + 操作者(actor)+ 时间 + success/failure。即便没人盗你的密钥,你也能看到这个密钥近期被读取过几次、成功还是失败。

需要更强隔离 — 阿里云 Secrets Manager 后端

如果你需要让明文不落在平台侧,可切换阿里云 Secrets Manager 后端:写入直接走阿里云 API,明文只存阿里云,我们库里仅留 ref(如 acs:kms:cn-hangzhou:xxx:secret/aiops-user-{uid}-{alias}/{version}),想拿明文需在阿里云侧授权。

客户端模式 — SSH 私钥可不出本机

如果你装了桌面客户端,SSH 私钥这种最敏感的东西可以直接存进本机 Keychain(macOS Keychain / Win DPAPI / Linux Secret Service),Vault ref 字段写 `local:ssh-key-alias`。服务端从此完全看不到这个密钥的存在 — 私钥可完全不出本机。

默认即密文托管:明文永不回显、可轮换、全程访问审计;客户端模式下,SSH 私钥还能完全不出本机。

同类阅读

觉得有用?试试 中杼AIOps — 把 AI 写的代码安全送上你自己的生产服务器。

立即免费试用 →