本文介绍如何通过对象存储OSS提供的加密、访问控制、日志与监控及数据保护等多种方式来保障OSS的数据安全性。

加密

OSS提供服务器端加密、客户端加密以及数据传输加密三种数据加密方式。

  • 服务器端加密

OSS通过服务器端加密机制,提供静态数据保护。适合于对于文件存储有高安全性或者合规性要求的应用场景。例如,深度学习样本文件的存储、在线协作类文档数据的存储。

说明:有关服务器端加密原理的更多信息,请参考原理介绍。

针对不同的应用场景,OSS有如下三种服务器端加密方式:

  • 使用OSS默认托管的KMS密钥(SSE-KMS)

您可以将Bucket默认的服务器端加密方式设置为KMS且不指定具体的CMK ID,也可以在上传Object或修改Object的meta信息时,在请求中携带X-OSS-server-side-encryption并指定其值为KMS且不指定具体的CMK ID。OSS将使用默认托管的CMK生成不同的密钥来加密不同的对象,并且在下载时自动解密。

  • 使用BYOK进行加密(SSE-KMS BYOK)

服务器端加密支持使用BYOK进行加密,您可以将Bucket默认的服务器端加密方式设置为KMS并指定具体的CMK ID,也可以在上传Object或修改Object的meta信息时,在请求中携带X-OSS-server-side-encryption,指定其值为KMS,并指定X-OSS-server-side-encryption-key-id为具体的CMK ID。OSS将使用指定的CMK生成不同的密钥来加密不同的对象,并将加密Object的CMK ID记录到对象的元数据中,因此具有解密权限的用户下载对象时会自动解密。

  • 使用OSS完全托管加密(SSE-OSS)

基于OSS完全托管的加密方式,是Object的一种属性。OSS服务器端加密使用AES256加密每个对象,并为每个对象使用不同的密钥进行加密,作为额外的保护,它将使用定期轮转的主密钥对加密密钥本身进行加密。

  • 客户端加密

客户端加密是指将数据发送到OSS之前在用户本地进行加密,对于数据加密密钥的使用,目前支持如下两种方式:

  • 使用KMS托管用户主密钥

当使用KMS托管用户主密钥用于客户端数据加密时,无需向OSS加密客户端提供任何加密密钥。只需要在上传对象时指定KMS用户主密钥ID(也就是CMK ID)。其具体工作原理如下图所示。

  • 使用用户自主管理密钥

使用用户自主管理密钥,需要用户自主生成并保管加密密钥。当用户本地客户端加密时,由用户自主上传加密密钥(对称加密密钥或者非对称加密密钥)至本地加密客户端。其具体加密过程如下图所示。

  • 数据传输加密

OSS支持通过HTTP或HTTPS的方式访问,但您可以在Bucket Policy中设置仅允许通过HTTPS(TLS)来访问OSS资源。安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。

访问控制

OSS提供了多种权限控制方式,包括ACL、RAM Policy和Bucket Policy。

  • ACL:OSS为权限控制提供访问控制列表(ACL)。ACL是基于资源的授权策略,可授予Bucket和Object访问权限。您可以在创建Bucket或上传Object时设置ACL,也可以在创建Bucket或上传Object后的任意时间内修改ACL。
  • RAM Policy:RAM(Resource Access Management)是阿里云提供的资源访问控制服务。RAM Policy是基于用户的授权策略。通过设置RAM Policy,您可以集中管理您的用户(比如员工、系统或应用程序),以及控制用户可以访问您名下哪些资源的权限。比如能够限制您的用户只拥有对某一个 Bucket 的读权限。子账号是从属于主账号的,并且这些账号下不能拥有实际的任何资源,所有资源都属于主账号。
  • Bucket Policy:Bucket Policy是基于资源的授权策略。相比于RAM Policy,Bucket Policy操作简单,支持在控制台直接进行图形化配置,并且Bucket拥有者直接可以进行访问授权,无需具备RAM操作权限。Bucket Policy支持向其他账号的RAM用户授予访问权限,以及向匿名用户授予带特定IP条件限制的访问权限。

日志与监控

OSS提供访问日志存储及实时日志查询服务,便于您从多个维度来对日志进行细化跟踪。此外,OSS提供的监控服务,帮助您更好的了解OSS服务的运行状态并进行自主诊断和故障排除。

  • 访问日志查询

您在访问OSS的过程中,会产生大量的访问日志。日志存储功能,可将OSS的访问日志,以小时为单位,按照固定的命名规则,生成一个Object写入您指定的Bucket(目标 Bucket,Target Bucket)。您可以使用阿里云DataLakeAnalytics或搭建Spark集群等方式对这些日志文件进行分析。同时,您可以配置目标Bucket的生命周期管理规则,将这些日志文件转成归档存储,长期归档保存。有关OSS访问日志的更多信息,请参考访问日志存储。

  • 实时日志查询

实时日志查询功能将OSS与日志服务(LOG)相结合, 允许您在OSS控制台直接查询OSS访问日志,帮助您完成OSS访问的操作审计、访问统计、异常事件回溯和问题定位等工作,提升您的工作效率并更好地帮助您基于数据进行决策。有关实时日志查询的更多信息,请参考实时日志查询。

  • 监控服务

OSS监控服务为您提供系统基本运行状态、性能以及计量等方面的监控数据指标,并且提供自定义报警服务,帮助您跟踪请求、分析使用情况、统计业务趋势,及时发现以及诊断系统的相关问题。有关监控服务的更多信息,请参考监控服务概览。

数据保护

OSS提供合规保留策略、同城冗余存储及版本控制等特性来保障OSS的数据安全性。

  • 合规保留策略

OSS现已全面支持WORM(一次写入,多次读取)特性,允许用户以“不可删除、不可篡改”方式保存和使用数据。

OSS提供强合规策略,用户可针对存储空间(Bucket)设置基于时间的合规保留策略。当策略锁定后,用户可以在Bucket中上传和读取文件(Object),但是在Object的保留时间到期之前,任何用户都无法删除Object和策略。Object的保留时间到期后,才可以删除Object。OSS支持的WORM特性,适用于金融、保险、医疗、证券等行业。您可以基于OSS搭建“云上数据合规存储空间”。

有关合规保留策略的更多信息,请参考合规保留策略。

  • 同城冗余存储

OSS采用多可用区(AZ)机制,将用户的数据分散存放在同一地域(Region)的3个可用区。当某个可用区不可用时,仍然能够保障数据的正常访问。OSS同城冗余存储(多可用区)是基于99.9999999999%(12个9)的数据可靠性设计,并且能够提供99.995%的数据设计可用性 。

OSS的同城冗余存储能够提供机房级容灾能力。当断网、断电或者发生灾难事件导致某个机房不可用时,仍然能够确保继续提供强一致性的服务能力,整个故障切换过程用户无感知,业务不中断、数据不丢失,可以满足关键业务系统对于“恢复时间目标(RTO)”以及“恢复点目标(RPO)”等于0的强需求。

有关同城冗余存储的更多信息,请参考同城冗余存储。

  • 版本控制

开启存储空间(Bucket)版本控制特性后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。通过文件(Object)的版本管理,用户在错误覆盖或者删除Object后,能够将Bucket中存储的Object恢复至任意时刻的历史版本。

说明 版本控制特性将在近期推出,敬请期待。

版本控制应用于Bucket内的所有Object。当第一次针对Bucket开启版本控制后,该Bucket中所有的Object将在之后一直受到版本控制,并且每个版本都具有唯一的版本ID。

Bucket开启版本控制后,针对文件的每次覆盖都会生成一个历史版本,并且针对每个版本进行收费。您可以通过生命周期规则自动删除过期版本。

原文链接

本文为阿里云原创内容,未经允许不得转载。

云栖号 - 上云就看云栖号

利用对象存储多种方式 保障OSS数据安全相关推荐

  1. javaScript 合并对象的多种方式

    javaScript 合并对象的多种方式: 1.方式一:Object.assign(obj1, obj2, -) 参数1:obj1 是目标对象 参数2:obj2 是源对象 注意:对象与对象之间,同名属 ...

  2. 如何利用对象存储构建静态网站

    静态网站是指所有的网页都由静态内容构成,包括客户端执行的脚本(例如JavaScript).我们可以通过IBM Cloud对象存储服务的静态网站托管功能将您的静态网站托管到IBM COS的存储桶(Buc ...

  3. 阿里oss对象存储使用、阿里oss对象存储用法

    阿里oss对象存储开通配置参照:https://blog.csdn.net/weixin_42257984/article/details/124684867 https://blog.csdn.ne ...

  4. js创建file对象 字符串 txt_js-创建对象的多种方式

    1. 工厂模式 function createPerson(name) { var o = new Object(); o.name = name; o.getName = function () { ...

  5. 三步读懂对象存储-访问方式

    转自:http://www.pinlue.com/article/2020/07/0319/1310960421249.html

  6. 骨干云池存储方式_你好,我存个对象(大误)漫谈对象存储

    没错,对象存储(OOS,Object-Oriented Storage)可不是一项"在你嫌男票/女票烦的时候暂时寄存的服务",而是中国电信为客户提供的一种海量.弹性.高可靠.高性价 ...

  7. 文件上传很难搞?10分钟带你学会阿里云OSS对象存储

    一. 前言 最近有很多小伙伴问壹哥,如果我们要进行大规模的文件存储该怎么做? 其实实现文件存储的技术有很多,如果我们在网上搜索一下,你会发现实现的技术简直是五花八门,比如有一种技术叫FastDFS就可 ...

  8. 大规模文件存储怎么办?10分钟学会阿里OSS对象存储

    一. 前言 最近有很多小伙伴问健哥,如果我们要进行大规模的文件存储该怎么做? 其实实现文件存储的技术有很多,如果我们在网上搜索一下,你会发现实现的技术简直是五花八门,比如有一种技术叫FastDFS就可 ...

  9. 对象存储使用案例_连云数据都有“对象存储”了,你还是单身?

    没错,对象存储(OOS,Object-Oriented Storage)可不是一项"在你嫌男票/女票烦的时候暂时寄存的服务",而是中国电信为客户提供的一种海量.弹性.高可靠.高性价 ...

最新文章

  1. Codeforces Round #621题解
  2. mysql selectprovider_SpringBoot+Mybatis 框架之 @SelectProvider注解方式搭建
  3. QuickBI助你成为分析师-邮件定时推送
  4. jzoj4805-[NOIP2016提高A组模拟9.28]跟踪【dfs,树】
  5. MapXtreme 2005新增内容
  6. 微软官方及第三方SDK http://msdn.microsoft.com/zh-cn/jj923044
  7. hdu 4415 Assassin’s Creed 贪心
  8. 这台计算机的rsa密匙如下怎解决,win10系统使用计划任务提示账户密钥集不存在错误代码0x80090016怎么办...
  9. Android Framework实战视频系列
  10. CTF训练(密码学)——位移密码
  11. VMware 10M网卡变1000M兆网卡
  12. python打开网页后点击网页按钮_python单击网页上的按钮
  13. 关闭Win10自动更新
  14. Windows脚本 同网段ip检测与持续ping包测试
  15. 为什么别人可以年薪百万?
  16. java中国象棋网络对弈_基于JAVA的中国象棋对弈系统(附答辩记录)
  17. Zuul(一)网关和路由
  18. 数组14:分离整数各位
  19. HTML中td的colspan和rowspan
  20. “无人超市”热潮 主要依靠网络技术

热门文章

  1. Java的一些学习心得
  2. python波士顿房价是什么数据,Python数据分析 | 波士顿房价回归分析
  3. hdu java_HDU-java实现1176
  4. graphpad如何检测方差齐_如何选择方差分析的多重比较方法?资料集锦
  5. 使用通用mapper实现条件查询_【微服务】152:Stream流和通用mapper批量查询的使用...
  6. MATLAB静力学分析,锻造操作机静力学的Matlab仿真分析
  7. centos7安装php5.2yum源操作_Centos7.6使用yum安装PHP7.2
  8. kafka python教程_kafka python 指定分区消费
  9. java计算器流程图_帮帮忙:Java小计算器代码,及需求分析.流程图.
  10. java unreported exception_Java异常处理