OSS服务器端加密之初体验-阿里云开发者社区

开发者社区> 阿里云存储服务> 正文

OSS服务器端加密之初体验

简介: 本文介绍如何基于ossutil工具,体验oss服务器端加密功能。 关于服务器端加密 OSS支持在服务器端对用户上传的数据进行加密编码(Server-Side Encryption):用户上传数据时,OSS对收到的用户数据进行加密编码,然后再将得到的加密数据持久化保存下来;用户下载数据时,OSS自动对保存的加密数据进行解密并把原始数据返回给用户,并在返回的HTTP请求Header中,声明该数据进行了服务器端加密。

本文介绍如何基于ossutil工具,体验oss服务器端加密功能。

关于服务器端加密

OSS支持在服务器端对用户上传的数据进行加密编码(Server-Side Encryption):用户上传数据时,OSS对收到的用户数据进行加密编码,然后再将得到的加密数据持久化保存下来;用户下载数据时,OSS自动对保存的加密数据进行解密并把原始数据返回给用户,并在返回的HTTP请求Header中,声明该数据进行了服务器端加密。

OSS服务器端加密目前支持2种:

  • 使用由OSS完全托管的服务端加密(简称AES256加密)
  • 使用由KMS托管密钥的服务端加密(简称KMS加密)

详情请参考oss官网服务器端加密编码

关于ossutil

ossutil工具旨在为用户提供一个方便的,以命令行方式管理OSS数据的途径。本文将使用ossutil管理文件(上传、下载、查看元数据信息等),进而体验OSS服务器端加密功能。请先安装和配置ossutil,具体参考oss官网ossutil

AES256加密

本文测试用的bucket是test-oss-encryption,位于北京region.
1.从本地上传1个测试文件到oss,并声明加密类型为AES256

ossutil cp /tmp/test.file oss://test-oss-encryption/encryption_aes256_001 --meta=x-oss-server-side-encryption:AES256

说明:--meta字段用来添加http请求的header字段,这里是添加了x-oss-server-side-encryption这个header,对应value为AES256,这样OSS就会对该文件进行AES256加密了。

2.查看刚上传的文件meta信息。

ossutil stat oss://test-oss-encryption/encryption_aes256_001

输出结果类似如下:
aes256
可以看到该文件的属性中已经多了一项说明:X-Oss-Server-Side-Encryption: AES256,说明该文件在服务器端已经启用了AES256加密存储

KMS加密

其实使用KMS加密跟AES256加密类似,只需声明加密算法为KMS即可。

注意

  1. 使用KMS加密算法的前提是,用户已经开通了KMS密钥托管服务,关于该服务请参考官网主页密钥管理服务
  2. 用户开通KMS服务后,如果向OSS上传文件时使用KMS加密方式,OSS会为用户在当前region创建主密钥,且只会创建1次。OSS为用户创建的KMS主密钥不收管理费用。
  3. 当用户使用KMS方式上传文件或读取经过KMS加密的文件时,KMS会额外收取少许加解密费用,具体请参考KMS计费标准

下面开始体验KMS加密功能
1.从本地上传1个测试文件到oss,并申明加密类型为KMS

ossutil cp /tmp/test.file oss://test-oss-encryption/encryption_kms_001 --meta=x-oss-server-side-encryption:KMS

只需要将加密算法声明为KMS即可。

2.查看刚上传的文件meta信息。

ossutil stat oss://test-oss-encryption/encryption_kms_001

输出结果类似下面
kms
可以看到除了X-Oss-Server-Side-Encryption值为KMS外,还有1个特殊字段X-Oss-Server-Side-Encryption-Key-Id
X-Oss-Server-Side-Encryption-Key-Id对应的值d66363ea-d18a-4270-9c63-669b79ba8b78,其实就是OSS给用户在KMS上创建的主密钥的ID。

kms_key
上图就是我的kms控制台截图,可以看到华北2(北京region)中有1个key, 该key前面有1个阿里云图标。这个key就是OSS给用户在华北2区域创建的主密钥,而密钥ID和我们查看oss文件meta信息时看到的一致。

文件读取

无论是AES256加密还是KMS加密,读取文件时都不需要特殊参数,OSS会自动解密并将解密后的结果返回给用户。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云存储基于飞天盘古2.0分布式存储系统,产品多种多样,充分满足用户数据存储和迁移上云需求。

官方博客
链接