KMS加密有两种场景:
data key来加密。CMK(Customer Master Key)用户接触不到,用户只需要传递要加密的数据和要解密的数据。

这种模式与上一节讨论的信封加密(Envelope Encryption)不同,在处理更大数据时,KMS 会使用信封加密模式,生成数据密钥来加密实际数据。当数据量小时(如密码),KMS 可以直接使用 CMK 进行加密。
对大于4K的数据,需要使用Envelope encryption加密。当提到Encryption SDK,则等同于Envelope encryption ,等同于调用GenerateDataKey API。
首先,要对大文件进行加密,我们一定要有加密的key,这个key而且不能在本地明文存储,而是存储的密文形式

所以,调用GenerateDataKey API时,第一步就是KMS返回plaintext data key和encryted data key
我们对文件加密完后,要删除明文的data key,保留密文形式的data key:

对文件进行解密时,首先将encrypted data key发送给KMS,KMS对其进行解密,返回明文的data key。再对文件进行解密:

在第6节和第7节,会对这两种模式进行具体操作介绍
三种Customer Master Key(CMK):
KMS的API调用:$0.03 / 10000 calls