关注公众号:AWS爱好者(iloveaws)
文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
网站:www.iloveaws.cn
Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们在前面的课程讨论了AWS KMS服务,以及实操演示了使用KMS生成的CMK客户主密钥进行加密、解密的操作。
今天的课程内容信封加密,是KMS部分比较重要的内容。
我们开始今天的课程内容。
我们先看下什么是信封加密。信封加密是类似数字信封技术的一种加密手段。
这种技术将加密数据的数据密钥封入信封中存储、传递、和使用,不再使用主密钥直接加解密数据。也就是说,信封加密使用客户主密钥生成数据密钥,然后用离线的数据密钥在本地加密大量数据,而不再使用主密钥直接加解密数据。
我们上节课实操演示了使用KMS的客户主密钥也就是CMK进行加密,将需要加密的明文内容为“www.iloveaws.cn”直接发送到AWS KMS中进行加密。那什么情况下使用信封加密呢?我们来看下:
首先,AWS KMS支持发送最大4KB的数据进行直接加密,如果需要加密的数据比较大的话就需要信封加密。
其次,信封加密可提供巨大的性能优势,当使用 AWS KMS 直接加密数据时,整个数据必须通过网络进行传输。信封加密降低了网络负载,因为通过网络发送的只有请求,同时传输的数据密钥也更小。避免向 AWS KMS 发送整个数据块并遭遇网络延迟。
最后,将需要加密的数据通过网络传输至KMS,虽然是通过安全信道通信,也有可能会在传输过程中存在诸多风险,如窃听、钓鱼,且一些组织的安全政策也不允许用户将数据传输至AWS进行加密。
以上就是信封加密的定义及主要优势,我们之前课程提到的集成了 AWS KMS 的 AWS 服务和客户端工具包,也是使用信封加密的方法来保护数据的。
我们来看下信封加密是如何工作的。
1、首先,我们创建一个客户主密钥,也就是CMK。
2、CMK生成后,我们使用CMK生成数据密钥,一旦请求KMS生成数据密钥时,用户能够得到一个明文数据密钥和一个密文的数据密钥,共2个数据密钥。
3、然后使用明文数据密钥加密您服务器上的文件,生成密文文件。
4、将密文文件和密文数据密钥一同存储到持久化存储设备或服务中。
完成加密后,将明文文件,以及明文数据密钥删除。
以上,是加密流程部分。
当您完成上述加密操作后,只保留密文密钥和密文文件,这样即使密文密钥和密文文件被窃取,也无法解密获得用户的明文文件。
1、需要解密文件时,首先从持久化存储设备或服务中读取密文数据密钥和密文文件
2、然后,调用KMS服务的Decrypt接口,解密数据密钥,取得明文数据密钥
3、最后,使用明文数据密钥解密文件
好的,以上就是信封加密的加密和解密的过程,下面的内容我们快速实操演示下使用CMK生成数据密钥的操作。
首先,我们需要使用aws cli命令生成数据密钥,打开aws cli的kms命令参考页面,在此页面的最后【可用命令】部分,打开generate-data-key命令页面。
我们前面讲过了,通过调用generate-data-key命令,KMS会返回明文数据密钥以及密文数据密钥,然后使用明文数据密钥加密您自己服务器上的数据。
我们看下这个命令的摘要,命令需要指定cmk的密钥ID
然后还需要一个命令参数—数据密钥的长度,数据密钥的长度我们测试就使用AES_256,生成256位密钥。
好的,命令我们看完了,我们先到KMS管理控制台复制下CMK的密钥ID,然后切换到终端。
输入命令:aws kms generate-data-key --key-id 231973f0-4cbe-4ef5-8ac3-0ef3f8164960 --key-spec AES_256
key-id后面指定CMK的密钥ID,我们粘贴下,然后key-spec 我们输入 AES_256 然后运行命令。
好的,可以看到,命令执行后,返回了明文数据密钥以及密文数据密钥,然后您就可以使用明文数据密钥对您的服务器上的文件进行加密,加密后您可以将密文数据密钥和密文文件一同存储到持久化存储设备或服务中。
需要解密文件时,使用KMS的decrypt接口,将密文数据密钥解密为明文数据密钥,在使用明文数据密钥为本地文件解密。
好的,以上就是我们今天的课程内容,我们今天讲了KMS-信封加密的内容以及加解密的流程,并对生成数据密钥进行了实操演示。
信封加密在KMS服务部分是非常重要的内容,在考试中也会有相应的考点,希望本节课程会为同学们理解信封加密带来帮助。
希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问
关注公众号:AWS爱好者(iloveaws)
文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
网站:www.iloveaws.cn