私有权限的Bucket或Object需要携带签名URL进行请求,同时签名URL地址存在有效期的烦恼,即需要不停地获取签名URL,并放到实际业务中访问。本文主要介绍OSS如何在私有的读写权限环境下,如何应用到业务中。
OSS权限利弊介绍
公共读权限
-
优点:简便性高,无需携带请求参数,无有效期烦恼。
-
缺点:安全性低,当遇到恶意请求时,易出现高额账单。
私有权限
-
优点:安全性高,每次请求都需要签名校验。
-
缺点:使用复杂度高,需结合自身业务,频繁获取签名地址进行请求。
业务场景介绍
网站业务:通过OSS存储静态文件(如:图片、视频等),通过网站OSS地址进行访问。以下为视频放到网站中的效果。
在 Aliplayer 播放预览页面中播放视频时,浏览器 DevTools 的 Network 面板显示产生了两条 aliyunmedia.mp4 的 206 Partial Content 请求,大小分别为 118 kB 和 8.2 MB,表明视频通过分段请求方式从 OSS 加载。
解决方案
整理如下几个解决方法:
-
CDN + OSS【推荐】
-
OSS开启私有读写权限,同时CDN开启“私有Bucket回源”功能。通过这个方式,CDN域名无需签名的URL地址进行请求到OSS资源,也可以实现避免恶意客户端请求到公共读的OSS上,并产生大量流量。【将OSS访问路径引到CDN侧,同时实现加速】
-
CDN防护,通过CDN配置进行拦截【通过CDN实现拦截】
-
-
ECS + OSS
-
ECS进行反向代理,访问链路是:客户端 -> ECS -> OSS,OSS开启私有权限,ECS通过反向代理方式请求到OSS。使用ECS实例反向代理OSS
-
ECS获取签名URL,访问链路是:客户端 -> ECS -> 客户端 -> OSS。
-
客户端请求应用服务器,获取签名URL地址。
-
客户端通过签名URL地址,访问OSS,过期后需重复获取。
-
-