暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Amazon S3加密之SSE-C加密

AWS Azure技术分享 2017-06-02
903


一、Amazon S3 SSE-C加密


SSE-C,即客户提供的加密密钥的服务器端加密的一种服务器加密方式,


服务器端加密是为了保护静态数据。使用客户提供的加密密钥的服务器端加密 (SSE-C) 允许您设置自己的加密密钥。使用您作为请求的一部分提供的加密密钥,Amazon S3 在写入磁盘时管理加密并在您访问对象时管理解密。因此,您不需要维护任何代码来执行数据加密和解密。您只需管理您提供的加密密钥。


在您上传对象时,Amazon S3 将使用您提供的加密密钥对您的数据应用 AES-256 加密并从内存中移除加密密钥。



二、使用AWS CLI方式演示如何实现Amazon S3 SSE-C


1.  上传加密:


[ec2-user@huanjie ~]$ aws s3 cp test.txt s3://testsse/   --sse-c AES256 --sse-c-key 1570e7e3937b747***31baaef6b

upload: ./test.txt to s3://testsse/test.txt


2.  下载解密:

[ec2-user@huanjie ~]$ aws s3 cp s3://testsse/test.txt /tmp  --sse-c AES256 --sse-c-key 1570e7e3937b747***31baaef6b

355 download: s3://testsse/test.txt to ../../tmp/test.txt 


参数详解:


--sse-c : 使用的加密算法,默认是AES256

--sse-c-key : 客户端的加密密钥,必须是经过md5加密过的32位为密钥;


md5加解密网站: http://md5.tellyou.top/



3.  查看上传的文件是否加密


[ec2-user@huanjie ~]$ aws s3api head-object --bucket testsse --key test.txt --sse-customer-key 1570e7e3937b747***31baaef6b  --sse-customer-algorithm AES256 

{

    "AcceptRanges": "bytes", 

    "ContentType": "text/plain", 

    "LastModified": "Fri, 02 Jun 2017 06:25:31 GMT", 

    "ContentLength": 5166, 

    "SSECustomerAlgorithm": "AES256", 

    "ETag": "\"38f28795f897c912e5c7089fb0e92a4b\"", 

    "SSECustomerKeyMD5": "LIKfihpFUbKgErk6rCv84g==", 

    "Metadata": {}

}


如果SSECustomerKeyMD5字段后面有值,证明进行加密。


四、注意事项


  1. Amazon S3 不存储您提供的加密密钥,而是存储加密密钥添加了随机数据的 HMAC 值来验证未来的请求。无法使用添加了随机数据的 HMAC 值来推导出加密密钥的值或解密加密对象的内容。这意味着,如果您丢失加密密钥,则会失去该对象;

  2. 在检索对象时,必须提供相同的加密密钥作为您请求的一部分。Amazon S3 在将对象数据返回给您之前,会首先验证您提供的加密密钥是否匹配,然后再解密对象;

  3. 您管理哪个加密密钥用于加密哪个对象的映射。Amazon S3 不存储加密密钥。您负责跟踪为哪个对象提供了哪个加密密钥。



本文内容中有任何错误,欢迎指正,谢谢大家。


文章转载自AWS Azure技术分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论