-
产品及方案 产品及方案
-
数据驱动型组织通过体系化的方法构建全域数据能力,实现数据驱动运营,重塑组织生产力
- 行业方案
- 典型方案
- 产品
-
数据驱动型组织
- 服务与支持
- 社区
- 合作伙伴
- 关于爱数
请选择咨询类型
扫码关注
爱数技术支持中心公众号
Proton Key Management Service (KMS) 使用开源组件hashicorp vaul作为核心组件,提供可靠安全高可用的
使用vault的加密/解密功能,proton KMS系统提供KMS服务插件支持K8S存储在etcd内数据进行加密
KMS提供密钥管理功能的同时,解决根密钥如果管理的问题。Proton KMS部署的hashicorp vault集群使用shamir密钥共享算法(Shamir Secret Sharing),解决根密钥的安全管理问题,将根密钥划分为5份,满足3份密钥共享后可以计算出根密钥,而小于3份则不能;5份密钥材料按照2/2/1的份额数量分配到3个不同的keyshareholder节点保存
vault各层密钥关联如下图所示
vault存储中只存放经过加密的数据/密钥, 因而每次重启的时候vault需要“管理员”提供足够份额的密钥材料来生成根密钥(unseal)
数据加密方面,我们没有扩展hashicorp vault和k8s的加密功能,默认安装的社区版vault/k8s,使用golang的crypto和x/crypto库中的加密算法对数据进行加密,对于存储在vault内部的数据使用的加密算法: 256-bit Advanced Encryption Standard (AES) cipher in the Galois Counter Mode (GCM) with 96-bit nonces; 对于存储在etcd内部的数据,k8s使用AES CBC with PKCS#7 padding对数据进行加密
k8s的KMS plugin使用的访问vault的token可以更换和撤销,并且限制了使用token的IP来源地址,每个token都跟单独的一个IP地址绑定
所有跨节点的数据传输的安全性都是通过用https/TLS实现
只有当以下几个条件同时满足的时候,etcd内存储的数据安全才会出现问题:
3节点HA vault集群,存储使用本地磁盘,raft协议同步数据,最多允许1个节点不可用
3节点,每个holder管理vault根密钥总份额的一个子集,一个keyshareholder节点掌握的份额总数不足以计算出vault的根密钥,但是任意2个keyshareholder都可以计算出根密钥,最多允许1个节点数据泄露
在每一个k8s apiserver节点上运行的plugin模块, 通过unix socket与apiserver通讯,为apiserver提供加密/解密功能的代理
KMS是数据安全中非常重要的组件, proton kms组件提供的私密数据管理功能,可以为应用的数据安全问题提供全面的解决方案。
1.0.0版本提供的k8s kms plugin组件可以跟k8s直接集成,支持对rest数据(用户的secret等)的加密存储,k8s用户可以在无感知变化的情况下实现对secret类型的数据对象进行加密
1.0.0主要用于k8s系统中对secret类型的数据在存储到etcd之前进行加密,应用层并无感知;对于有加密存储需求的应用,需要用secret类型的资源来存储数据
请就本文对您的益处进行评级: