开发者社区> 问答> 正文

对象存储OSS如何进行加密?

对象存储OSS如何进行加密?

展开
收起
请回答1024 2020-03-26 17:49:46 4213 0
1 条回答
写回答
取消 提交回答
  • 加密

    OSS提供服务器端加密、客户端加密以及数据传输加密三种数据加密方式。

    服务器端加密

    OSS通过服务器端加密机制,提供静态数据保护。适合于对于文件存储有高安全性或者合规性要求的应用场景。例如,深度学习样本文件的存储、在线协作类文档数据的存储。

    针对不同的应用场景,OSS有如下三种服务器端加密方式:

    使用OSS默认托管的KMS密钥(SSE-KMS) 您可以将Bucket默认的服务器端加密方式设置为KMS且不指定具体的CMK ID,也可以在上传Object或修改Object的meta信息时,在请求中携带X-OSS-server-side-encryption并指定其值为KMS且不指定具体的CMK ID。OSS将使用默认托管的CMK生成不同的密钥来加密不同的对象,并且在下载时自动解密。

    使用BYOK进行加密(SSE-KMS BYOK) 服务器端加密支持使用BYOK进行加密,您可以将Bucket默认的服务器端加密方式设置为KMS并指定具体的CMK ID,也可以在上传Object或修改Object的meta信息时,在请求中携带X-OSS-server-side-encryption,指定其值为KMS,并指定X-OSS-server-side-encryption-key-id为具体的CMK ID。OSS将使用指定的CMK生成不同的密钥来加密不同的对象,并将加密Object的CMK ID记录到对象的元数据中,因此具有解密权限的用户下载对象时会自动解密。

    1.png

    使用OSS完全托管加密(SSE-OSS) 基于OSS完全托管的加密方式,是Object的一种属性。OSS服务器端加密使用AES256加密每个对象,并为每个对象使用不同的密钥进行加密,作为额外的保护,它将使用定期轮转的主密钥对加密密钥本身进行加密。

    客户端加密

    客户端加密是指将数据发送到OSS之前在用户本地进行加密,对于数据加密密钥的使用,目前支持如下两种方式: 使用KMS托管用户主密钥 当使用KMS托管用户主密钥用于客户端数据加密时,无需向OSS加密客户端提供任何加密密钥。只需要在上传对象时指定KMS用户主密钥ID(也就是CMK ID)。其具体工作原理如下图所示。

    2.png

    使用用户自主管理密钥

    使用用户自主管理密钥,需要用户自主生成并保管加密密钥。当用户本地客户端加密时,由用户自主上传加密密钥(对称加密密钥或者非对称加密密钥)至本地加密客户端。其具体加密过程如下图所示。

    3.png

    数据传输加密 OSS支持通过HTTP或HTTPS的方式访问,但您可以在Bucket Policy中设置仅允许通过HTTPS(TLS)来访问OSS资源。安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。

    2020-03-26 17:51:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
对象存储实战指南-试读 立即下载
\"视频服务特色解决方案——直播连麦与点播加密 \" 立即下载
量子加密通信技术 立即下载