浅析AWS KMS密钥管理服务

浅析AWS KMS密钥管理服务

AWS Key Management Service (AWS KMS) 是一个密钥管理服务,可以用来创建和管理您的主密钥,AWS KMS使用对称加密算法,即使用相同的算法和密钥来加密和解密数字数据。AWS KMS已经和大多数的AWS服务集成,这就意味着您可以使用自己的密钥来加密这些服务中的数据,同时,您可以使用AWS CloudTrail服务来满足您的审核、监督和合规性要求,您可以随时通过AWS CloudTrail来监控和查询您的密钥使用记录。

信封加密


AWS KMS使用信封加密的方式实现数据的保护。简单来说,信封加密就是用数据密钥对明文数据进行加密,然后再使用其他数据密钥对这个数据密钥进行加密,但是您的最后一个数据密必须以明文的形式存在,以便您对其他的数据密钥进行加密和解密操作。这个最顶层的明文密钥称为主密钥,AWS KMS可以帮我们安全地存储和管理这个主密钥,在AWS KMS服务中,这个主密钥称为"客户主密钥(CMK)"。

CMK类型


客户主密钥(CMK)是AWS KMS 中的主要资源,AWS KMS使用CMK来生成、加密和解密数据密钥。AWS 中的CMK有以下3种类型:

➀ 客户托管CMK

客户托管CMK是指您自己创建的主密钥,您对这类CMK有完全的权限,如启用、禁用、删除、轮换等。在您AWS 账户的每个区域(Region)中,您最多可以创建1000个客户托管CMK,但是您可以通过向AWS申请提高这个限制,以便创建更多的CMK。

➁ AWS 托管 CMK

AWS托管CMK是由与AWS KMS集成的服务创建,这类CMK的别名格式为 aws/service-name,如 aws/ebs,所以您无法使用 aws/格式来创建客户托管CMK。您可以查看AWS账户中的AWS托管CMK,如果您使用了AWS托管CMK,也可以在AWS CloudTrail中对使用情况进行审核。您无法管理AWS托管CMK,如进行删除、密钥轮换等操作。AWS 托管 CMK 不计入有关账户中 CMK 数的限制。



➂ AWS拥有的CMK

AWS拥有的CMK是AWS拥有和管理的在多个AWS账户中使用的CMK集合的一部分,您无法查看、管理以及使用AWS拥有的CMK,所以您也无法在AWS CloudTrail中审核使用情况。

KMS身份验证及访问控制



AWS KMS使用IAM角色或IAM用户来对请求进行验证,我们建议您通过角色来进行相关的授权,而不是直接通过IAM用户的ak,sk。您可以通过AWS KMS密钥策略或IAM策略来进行访问控制,密钥策略使用JSON来定义权限,需要注意的是,策略文档不能超过32KB。



您必须使用AWS密钥策略来控制对CMK的访问,因为IAM策略本身无法允许对CMK进行访问,所以我们建议您将AWS密钥策略和IAM策略结合使用,以便对CMK进行详细的权限控制。

密钥轮换



不管是加密还是密码,最佳实践是密钥不要大量的重复使用,同时,应该对密钥进行定期的更新(轮换)。AWS KMS支持对客户托管CMK进行自动轮换密钥和手动轮换密钥,默认情况下,AWS KMS 禁用CMK的自动轮换功能,启用后,AWS KMS会在启用日期365天之后自动轮换密钥,您无法自定义自动轮换的天数,自动轮换的过程对客户完全是透明的,客户无需更改任何配置,AWS KMS会自动完成所有的操作,同时,您可以通过订阅AWS CloudWatch Events中的事件,以便在发生自动轮换时可以直接通知到您。如果1年1次的频率无法满足当前需求,您也可以手动轮换密钥,但手动轮换的方式意味着您必须要更新您的应用程序使用新的主密钥。

对于AWS 托管 CMK,您无法管理其自动轮换,AWS KMS 会每3年进行一次密钥轮换,当然,这也意味着您无法通过手动轮换的方式来管理AWS托管CMK。对于您自己导入的CMK,您只能使用手动方式来进行密钥的轮换。

接下来,让我们一起通过演练,来看一下如果使用AWS KMS创建您的第一个客户托管CMK。

演练:创客户托管CMK


➀ 打开KMS服务控制台,并选择"客户管理的密钥"



➁ 选择"创建密钥"



➂ 填写别名和描述等信息,然后选择"下一步"



➃ 根据需要添加Tag,我们建议您添加类似的Tag,以方便对其进行管理



➄ 定义密钥的管理员,同时也可以定义管理员是否可以删除此密钥



➅ 定义权限,也就是谁可以调用此CMK进行加密和解密操作,您也可以指定其他AWS账户,指定的那个用户就会有权限允许其账号下的IAM用户和角色去使用该CMK




➆ 确认当前的策略,确认没有问题后点击"完成",即可创建一个CMK



➇ 如果想启用密钥轮换,可以在CMK详情中的"密钥轮换"中设置



通过KMS加密S3中的文件


在AWS S3中使用AWS KMS来加密数据时,AWS S3会自动完成数据密钥的申请、数据的加密等操作,整个过程对用户来说是透明的,用户无需进行任何的额外操作。详细的加密流程如下:



➀ 用户上传文件到配置KMS加密的S3存储桶

➁ S3会向AWS KMS服务发起请求,请求明文数据密钥以及使用指定的客户托管 CMK 或 AWS 托管 CMK 加密的密钥的副本

➂ AWS KMS服务收到请求后,会使用S3请求中指定的CMK来创建一个数据密钥,并使用CMK来加密这个数据密钥

➃ AWS KMS会将明文数据密钥和加密后的数据密钥一同发送给AWS S3

➄ AWS S3收到密钥后,会使用明文数据密钥来加密指定的文件,

➅ 加密完成后,会尽快从内存中删除明文密钥,只保存加密后的文件和加密的数据密钥

➆ AWS S3会将加密后的数据保存到S3,同时将将加密的数据密钥作为元数据存储

了解AWS S3使用AWS KMS加密数据的原理以后,让我们通过下面的演练来实际体验一下整个加密过程。

演练:使用KMS加密S3中的文件



在了解AWS KMS及AWS S3之间的加密流程后,接下来让我们一起来看下整个加密过程的实际操作步骤。

➀ 准备工作:您必须有一个已经创建好的CMK以及一个AWS S3存储桶

注意:AWS KMS和AWS S3存储桶必须位于同一AWS Region,否则所有加密的请求会出现400错误

➁ 如果您想对上传到指定存储桶的文件都进行加密,则可以直接在AWS S3属性中的"默认加密"中指定您的CMK。



CMK ARN可以在AWS KMS控制台中的CMK详细信息里获取到



➂ 加密配置完成后,可以在AWS S3存储桶的"默认加密"中看到所使用的加密方式



➃ 上传本地文件到AWS S3存储桶



➄ 查看S3文件属性,可以看到已经使用我们指定的CMK进行了加密



通过KMS解密S3中的加密文件


和加密一样,解密过程对用户来说也是透明的,S3会自动完成数据密钥和数据的解密工作,用户在S3中进行下载等文件操作时,S3会自动对加密的文件进行解密,所以用户下载的文件是解密后的文件。但需要注意的是:如果您用某个CMK加密了S3中的文件,您必须要保管好该CMK,请不要轻易进行禁用和删除操作,否则使用该CMK加密的所有S3文件将无法下载。



详细的解密流程如下:



➀ 用户发起加密文件的解密请求

➁ AWS S3会将用户的请求发送到AWS KMS服务,该请求中包含了加密的数据密钥以及加密所使用的的CMK等信息

➂ AWS KMS使用对应的CMK来对加密的数据密钥进行解密

➃ AWS KMS会将解密后的明文数据密钥发送到S3

➄ S3收到后,会使用明文密钥来对加密数据进行解密

➅ 用户得到解密后的数据文件

➆ 解密完成后,S3会尽快从内存中删除明文数据密钥

AWS KMS服务在中国区的情况


AWS KMS服务目前在北京区域和宁夏区域均可使用,目前已经和Amazon EBS,Amazon S3,Amazon Relational Database Service(RDS)和Amazon Aurora无缝集成,随着AWS中国区服务的增加,后续会支持更多的AWS服务。

深圳SEO优化公司南阳英文网站建设公司鄂州网站排名优化价格丹东百度竞价包年推广报价东营百姓网标王多少钱达州网站推广系统报价哈尔滨网站排名优化多少钱保定设计公司网站推荐滁州网站建设设计报价金昌网站推广工具珠海百姓网标王推广公司铜陵网络营销价格潍坊seo网站优化价格钦州seo排名价格鞍山seo优化哪家好怒江网站推广工具推荐西宁百度seo报价阳泉网站优化推广公司喀什阿里店铺运营价格大理seo优化报价普洱营销型网站建设推荐坪地如何制作网站公司抚州模板推广哪家好大理模板制作多少钱随州外贸网站制作推荐长沙seo排名多少钱大鹏网站优化价格抚顺百度网站优化排名推荐温州关键词排名包年推广多少钱湖州建网站价格沙井建设网站哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化