云存储Clouder认证:存储应用与数据管理—课时4:如何做好数据安全

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 云存储Clouder认证:存储应用与数据管理—课时4:如何做好数据安全

如何做好数据安全

 

数据加密

小浩通过权限设置的练习,已经熟悉四种权限控制使用的场景了。那如何保证数据的安全?小浩脑海里的第一个想法是,对数据加密。对象存储OSS目前支持以下两种数据加密方式。

 

客户端加密

客户端加密是指将文件(Object)发送到对象存储OSS之前在本地进行加密,使用客户端加密功能时,需要对主密钥的完整性和正确性负责。因维护不当导致主密钥用错或丢失,从而导致加密数据无法解密。

对于主密钥的使用,目前支持如下两种方式:

 

服务器端加密

设置服务器端加密,在存储空间(Bucket)上传文件(Object)时OSS会对收到的文件进行加密再将得到的加密文件持久化保存。当您通过GetObject请求下载文件时,OSS自动将加密文件解密后返回给用户,并在响应头中返回x-oss-server-side-encryption,用于声明该文件进行了服务器端加密。服务器端加密提供以下两种方式。

加密方式

功能描述

使用场景

注意事项

费用说明

使用KMS托管密钥进行加解密(SSE-KMS)

使用KMS托管的默认CMK(Customer Master Key)或指定CMK进行加解密操作。数据无需通过网络发送到KMS服务端进行加解密。

因安全合规的要求,需要使用自管理、可指定的密钥。

  • 用于加密Object的密钥也会被加密,并写入Object的元信息中。
  • KMS托管密钥的服务器端加密方式仅加密Object数据,不加密Object的元数据。

在KMS服务侧产生少量的KMS密钥请求费用。费用详情,请参见KMS计费标准

使用OSS完全托管密钥进行加解密(SSE-OSS)

使用OSS完全托管的密钥加密每个Object。为了提升安全性,OSS还会使用定期轮转的主密钥对加密密钥本身进行加密。

仅需要基础的加密能力,对密钥无自管理需求。

免费

 
小浩对比之后,最终选择使用服务器端加密,加密方式选择使用OSS完全托管密钥进行加解密。配置步骤如下:
设置服务器端加密支持创建Bucket时配置和后期配置两种模式:
  • 创建Bucket时开启服务器端加密
  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击创建Bucket
  3. 创建Bucket面板,服务端加密方式,选择Object的加密方式。
    • OSS完全托管:使用OSS托管的密钥进行加密。OSS会为每个Object使用不同的密钥进行加密,作为额外的保护,OSS会使用定期轮转的主密钥对加密密钥本身进行加密。
    • 加密算法:可选择AES256或SM4加密算法。

    4. 单击确定。

  • 已创建的Bucket开启服务器端加密
  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击创建Bucket
  3. 在左侧导航栏,选择数据安全 > 服务器端加密
    • OSS完全托管:使用OSS托管的密钥进行加密。OSS会为每个Object使用不同的密钥进行加密,作为额外的保护,OSS会使用定期轮转的主密钥对加密密钥本身进行加密。
    • 加密算法:可选择AES256或SM4加密算法。

    4. 单击确定。

 

 

跨域设置

企业门户网站静态资源存放在OSS Bucket里,企业门户网站和OSS Bucket的域名不同,企业门户网站调用OSS Bucket中的资源会存在跨域访问问题,导致资源无法访问。那什么是跨域访问?小浩该如何解决跨域访问问题呢?

 

跨域访问

跨域访问是浏览器出于安全考虑而设置的一个限制,即同源策略,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻击。同源基于"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。

对于http://www.aliyun.com/org/test.html的同源检测示例:

 

URL

访问是否成功

原因

http://www.aliyun.com/org/other.html 

协议、域名、端口相同

http://www.aliyun.com/org/internal/page.html 

协议、域名、端口相同

https://www.aliyun.com/page.html 

协议不同(HTTPS)

http://www.aliyun.com:22/dir/page.html 

端口不同(22)

http://help.aliyun.com/dir/other.html 

域名不同

跨域设置配置步骤:

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击目标Bucket名称。
  3. 在左侧导航栏,选择数据安全 > 跨域设置
  4. 跨域设置页面,单击创建规则
  5. 创建跨域规则面板,按以下说明设置配置跨域规则。
    • 来源
    • 允许Methods
    • 允许Headers
    • 暴露Headers
    • 缓存时间
    • 返回Vary: Origin

    6. 单击确定

 

 

防盗链

小浩又有一个思考,企业门户网站的部分静态资源(视频、图片)设置的是(Object ACL)公共读权限,如何防止其它网站盗用自己网站的静态资源呢?避免给公司造成损失(合法权益受损、服务器load增加)。

 

防盗链功能

对象存储OSS支持对存储空间(Bucket)设置防盗链,通过对访问来源设置白名单的机制,避免OSS资源被其他人盗用。

 

防盗链功能图解

  • 未设置防盗链之前,其它网站盗用企业门户网站静态资源。

  • 设置防盗链之后,其它网站无法盗用企业门户网站静态资源。

防盗链功能配置步骤

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击目标Bucket名称。
  3. 在左侧导航栏,选择数据安全 > 防盗链
  4. 防盗链页面,打开防盗链开关。
    • Referer输入框中,填写域名或IP地址。本案例中设置为:https://10.10.10.10
    • 空Referer区域,设置为允许

    5. 单击保存

 

版本控制

小浩发现,在企业门户网站运维过程中,需要对托管在OSS Bucket上的静态资源进行删除、覆盖等操作。但出于数据安全的考虑,该如何对错误删除、覆盖的文件进行恢复呢?是否支持设置定期备份静态资源呢?

OSS提供的版本控制是针对存储空间(Bucket)级别的数据保护功能。开启版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。您在错误覆盖或者删除对象(Object)后,能够将Bucket中存储的Object恢复至任意时刻的历史版本。

 

文件覆盖场景

对于网盘类、在线协作类场景,文件会被频繁修改和覆写,针对文件的编辑会产生大量的临时版本。您可以使用版本控制功能找回某个时间点的版本。

删除数据场景

当前OSS不提供回收站功能,若出现数据误删除时,可使用版本控制功能,恢复已删除的数据。

版本控制配置步骤

  • 新建Bucket时开启版本控制。

开启版本控制后,OSS会为Bucket中所有Object的每个版本指定唯一的versionID。

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击创建Bucket
  3. 创建Bucket页面配置各项参数。其中,版本控制区域选择开通
  4. 单击确定

  • 已创建的Bucket开启版本控制。
  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击目标Bucket名称。
  3. 在左侧导航栏,选择数据安全 > 版本控制
  4. 版本控制页面,单击开启
  5. 在弹出的对话框,单击确定

 

暂停版本控制

开启版本控制后,可以随时暂停版本控制,这样可以停止在Bucket中继续累积同一Object的新版本。暂停版本控制后,OSS将为新生成的Object添加versionID为null的版本,已有的历史版本Object将继续保留。

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击目标Bucket名称。
  3. 在左侧导航栏,选择数据安全 > 版本控制
  4. 版本控制页面,单击暂停
  5. 在弹出的对话框,单击确定

 

恢复版本

在开启版本控制下的Bucket中删除Object时,历史版本Object不会被真正删除,而是产生一个删除标记来标识Object的当前版本是删除状态。此时可以在控制台恢复版本。

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击目标Bucket名称。
  3. 在左侧导航栏,单击Bucket列表,然后单击目标Bucket名称。
  4. 选择文件管理 > 文件列表
  5. 单击历史版本右侧的显示
  6. 选中待恢复文件,然后单击页面下方的恢复
  7. 在弹出的对话框,单击确定

 



练习实验:基于对象存储OSS实现企业门户网站托管

https://developer.aliyun.com/adc/scenario/exp/dd9b0b7a9419465ea92e702f3ca0a10e

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
1月前
|
存储 安全 区块链
探索区块链技术在数据安全中的应用
本文旨在通过浅显易懂的语言,向读者介绍区块链这一看似复杂实则贴近我们生活的技术。我们将从基础概念出发,逐步深入到区块链技术如何在保护个人隐私和确保数据安全方面发挥巨大作用。文章将用简单的例子和直观的比喻,帮助读者理解区块链的工作原理及其在现实世界的应用价值。
58 6
|
3月前
|
存储 安全 数据安全/隐私保护
🔎Android安全攻防实战!守护你的应用数据安全,让用户放心使用!🛡️
【7月更文挑战第28天】在移动应用盛行的时代,确保Android应用安全性至关重要。本文以问答形式探讨了主要安全威胁(如逆向工程、数据窃取)及其对策。建议使用代码混淆、签名验证、数据加密等技术来增强应用保护。此外,还推荐了加密API、HTTPS通信、代码审计等措施来进一步加强安全性。综上所述,全面的安全策略对于构建安全可靠的应用环境必不可少。#Android #应用安全 #代码混淆 #数据加密
64 3
|
2月前
|
存储 供应链 安全
探索区块链技术在数据安全中的应用
区块链技术,一种分布式账本技术,正逐渐成为保护数据安全的利器。本文将深入探讨区块链如何增强数据完整性、提升透明度和促进去中心化,同时指出实施中的挑战与未来发展趋势。
84 0
|
2月前
|
存储 供应链 安全
智能时代的隐私保护:区块链技术在数据安全中的应用
【8月更文挑战第5天】 随着数字化浪潮的不断推进,个人隐私和数据安全问题愈发凸显。本文深入探讨了区块链技术如何为智能时代下的数据安全提供解决方案,通过具体案例分析了其在加强数据透明度、确保信息不可篡改性以及提升用户控制权方面的潜力与挑战。文章还讨论了区块链技术在实现隐私保护方面所面临的技术限制和法律问题,并展望了其在未来数据治理中的可能角色。
96 0
|
3月前
|
存储 安全 区块链
探索区块链技术在数据安全中的应用
【7月更文挑战第31天】本文深入探讨了区块链技术如何革新数据安全领域,通过其独特的分布式账本技术、加密算法和共识机制,为保护个人隐私、确保数据完整性和防止数据篡改提供了新的解决方案。文章分析了区块链在提高数据透明度、降低中心化风险以及促进数据共享方面的潜力,并讨论了实施过程中可能遇到的挑战和未来的发展方向。
89 0
|
4月前
|
存储 安全 分布式数据库
探索区块链技术在数据安全中的应用
【6月更文挑战第13天】本文将深入探讨区块链技术在数据安全领域的应用及其潜力。我们将从区块链技术的基本原理出发,分析其在数据保护、身份验证和交易安全等方面的优势,并通过实际案例展示区块链如何在数据安全领域发挥作用。
114 1
|
5月前
|
存储 数据管理
存储应用与数据管理训练营等你打卡
存储应用与数据管理训练营等你打卡
41 0
|
5月前
|
存储 安全 算法
【专栏】保护数据安全的重要性以及安全加密算法在数据保护中的应用
【4月更文挑战第27天】在数字化时代,数据安全至关重要,关系到个人隐私、企业商业机密、国家安全及经济发展。安全加密算法(如对称加密、非对称加密和哈希算法)在保护数据方面发挥关键作用。它们应用于电子商务、金融、物联网、云存储和数字签名等领域,确保信息传输和存储的安全。面对日益复杂的挑战,我们需要持续研究和应用加密技术,提高数据安全意识,共同维护数字世界的繁荣与安全。
158 2
|
5月前
|
存储 缓存 监控