HSM里面有三种用户:
我们介绍下后面两种用户:
| 用户类型 | 谁用 | 用途 |
|---|---|---|
| CU (Crypto User) | 用户的应用 | 使用密钥做加密/签名 |
| AU (Appliance User) | AWS 系统 | HSM 集群同步 |
主要场景如下:
| 能力 | 说明 |
|---|---|
| ✅ 创建密钥 | 生成新密钥 |
| ✅ 删除密钥 | 删除自己的密钥 |
| ✅ 共享密钥 | 与其他 CU 共享 |
| ✅ 导入/导出密钥 | 密钥迁移 |
| ✅ 加密/解密 | 使用密钥加密数据 |
| ✅ 签名/验签 | 数字签名操作 |
用户应用 ──(CU 凭证)──► HSM
│
执行加密操作
| 能力 | 说明 |
|---|---|
| ✅ 克隆操作 | 集群内 HSM 数据复制 |
| ✅ 同步操作 | 多个 HSM 间密钥同步 |
| ❌ 访问密钥 | 不能查看/使用用户密钥 |
| ❌ 加密操作 | 不能做任何加密操作 |
HSM 1 (AZ-a) ◄──(AU)──► HSM 2 (AZ-b)
│
自动同步密钥
(AU 只做同步,看不到密钥内容)
上一节我们登录到HSM后,已经有一个AU:

AU 自动存在,我们不用管
| 操作 | CU | AU |
|---|---|---|
| 创建密钥 | ✅ | ❌ |
| 使用密钥 | ✅ | ❌ |
| 查看密钥 | ✅ | ❌ |
| 集群同步 | ❌ | ✅ |
| 克隆 HSM | ❌ | ✅ |
首先使用admin用户登录进去,然后根据想要创建的用户角色,执行:
user create --username <username> --role admin
user create --username <username> --role crypto-user
用户自身还有admin用户都有权限更新密码:
user change-password --username <username> --role <role>
使用admin登录:
user delete --username <username> --role <role>
| 做法 | 原因 |
|---|---|
| 创建 2+ Admin | 防止单点故障 |
| 互相备份 | Admin A 密码丢失,Admin B 可重置 |
| 做法 | 原因 |
|---|---|
| 所有用户管理操作启用 Quorum | 防止单个 Admin 被攻破后造成损害 |
| M of N 控制 | 需要多人批准才能执行敏感操作 |
推荐 Quorum 配置:
├── 创建用户:需要 2/3 Admin 批准
├── 删除用户:需要 2/3 Admin 批准
└── 修改密码:需要 2/3 Admin 批准
好处:
├── 1 个 Admin 密码泄露 → 攻击者仍无法独自操作
└── 内部威胁防护 → 单人无法作恶
| 做法 | 原因 |
|---|---|
| 多个 CU 用户 | 不让一个用户控制所有 |
| 限制每个 CU 权限 | 最小权限原则 |
| 职责分离 | 不同 CU 负责不同任务 |
推荐 CU 分工:
├── CU-KeyManager:负责创建和共享密钥
├── CU-AppEncrypt:只用于加密操作
├── CU-AppSign:只用于签名操作
└── CU-Backup:只用于密钥备份/导出
好处:
├── CU-AppEncrypt 泄露 → 只影响加密功能
├── 无法删除密钥、无法创建新密钥
└── 限制爆炸半径
CloudHSM 集群用户推荐配置:
│
├── Admin 层(管理用户)
│ ├── Admin-Primary
│ ├── Admin-Backup
│ └── Quorum: 2 of 2(所有操作需双人批准)
│
└── CU 层(业务用户)
├── CU-KeyManager(创建/管理密钥)
├── CU-App-Service-A(服务 A 使用)
├── CU-App-Service-B(服务 B 使用)
└── CU-Backup(备份专用)