前言
本文介绍如何通过SSE-C来保护TOS中数据
服务器端加密是为了保护TOS中静态数据。服务器端加密仅加密对象数据而不是对象元数据。使用客户提供加密密钥的服务器端加密 (SSE-C) 使用您提供的秘钥作为请求的一部分,TOS在其写入磁盘时管理加密,并在您访问对象时管理解密。因此,您不需要维护任何代码来执行数据加密和解密。您只需管理您提供的加密密钥。
解决方案
1.先生成一个256位的秘钥,在Linux 上生成秘钥,命令如下
echo -n secret-string | openssl dgst -sha256 -binary > aes256.key
2.使用刚才生成的秘钥,上传对象,采用S3协议的CLI
命令如下:
aws s3api put-object --bucket xxxx --key perf.data --body ../out.perf --sse-customer-algorithm "AES256" --sse-customer-key=fileb://aes256.key --endpoint-url=https://tos-s3-cn-beijing.volces.com
3.通过下载来查看是否上传的对象已经加密
命令如下:
aws s3api get-object --bucket xxxx --key perf.data --sse-customer-algorithm AES256 --sse-customer-key=fileb://aes256.key perf.data --endpoint-url=https://tos-s3-cn-beijing.volces.com
可以看到加密算法跟加密秘钥的MD5值
4.使用错误的秘钥来下载对象,验证错误的秘钥不可以下载
命令如下:
aws s3api get-object --bucket xxxx --key perf2.data --sse-customer-algorithm AES256 --sse-customer-key=fileb://aes256.key perf.data --endpoint-url=https://tos-s3-cn-beijing.volces.com
可以发现只能通过正确的秘钥才能下载对象,保护了静态数据。
如果您有其他问题,欢迎您联系火山引擎技术支持服务