美丽的神话 发表于 2024-10-7 18:22:40

阿里云存储应用

如何做好权限控制

小浩在梳理门户网站静态资源时,发现有些资源是仅内部员工可访问,有些资源是特定的注册客户可访问,还有些资源是匿名客户也可以访问。针对不同场景、不同用户,小浩该如何规划企业门户网站静态资源的权限控制呢?
https://i-blog.csdnimg.cn/direct/d791f15c25564d2aaa57eec507e5f51a.png
权限控制范例
OSS有以下四种范例的访问权限控制。
https://i-blog.csdnimg.cn/direct/f071a7d7e3e548c4ad512765a0146ae1.png
设置Bucket ACL权限

针对门户网站的场景,小浩对企业门户网站需要存放的文件,进行了访问权限范例的梳理:
https://i-blog.csdnimg.cn/direct/bc0aa22632b846348a0c6ce7f4a452a7.png
小浩起首需要创建一个Bucket用来存放文件,查看下表权限范例分析后,小浩希望设置Bucket ACL权限为私有。
https://i-blog.csdnimg.cn/direct/235d25205a5e42a2967747c3c4dbb64f.png


[*] 设置Bucket ACL为私有支持以下两种模式:
创建时设置Bucket ACL步调如下:
https://i-blog.csdnimg.cn/direct/2f5e636af87643d2a7095f08cb050a4b.png
创建后修改Bucket ACL的步调如下:
https://i-blog.csdnimg.cn/direct/1234175a73414b75ad0bf54771ba3826.png
此时小浩心田有疑问,Bucket ACL已经设置为私有权限了,企业门户网站静态资源要求的是公共读权限,该如那边置惩罚呢?


[*]起首我们回顾一下Bucket和Object的关系。在上传数据(例如文档、图片、音视频等)到OSS之前,需要创建一个存储空间(Bucket),然后将文件(Object)上传到该Bucket中。
https://i-blog.csdnimg.cn/direct/c719e70f39dc4e2dbf32aeb4d89a6056.png


[*] Bucket已经设置为私有,那Object是不是只能设置为私有?答案是否定的,上传Object时可以选择继续Bucket ACL或指定Object ACL。
https://i-blog.csdnimg.cn/direct/31b9d27090f24aca88bea517e3daacd7.png
设置Object ACL权限

于是,小浩上传网站匿名可访问的静态资源到Bucket时,需要设置Object ACL权限为公共读。
设置Object ACL为公共读支持以下两种方式:


[*] 上传Object时设置Object ACL为公共读。
https://i-blog.csdnimg.cn/direct/17c0ce2e4763422fba88ec92639020a0.png


[*] 上传Object到Bucket后调整Object ACL。
https://i-blog.csdnimg.cn/direct/e840241384f742ff9b72f7725c5975f8.png
设置Bucket Policy

小浩已经将存放文件的Bucket ACL设置为私有权限,如果要授权他人访问或使用自己的OSS资源,可以通过多种权限控制策略向他人授予资源的特定权限。


[*] 企业门户网站注册客户,需要有对部分视频有读的权限。可以通过Bucket Policy将指定用户设置为只读权限。假设该视频资源存放在OSS Bucket的video目录下,如下图所示,设置步调如下:
https://i-blog.csdnimg.cn/direct/fdd50774a6424e66ac2c02644555fdb7.png


[*] 使用OSS控制台,对指定用户设置为只读权限。满意企业门户网站部分资源设置为,仅注册客户为公共读权限。
https://i-blog.csdnimg.cn/direct/9b891d734307496b90a008fe3dbd905c.png


[*] 企业门户网站匿名用户,需要有对部分视频进行播放的权限。可以通过Bucket Policy对匿名用户设置为只读权限。假设该视频资源存放在OSS Bucket的guest目录下。如下图所示,设置步调如下:
https://i-blog.csdnimg.cn/direct/5cf434a49b13497c8cd3629ae00b298e.png


[*] 使用OSS控制台,完成对匿名用户设置为只读权限,满意所有效户可以播放视频的需求。
https://i-blog.csdnimg.cn/direct/69e6e73c20ef421c8123cb11e04090d3.png

设置RAM Policy

在日常运维过程中,考虑到IT团队内部成员需要登陆到OSS控制台,查看Bucket中的视频、监控指标等信息。为了安全考虑,小浩创建RAM子账号为“opsuser”,并授权“opsuser”子账号具有OSS 产品只读访问权限。


[*] 使用RAM控制台,完成RAM Policy的设置。小浩的同事即可通过子账号登陆阿里云,查看Bucket中的视频信息。
https://i-blog.csdnimg.cn/direct/5844e493383e42ffbfff52520e569347.png

如何做好数据安全

数据加密

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

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


[*] 使用KMS托管用户主密钥
[*] 使用用户自主管理密钥
服务器端加密

设置服务器端加密,在存储空间(Bucket)上传文件(Object)时,OSS会对收到的文件进行加密,再将得到的加密文件恒久化保存。当您通过GetObject哀求下载文件时,OSS自动将加密文件解密后返回给用户,并在响应头中返回x-oss-server-side-encryption,用于声明该文件进行了服务器端加密。服务器端加密提供以下两种方式。
https://i-blog.csdnimg.cn/direct/0e946e6a1a694f67b42003b1a94f9ed5.png
小浩对比之后,终极选择使用服务器端加密,加密方式选择使用OSS完全托管密钥进行加解密。设置步调如下:

设置服务器端加密支持创建Bucket时设置和后期设置两种模式:



[*] 在创建Bucket时开启服务器端加密
https://i-blog.csdnimg.cn/direct/78d1fc344b95469f8359b587167906a0.png
https://i-blog.csdnimg.cn/blog_migrate/72435f2bf1e33dc0970edd419f90574e.png


[*] 对已创建的Bucket开启服务器端加密
https://i-blog.csdnimg.cn/direct/fc08106d1b51428694145e713f7e10f0.png

https://i-blog.csdnimg.cn/blog_migrate/b7f71c8f27fec057c7a3d51d1e81cab5.png

https://i-blog.csdnimg.cn/blog_migrate/10358c11a14fc882b38740994dc2ae2b.png
 
跨域设置

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


跨域访问

跨域访问是欣赏器出于安全考虑而设置的一个限制,即同源策略,如果缺少了同源策略,欣赏器很容易受到XSS、CSRF等攻击。同源基于"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
对于http://www.aliyun.com/org/test.html的同源检测示例: 

https://i-blog.csdnimg.cn/blog_migrate/23af1758a5b5b812b110e2e8f4bb0edb.jpeg

https://i-blog.csdnimg.cn/direct/ff979ca2fe0b4754b8676b99a9a4dc27.png
跨域设置设置步调:

   
[*] 登录OSS管理控制台。
[*] 单击Bucket列表,然后单击目标Bucket名称。
[*] 在左侧导航栏,选择数据安全 > 跨域设置。
[*] 在跨域设置页面,单击创建规则。
[*] 在创建跨域规则面板,按以下分析设置设置跨域规则。
   

[*]

[*] 来源
[*] 允许Methods
[*] 允许Headers
[*] 袒露Headers
[*] 缓存时间
[*] 返回Vary: Origin

    6. 单击确定。

https://i-blog.csdnimg.cn/blog_migrate/c227df90ab6094d3aba6b8cb9656562b.png
防盗链

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


防盗链功能

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



[*] 未设置防盗链之前,别的网站盗用企业门户网站静态资源。
https://i-blog.csdnimg.cn/direct/67837c3d819940a49200c410a08fc631.png


[*] 设置防盗链之后,别的网站无法盗用企业门户网站静态资源。
https://i-blog.csdnimg.cn/direct/6394dcea43554ad68e824e0e15b98062.png
防盗链功能设置步调

   
[*] 登录OSS管理控制台。
[*] 单击Bucket列表,然后单击目标Bucket名称。
[*] 在左侧导航栏,选择数据安全 > 防盗链。
[*] 在防盗链页面,打开防盗链开关。              
   

[*] 在Referer输入框中,填写域名或IP地址。本案例中设置为:https://10.10.10.10
[*] 在空Referer区域,设置为允许:

https://i-blog.csdnimg.cn/blog_migrate/f2fb5d42d70db5ecdb634c86c33284ff.png

版本控制

小浩发现,在企业门户网站运维过程中,需要对托管在OSS Bucket上的静态资源进行删除、覆盖等利用。但出于数据安全的考虑,该如何对错误删除、覆盖的文件进行规复呢?是否支持设置定期备份静态资源呢?
OSS提供的版本控制是针对存储空间(Bucket)级别的数据保护功能。开启版本控制后,针对数据的覆盖和删除利用将会以汗青版本的情势保存下来。您在错误覆盖或者删除对象(Object)后,可以大概将Bucket中存储的Object规复至任意时间的汗青版本。


文件覆盖场景

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

https://i-blog.csdnimg.cn/blog_migrate/520d5ae7790e50cba09735c6ab20aaf9.jpeg
删除数据场景

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

https://i-blog.csdnimg.cn/blog_migrate/14312beac3511318623023dba5c6dbfe.jpeg

版本控制设置步调



[*] 新建Bucket时开启版本控制。
https://i-blog.csdnimg.cn/direct/89ffbb04a76e49769788a860cd50d61b.png

https://i-blog.csdnimg.cn/blog_migrate/9ca54f9de9aea2787e989e2b5ba29b02.png


[*] 对已创建的Bucket开启版本控制。
https://i-blog.csdnimg.cn/direct/9493dce6c70d4ce6b22dff0b49811c24.png

https://i-blog.csdnimg.cn/blog_migrate/eae6821b376e5f41d7b33a19f3a86595.png

停息版本控制

开启版本控制后,可以随时停息版本控制,这样可以停止在Bucket中继续累积同一Object的新版本。停息版本控制后,OSS将为新天生的Object添加versionID为null的版本,已有的汗青版本Object将继续保存。
https://i-blog.csdnimg.cn/direct/51c5f5571b844927bbd8e9a601621861.png

https://i-blog.csdnimg.cn/blog_migrate/6354e077596ba8651944109a80764014.png
规复版本

在开启版本控制下的Bucket中删除Object时,汗青版本Object不会被真正删除,而是产生一个删除标志来标识Object的当前版本是删除状态。此时可以在控制台规复版本。
https://i-blog.csdnimg.cn/direct/fa80cf172e0a4dd4ae693dcb6a95258a.png

https://i-blog.csdnimg.cn/blog_migrate/c4b01f8c3bc2612d7d1a19812cabba3e.png

如何做好数据管理

完成前面的模块后,小浩已经将企业门户网站上的静态资源(用户视频、附件等文件)托管在OSS Bucket上。企业门户网站由OA、邮箱、门户(首页、新闻、关于我们)等模块组成。此中门户模块使用的是静态页面。
小浩思考了一下,门户网站都是高频访问的静态资源,如果通过OSS Bucket完成门户模块的静态网站托管,服务器只需要编译运举措态文件,动静分离可以大大降低网站服务器的负载,提高网站的访问速率。
假设门户网站的域名为https://www.aliyun.com,由存放在OSS Bucket里的index.html、news/index.html和about.html组成门户模块中的首页、新闻和关于我们菜单,点击OA和邮箱菜单自动会跳转到相应的域名提供对应的服务。小浩开始进行设置。
https://i-blog.csdnimg.cn/direct/b0d0d8ef57fc4f7ea0cd36af80d6f586.png
静态网站托管

动静分离场景架构

https://i-blog.csdnimg.cn/direct/ccfd36f3599142e4901a49b7e8e58c94.png
什么是子目录首页

在控制台点击目标Bucket时,您会看到您之前上传的文件和创建的文件夹,文件夹即为子目录,以Bucket文件结构如下为示例。本案例中,由于新闻菜单中的内容较多,我们可以通过创建news子目录,news作为新闻菜单的入口,news目录下index.html作为新闻菜单的首页,汇总所有的新闻。
https://i-blog.csdnimg.cn/direct/c96dd904058f4126a2c6aed3139dc672.png
您可以通过Bucket设置中的域名管理,进行绑定域名。假设您的域名是www.aliyun.com,Bucket域名为https://yourbucket.oss-cn-hangzhou.aliyuncs.com,域名绑定完成后会将用户域名(www.aliyun.com) CNAME指向OSS外网访问域名(https://yourbucket.oss-cn-hangzhou.aliyuncs.com)。

https://i-blog.csdnimg.cn/blog_migrate/a8cb6e18cff9f63559d098d0210241c2.png
通过设置静态网站托管,设置默认首页为index.html,未开通子目录首页时,访问门户网站各个页面返回如下。当您访问https://www.aliyun.com/news 时,将会由Bucket根目录的index.html返回,不符合本场景的需求。

https://i-blog.csdnimg.cn/blog_migrate/2f43ade84150bb261629b8a5772a9526.png
所以,本场景下,我们需要开通子目录首页。当您访问https://www.aliyun.com/news时,由Bucket子目录news中的index.html返回。

https://i-blog.csdnimg.cn/blog_migrate/efac762d7a13b3ad0e1f90a612d4400f.png
设置静态网站托管设置步调



[*]未开通子目录首页
为Bucket开启静态网站托管时,未开通子目录首页时,当您想要访问子目录subdir/时,系统不支持跳转至子目录下的index.html页面,而是跳转至根目录下的index.html页面。此外,当访问Bucket内不存在的文件时,返回默认错误页面。详细设置步调如下:
https://i-blog.csdnimg.cn/direct/9c525da6332246af9327a9f1ac75e8bb.png


[*]已开通子目录首页
联合以上设置示例可知,为Bucket开启静态网站托管时,开通了子目录首页时,您希望访问子目录subdir/时,支持直接跳转至子目录下的index.html页面。此外,当访问Bucket内不存在的文件时,返回默认错误页面,并通过文件404规则指定访问不存在文件时的返回效果。详细设置步调如下:
https://i-blog.csdnimg.cn/direct/f72e9e9e78b54f8f812674ca1a0a83ab.png

https://i-blog.csdnimg.cn/blog_migrate/db16f899fc8f2629f91f3169dcbf4ca8.png
如何做好数据处置惩罚

目前企业门户网站的静态资源,依赖人工处置惩罚图片缩放、自定义裁剪、图片样式、视频转码、视频水印、视频考核、文档格式转换等。人工处置惩罚完毕后需要手动上传到OSS Bucket,处置惩罚过程繁琐,还会出错。是否有更便捷高效的方式行止理静态资源?小浩通过对象存储OSS产品功能相识到,对象存储OSS数据处置惩罚功能支持图片、文档、视频、CSV 等数据的常用处置惩罚和分析。

数据处置惩罚

图片处置惩罚参数

通过如下格式所示,联合固定格式与图片处置惩罚参数,完成图片的处置惩罚。
https://i-blog.csdnimg.cn/direct/35981f511d9e4a928cc53022cf8e322c.png


https://i-blog.csdnimg.cn/blog_migrate/4f489264999b1fa76741ea6a7ea2c887.jpeg

 图片处置惩罚设置步调如下:
https://i-blog.csdnimg.cn/direct/bef4458dfd2b4614a539768cd283a5f9.png

https://i-blog.csdnimg.cn/blog_migrate/ed243522609b253e7c2140b029ec0bf1.png
媒体处置惩罚

媒体处置惩罚参数

媒体处置惩罚是由智能媒体管理(IMM)提供的对多种视频格式进行转换的处置惩罚能力。将原始视频上传保存到阿里云对象存储OSS上,通过OSS的RESTful数据处置惩罚接口x-oss-async-process,在任何时间、任何地点、任何互联网装备上对视频进行视频转码等处置惩罚。点击详见媒体处置惩罚参数。

使用REST API

您可以对文件进行异步处置惩罚时使用样式,示例如下。详细参考样式链接。
https://i-blog.csdnimg.cn/direct/80f44a5404ac4cc8bd8de4b318e8fd68.png
使用SDK

登录阿里云OpenAPI门户,选择智能媒体管理,可以天生媒体处置惩罚功能不同语言的示例代码。

https://i-blog.csdnimg.cn/blog_migrate/45efc221e736918683f2aba8ad7d1e0b.png
文档处置惩罚

文档处置惩罚参数

文档转换是由智能媒体管理IMM提供的对多种文档格式进行格式转换的处置惩罚能力,将原始文档上传到阿里云对象存储OSS,通过OSS的RESTful数据处置惩罚接口x-oss-process和x-oss-async-process在任何时间、任何地点、任何互联网装备上对文档进行文档格式转换、在线预览、在线编辑等处置惩罚。 点击详见文档处置惩罚参数。


使用SDK

登录阿里云OpenAPI门户,选择智能媒体管理,可以天生文档处置惩罚功能不同语言的示例代码。

https://i-blog.csdnimg.cn/blog_migrate/7908ac6b348968f8466fedfb5b1d78dd.png

如何做好网站加快

企业门户网站的用户分布在全国,小浩通过视频访问数据发现部分用户因传输间隔较远,导致上传和下载体验非常差。小浩该如何解决用户体验问题?


传输加快

小浩使用阿里云全球分布的云机房,使用OSS传输加快全球各地用户对存储空间(Bucket)的访问,经过智能路由剖析至就近的接入点,使用优化后的网络及协议,为云存储互联网的上传、下载提供端到端的加快方案。


开启传输加快设置步调

https://i-blog.csdnimg.cn/direct/52af471ed64a47708cd1498a046e37a9.png

https://i-blog.csdnimg.cn/blog_migrate/0d6b90973aa873e8b1de6369a52d053e.png

如何做好网站高可用

如果门户网站的静态数据存储在对象存储OSS上,动态数据存放在云服务ECS数据盘上。可能存在一台云服务器ECS不可用时,业务动态数据无法包管一致的问题。是否可以让两台云服务器ECS,同时去访问一个存储装备?那么,旧的企业门户网站的数据如何迁移到NAS上?小浩该如何解决该问题呢?

处置惩罚思路

为了避免ECS存储数据的单点故障,可以通过负载平衡创建监听,添加两台服务器ECS实例。两台ECS上仅仅部署WEB服务,共享同一个NAS文件存放动态数据。静态数据存储在对象存储OSS Bucket。
https://i-blog.csdnimg.cn/direct/f1b37626ff8244c0931756fa12f31daf.png
NAS实现多台ECS挂载

设置步调

https://i-blog.csdnimg.cn/direct/fcf8181c02654443a322611bb2190136.png
 
数据迁移

小浩已经将文件存储NAS挂载到ECS实例,那旧版企业版门户网站的动态数据怎么迁移上NAS呢?小浩查看了文件存储NAS数据迁移文档,根据本场景选择了非阿里云数据迁移至云上NAS,通过rsync下令行工具完成数据迁移。
https://i-blog.csdnimg.cn/direct/155efdcf379341d580b200a84df4383a.png
设置步调

假设ECS的公网IP是192.168.1.1,文件存储NAS在ECS上挂载的路径为/mnt/DirToSync。旧版企业门户网站要迁移的数据所在目录为DirToSync。
https://i-blog.csdnimg.cn/direct/1d3280cd16cd4e5c9f8fde9177116501.png

NAS回收站

小浩在使用对象存储OSS时,为了应对错误删除、覆盖的文件开启了版本控制。文件存储NAS中,是否也有雷同功能可以实现对误删除文件的数据保护呢?
当您误删除通用型NAS文件系统中的文件后,可以通过NAS回收站规复这些文件及其UID、GID和ACL等元数据信息。
https://i-blog.csdnimg.cn/direct/8c5f7ad1c1dd445fae017a6ba6177b22.png
开启回收站设置步调:
开启回收站后,被删除的文件将自动进入回收站,并在规定的保存时间之后彻底删除。
https://i-blog.csdnimg.cn/direct/246bba91408445b8a75d108d3f9f2692.png

https://i-blog.csdnimg.cn/blog_migrate/86bc14b5fd792c6a5d4979302836c8b0.png

https://i-blog.csdnimg.cn/blog_migrate/9ecbfaa00e2af2da65801a36444c917b.png



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 阿里云存储应用