OSS服务器端加密之初体验

本文涉及的产品
对象存储 OSS,20GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: 本文介绍如何基于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会自动解密并将解密后的结果返回给用户。

目录
相关文章
|
10月前
|
存储 安全 API
oss客户端加密密钥管理
阿里云OSS数据加密涉及SSE-C和SSE-KMS两种方案。SSE-C中,客户端自动生成并管理DEK,负责加密和解密数据,需确保密钥的安全存储和访问控制。SSE-KMS则利用KMS生成和管理密钥,客户端通过API请求加密/解密密钥,实现更安全的密钥管理。无论哪种方式,都需要遵循密钥生命周期管理、访问控制、安全存储和定期轮换等最佳实践。选择SSE-C需要客户端有安全的密钥存储,而SSE-KMS则需关注与KMS的API交互和访问策略。
257 3
|
7月前
|
网络协议 安全 网络安全
DNS服务器加密传输
【8月更文挑战第18天】
689 15
|
8月前
|
弹性计算 人工智能 运维
阿里ECS&OS Copilot智能助手初体验
探索阿里云新推出的OS Copilot,与通义千问对比,体验其在Linux运维中的应用。创建ECS实例、重置密码、设置RAM Access Key过程略显复杂。OS Copilot安装简便,能准确解答问题,提供Shell脚本,对运维工作帮助大,评分9分。作为运维新手,认为文档对新人不友好,期待正式版并愿推荐给同行。功能上,突出知识问答和命令执行辅助,优于其他产品,期望优化连续问答和文档处理能力,与ECS整合以增强系统错误排查。
阿里ECS&OS Copilot智能助手初体验
|
7月前
|
存储 JavaScript 前端开发
Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】
这篇文章介绍了在Vue中实现图片上传到阿里云OSS对象存储服务的完整流程,包括服务端签名直传的前提知识、后端设置、前端组件封装以及图片上传和回显的效果展示。
|
8月前
|
安全 网络协议 网络安全
SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密的通信通道。
SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密的通信通道。
|
10月前
|
监控 负载均衡 网络协议
DNS服务器的搭建之初体验
通过这些步骤,你可以在初次搭建DNS服务器时获得基本的体验,了解如何为域名提供解析服务,促进网络的正常运行。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
130 7
|
10月前
|
存储 安全 开发工具
oss客户端密钥管理数据密钥加密与上传
阿里云OSS实现数据安全加密和访问控制,通过KMS托管CMK或客户端加密管理DEK。数据加密流程中,可使用KMS加密DEK后存储在OSS元数据,或利用SDK在本地加密文件再上传。上传时,HTTP请求头含加密参数,通过RAM临时凭证初始化SDK客户端,调用API上传加密文件,确保数据传输和存储的安全。
314 2
|
10月前
|
存储 网络协议 网络安全
对象存储oss使用问题之私有图片url在服务器中无法直接打开如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
1281 0
|
10月前
|
安全 Java 网络安全
对象存储oss使用问题之使用oss上服务器后显示服务异常如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
1176 0
|
3天前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用

相关产品

  • 对象存储