KMS加密有两种场景:
data key
来加密。CMK(Customer Master Key
)用户接触不到,用户只需要传递要加密的数据和要解密的数据。
对大于4K的数据,需要使用Envelope encryption
加密。当提到Encryption SDK,则等同于Envelope encryption ,等同于调用GenerateDataKey API
。
首先,要对大文件进行加密,我们一定要有加密的key,这个key而且不能在本地明文存储,而是存储的密文形式。就像你的zip文件,解密密码不能明文存放到本地,应当存放它的加密后密文。
所以,调用GenerateDataKey API
时,第一步就是KMS返回plaintext data key
和encryted data key
我们对文件加密完后,要删除明文的data key
,保留密文形式的data key
:
对文件进行解密时,首先将encrypted data key
发送给KMS,KMS对其进行解密,返回明文的data key
。再对文件进行解密:
三种Customer Master Key(CMK):
KMS的API调用:$0.03 / 10000 calls