密钥管理服务(KMS)是云服务商提供的安全、易用的管理类服务。客户不用花费许多成本来保障密钥的机密性、完整性与可用性。利用密钥管理服务,客户可安全、便捷地使用密钥,专注于开发加解密功能场景。
KMS可解决不同角色的不同密钥需求,如下表所示。
角色 |
问题 |
解决方法 |
应用/网站开发者 |
·程序需用密钥、证书来加密或签名,希望密钥管理的功能是安全且独立的 ·不论应用部署在哪里,都能安全地访问到密钥。 ·绝不接受把明文的密钥到处部署 |
主密钥存放在KMS服务中,在使用时调用KMS服务解密数据密钥。 |
服务开发者 |
·不想承担客户密钥、数据的安全责任 ·希望客户自己管理密钥 ·在有授权的情况下用用户指定的密钥加密数据 |
用信封加密技术及开放的API,服务能集成KMS,用用户指定的主密钥完成数据密钥的加解密,能轻松的实现明文不落盘,也不用为管理用户的密钥发愁 |
首席安全官(CSO) |
·密钥管理能满足合规需求 ·确保密钥都被合理地授权,任何使用密钥的情况都必须被审计 |
KMS服务接入RAM服务实现统一的授权管理。接入ActionTrail服务实现密钥使用的审计 |
从表中可看出,用KMS解决密钥管理问题有2种方式:一种是直接用KMS来加密/解密客户数据,另一种是基于信封加密方法实现本地加解密。
1.直接使用KMS加密、解密客户数据
客户可直接调用KMS的API,用指定的客户主密钥来加解密数据,此场景适合少量数据的加解密,用户的数据可经安全信道传至KMS服务端,对应结果会在服务端加解密后经安全信道返给用户。
2.使用信封加密方法实现本地加解密
信封加密指给要加密的数据得到“一次一密”的对称密钥,借特定的主密钥加密此对称密钥,让其处在被“密封的信封保护”的状态。在传输、存储等非安全的通信过程中直接传递“被密封保护的密钥”,当且只在用此对称密钥时,打开信封拿出密钥。
客户可直接调用KMS的API,用指定的CMK得到解密数据密钥,自行用数据密钥在本地加解密数据,这适合大量数据的加解密,客户不用经网络传输许多数据,可低成本的进行大量数据的加解密。