AWS 数据加密知识点
一、S3 加密
服务端加密
服务器端加密是由接收数据的应用程序或服务在数据目的地对数据进行加密。Amazon S3 在将您的数据写入数据中心内的磁盘时会在对象级别上加密这些数据,并在您访问这些数据时为您解密这些数据。只要您验证了您的请求并且拥有访问权限,您访问加密和未加密对象的方式就没有区别。例如,如果您使用预签名的 URL 来共享您的对象,那么对于加密和解密对象,该 URL 的工作方式是相同的。此外,在您列出存储桶中的对象时,列表 API 会返回所有对象的列表(无论对象是否加密)。
注意
您不能对同一个对象应用不同类型的服务器端加密。
您有三个互斥选项,具体取决于您选择如何管理加密密钥:
具有 Amazon S3 托管密钥的服务器端加密 (SSE-S3)
当您使用具有 Amazon S3 托管密钥的服务器端加密 (SSE-S3) 时,每个对象均使用唯一密钥加密。作为额外的保护,它将使用定期轮换的主密钥对密钥本身进行加密。Amazon S3 服务器端加密使用可用的最强数据块密码之一(即 256 位高级加密标准 (AES-256))来加密您的数据。有关更多信息,请参阅使用具有 Amazon S3 托管加密密钥的服务器端加密 (SSE-S3) 保护数据。
- 每个对象使用唯一数据秘钥加密
在 AWS Key Management Service 中存储客户主密钥 (CMK) 的服务器端加密 (SSE-KMS)
在 AWS Key Management Service 中存储客户主密钥 (CMK) 的服务器端加密 (SSE-KMS) 与 SSE-S3 类似,使用该服务具有一些额外的好处,但也要额外收取费用。使用 CMK 需要单独的权限,该密钥可进一步防止未经授权地访问 Amazon S3 中的对象。SSE-KMS 还向您提供审核跟踪,显示您的 CMK 的使用时间和使用者。此外,您还可以创建和管理客户托管 CMK,或者使用您、服务和区域独有的 AWS 托管 CMK。有关更多信息,请参阅使用具有 AWS Key Management Service 中存储的 CMK 的服务器端加密 (SSE-KMS) 保护数据。
- 每个对象使用唯一数据秘钥加密
具有客户提供密钥的服务器端加密 (SSE-C)
使用具有客户提供密钥的服务器端加密 (SSE-C) 时,您管理加密密钥,而 Amazon S3 管理加密(在它对磁盘进行写入时)和解密(在您访问您的对象时)。有关更多信息,请参阅通过使用客户提供的加密密钥的服务器端加密 (SSE-C) 保护数据。
- 所有对象使用相同的秘钥加密(客户端提供的)
客户端加密
客户端加密 是在将数据发送到 Amazon S3 之前加密数据的行为。要启用客户端加密,您可以选择以下方法:
使用 AWS KMS 中存储的 CMK
在上传对象时 — 通过使用客户主密钥 (CMK) ID,客户端先向 AWS KMS 发送请求以获取可用于加密对象数据的 CMK。AWS KMS 返回两个随机生成的数据密钥版本:
- 客户端用于加密对象数据的数据密钥的纯文本版本
- 客户端将作为对象元数据上传到 Amazon S3 的同一数据密钥的密码 blob
下载对象时 — 客户端首先从 Amazon S3 下载加密的对象以及作为对象元数据存储的数据密钥的密码 blob 版本。然后,客户端将密码 blob 发送到 AWS KMS 以获取密钥的纯文本版本,以便让客户端解密对象数据。
客户端将为其上传的每个对象获取一个唯一的数据密钥。
使用在应用程序中存储的主密钥
- 上传对象时 — 将客户端主密钥提供给 Amazon S3 加密客户端。该客户端仅使用该主密钥来加密客户端随机生成的数据加密密钥。该过程的工作方式如下所示:
- Amazon S3 加密客户端在本地生成一个一次性对称密钥 (也称为“数据加密密钥”或“数据密钥”)。它使用数据密钥加密单个 Amazon S3 对象的数据。该客户端将为每个对象生成一个单独的数据密钥。
- 该客户端使用您提供的主密钥来加密数据加密密钥。客户端会将加密的数据密钥及其材料说明作为对象元数据的一部分上传。该客户端利用材料描述来确定要用于解密的客户端主密钥。
- 该客户端将加密数据上传到 Amazon S3 并在 Amazon S3 中将加密数据密钥保存为对象元数据 (
x-amz-meta-x-amz-key
)。
- 下载对象时 — 该客户端从 Amazon S3 下载加密的对象。通过使用对象元数据中的材料说明,该客户端将确定要用于解密数据密钥的主密钥。该客户端将使用该主密钥解密数据密钥,然后使用该数据密钥对对象进行解密。
您提供的客户端主密钥可以是对称密钥,也可以是公有/私有密钥对。
- SSE-KMS 需要额外的费用,使用 SSE-S3/SSE-C 免费
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
人工智能将如何影响网络安全?
人工智能的出现改变了IT未来的发展走势,还将在未来继续让更多的行业受益。 人工智能基本原则是可以收集数据,对数据进行分析,在了解结果的基础上做出决定并从结果中学习。这就是为什么将人工智能应用于网络安全会给其带来新的能力。 网络安全随着IT技术的发展而逐渐成熟,而海量数据的指数级增长使数据泄露变得更为普遍,原因有很多。比如:安全凭证脆弱或盗取,如密码;病毒,勒索软件,网络钓鱼诈骗形式的恶意软件;社会工程学;来自企业内部的威胁;IT系统配置不正确,以及用户错误;易受攻击的应用程序和权限管理不当等等。 越来越多的黑客攻击促使企业网络安全架构中采用人工智能来提升效率和更加精准的进行的数据防御。同时,人工智能的发展也为黑客提供了改进攻击方式和手段的能力。 人工智能对网络安全的影响 事物的发展总是两面性的,一方面人工智能让构建智能的防御体系,提供了更多可能,一方面黑客也在利用它提升威胁能力。 过往,黑客利用精湛的技术,来编写恶意软件代码。现在,恶意软件可以作为智能解决方案出售,只需要即插即用。这将许多不具有技术能力的犯罪分子带入这个领域,从而增加了黑客的数量。 所以,要防御这类易于使用的智能威胁,...
- 下一篇
打造超级舒适的Go开发环境之VIM配置
最近博主已经从VIM迁移到了EMACS作为主要生产工具,目的是为了学习Lisp和体验EMACS操作系统之美,哈哈,不要被我弄的技术焦虑,没错,我就是换了个吃饭的盘子。写下这篇博客也是为了纪念我顺利的“从VIM毕业了”。 在阅读本文之前,你需要: 准备一个UNIX like的操作系统 一个可以跨过山和大海的代-理 话不多说,开始吧~ (1)下载必要的Go工具链 go get -v github.com/mdempsky/gocode go get -v github.com/ramya-rao-a/go-outline go get -v github.com/acroca/go-symbols go get -v github.com/uudashr/gopkgs go get -v golang.org/x/tools/cmd/guru go get -v golang.org/x/tools/cmd/gorename go get -v github.com/sqs/goreturns go get -v github.com/rogpeppe/godef go get -v go...
相关文章
文章评论
共有0条评论来说两句吧...