你的位置:

CAH 中文站 > APT中文网 >

  • 通过客户端加密实现上传至OSS前已在本地完成数据加密

    发布日期:2025-01-02 11:13    点击次数:191

    OSS客户端加密是在数据上传至OSS之前,由用户在本地对数据进行加密处理,确保只有密钥持有者才能解密数据,增强数据在传输和存储过程中的安全性。完整的示例代码请参见GitHub。使用KMS托管用户主密钥加密并上传Object 获取加密密钥。 通过使用CMK ID,客户端首先向KMS发送一个请求,申请1个用于加密Object的数据密钥(Data Key)。作为响应,KMS会返回一个随机生成的数据明文密钥(Data Key)以及一个数据密文密钥(Encrypted Data Key)给客户端。加密数据并上传至OSS。 客户端接收到KMS返回的数据明文密钥以及数据密文密钥后,将使用数据明文密钥对Object进行本地加密,并且将加密后的Object以及数据密文密钥上传至OSS。下载并解密Object 下载Object。 客户端从OSS服务端下载加密的Object以及作为Object元数据存储的数据密文密钥。解密Object。 客户端将数据密文密钥以及CMK ID发送至KMS服务器。作为响应,KMS将使用指定的CMK解密,并且将数据明文密钥返回给客户端。使用用户自主管理密钥加密并上传Object 用户向客户端提供1个用户主密钥(对称密钥或者非对称密钥)。客户端在本地生成一个一次性的对称密钥,即数据密钥(Data Key)。数据密钥将用于加密单个Object(针对每个Object,客户端都会随机生成1个数据密钥)。客户端使用数据密钥加密Object,并使用用户提供的主密钥来加密数据密钥。客户端将加密后的Object以及加密的数据密钥(Encrypted Data Key)作为Object元数据的一部分上传至OSS。下载并解密Object 客户端从OSS服务端下载加密的Object以及Object元数据。通过使用Object元数据中的材料,客户端将授权确定使用对应主密钥来解密数据密钥,之后使用解密后的数据密钥来解密Object。 使用阿里云SDK以下仅列举常见SDK客户端加密的代码示例。关于其他SDK客户端加密的代码示例,请参见SDK简介。JavaPythonGoC++


Powered by CAH 中文站 @2013-2022 RSS地图 HTML地图

Copyright Powered by365建站 © 2013-2024