Keychain 对签名后端进行了抽象,但在生产环境中运营签名者仍然是您的责任。这些实践适用于所有后端;有关选择后端的说明,请参阅选择后端。
分离热签名者与冷签名者
使用低余额的运营("热")签名者处理频繁的自动化交易,使用独立的高价值("冷")签名者处理资金库转移。为冷签名者配备 MPC 托管或云 HSM,并在签名前要求审批策略。由于接口完全相同,每个角色可以使用不同的后端,而无需更改调用点。
有计划地轮换密钥
在 Solana 上,签名密钥即账户地址,因此轮换密钥会产生新地址。请将密钥轮换规划为迁移过程:创建新密钥,将相关权限(或资金)重新分配至新地址,然后停用旧密钥。每个环境使用独立的密钥,确保开发网络密钥不会在主网上被重复使用。
授予最小权限访问
将每个后端的凭证范围限定为签名所需的最低权限。对于 AWS KMS,即针对特定密钥的
kms:Sign 和
kms:DescribeKey;优先使用 IAM 角色而非静态凭证。将相同原则应用于 Vault 策略和托管钱包 API 密钥。
规划高可用性
远程后端依赖网络服务。在依赖签名者之前请调用
isAvailable(),对瞬时故障应用带退避的重试策略,并为服务中断定义回退路径。Keychain 对远程后端强制使用 HTTPS,并设置默认请求超时。
保护密钥与传输安全
- 所有远程后端均通过 HTTPS 进行通信;非 HTTPS 端点将被拒绝。
- 从密钥管理器或环境变量中提供 API 密钥、令牌和凭据 —— 切勿硬编码或将其提交至源代码控制系统。
- Keychain 会对错误响应进行脱敏处理,以避免将密钥泄露到日志中;请确保您自己的日志记录中不含原始凭据和密钥材料。
监控与审计签名
跟踪签名成功率、延迟和失败次数,并对异常峰值设置告警 —— 请参阅 生产就绪中的指标说明。启用提供商侧审计日志(KMS、Vault 或托管方),并与您的应用程序提交的交易进行核对。
Is this page helpful?