Golang Go语言中的一个简单KMS实现
使用 GO 写了一个简单的秘钥管理系统,现在支持的功能
- 秘钥管理分为三层,rootkey ==> key encryption key ===>access key 。root key 使用服务端证书 hkdf 派生算出来。
- 每个 access key 按照 namespace & name 做索引。区分 environment (还没限制 environment 必须是 test/staging/production ,现在可以随便写)
- 使用 grpc 的 tls 双向认证做权限控制,每张 CA 签发出来的证书是一个用户,每个用户证书里面的 subject 需要有不同的 appkey 内容。用户创建 ak 后可以授权给其它用户读取或者更新
实现上:
- 使用 postgresql 做数据持久化
- 使用 grpc 的双向 tls 做认证
目前功能还比较简单,只有创建 /读取 /授权等功能。还没加入 KEK 轮转,AK 自动生成等功能。等待后期增强。
有什么建议可以直接提。谢谢
github 链接: https://github.com/hxndg/qkms
Golang Go语言中的一个简单KMS实现
更多关于Golang Go语言中的一个简单KMS实现的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
3 回复