阿里云存储应用

news2024/11/15 1:30:57

如何做好权限控制

小浩在梳理门户网站静态资源时,发现有些资源是仅内部员工可访问,有些资源是特定的注册客户可访问,还有些资源是匿名客户也可以访问。针对不同场景、不同用户,小浩该如何规划企业门户网站静态资源的权限控制呢?

权限控制类型

OSS有以下四种类型的访问权限控制。

设置Bucket ACL权限

针对门户网站的场景,小浩对企业门户网站需要存放的文件,进行了访问权限类型的梳理:

小浩首先需要创建一个Bucket用来存放文件,查看下表权限类型说明后,小浩希望设置Bucket ACL权限为私有

  • 配置Bucket ACL为私有支持以下两种模式:

创建时配置Bucket ACL步骤如下:

创建后修改Bucket ACL的步骤如下:

此时小浩内心有疑问,Bucket ACL已经设置为私有权限了,企业门户网站静态资源要求的是公共读权限,该如何处理呢?

  • 首先我们回顾一下Bucket和Object的关系。在上传数据(例如文档、图片、音视频等)到OSS之前,需要创建一个存储空间(Bucket),然后将文件(Object)上传到该Bucket中。

  • Bucket已经设置为私有,那Object是不是只能设置为私有?答案是否定的,上传Object时可以选择继承Bucket ACL或指定Object ACL。

设置Object ACL权限

于是,小浩上传网站匿名可访问的静态资源到Bucket时,需要设置Object ACL权限为公共读。

配置Object ACL为公共读支持以下两种方式:

  • 上传Object时设置Object ACL为公共读。

  • 上传Object到Bucket后调整Object ACL。

设置Bucket Policy

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

  • 企业门户网站注册客户,需要有对部分视频有读的权限。可以通过Bucket Policy将指定用户设置为只读权限。假设该视频资源存放在OSS Bucket的video目录下,如下图所示,配置步骤如下:

  • 使用OSS控制台,对指定用户设置为只读权限。满足企业门户网站部分资源设置为,仅注册客户为公共读权限。

  • 企业门户网站匿名用户,需要有对部分视频进行播放的权限。可以通过Bucket Policy对匿名用户设置为只读权限。假设该视频资源存放在OSS Bucket的guest目录下。如下图所示,配置步骤如下:

  • 使用OSS控制台,完成对匿名用户设置为只读权限,满足所有用户可以播放视频的需求。

设置RAM Policy

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

  • 使用RAM控制台,完成RAM Policy的配置。小浩的同事即可通过子账号登陆阿里云,查看Bucket中的视频信息。

如何做好数据安全

数据加密

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

客户端加密

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

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

  • 使用KMS托管用户主密钥

  • 使用用户自主管理密钥

服务器端加密

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

小浩对比之后,最终选择使用服务器端加密,加密方式选择使用OSS完全托管密钥进行加解密。配置步骤如下:
设置服务器端加密支持创建Bucket时配置和后期配置两种模式:
  • 创建Bucket时开启服务器端加密

  • 已创建的Bucket开启服务器端加密

 

跨域设置

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

跨域访问

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

对于http://www.aliyun.com/org/test.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区域,设置为允许

版本控制

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

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

文件覆盖场景

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

删除数据场景

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

版本控制配置步骤
  • 新建Bucket时开启版本控制。

  • 已创建的Bucket开启版本控制。

暂停版本控制

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

恢复版本

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

如何做好数据管理

完成前面的模块后,小浩已经将企业门户网站上的静态资源(用户视频、附件等文件)托管在OSS Bucket上。企业门户网站由OA、邮箱、门户(首页、新闻、关于我们)等模块组成。其中门户模块使用的是静态页面。

小浩思考了一下,门户网站都是高频访问的静态资源,如果通过OSS Bucket完成门户模块的静态网站托管,服务器只需要编译运行动态文件,动静分离可以大大降低网站服务器的负载,提高网站的访问速度。

假设门户网站的域名为https://www.aliyun.com,由存放在OSS Bucket里的index.html、news/index.html和about.html组成门户模块中的首页、新闻和关于我们菜单,点击OA和邮箱菜单自动会跳转到相应的域名提供对应的服务。小浩开始进行配置。

静态网站托管
动静分离场景架构

什么是子目录首页

在控制台点击目标Bucket时,您会看到您之前上传的文件和创建的文件夹,文件夹即为子目录,以Bucket文件结构如下为示例。本案例中,由于新闻菜单中的内容较多,我们可以通过创建news子目录news作为新闻菜单的入口news目录下index.html作为新闻菜单的首页,汇总所有的新闻

您可以通过Bucket配置中的域名管理,进行绑定域名。假设您的域名是www.aliyun.com,Bucket域名为https://yourbucket.oss-cn-hangzhou.aliyuncs.com,域名绑定完成后会将用户域名(www.aliyun.com) CNAME指向OSS外网访问域名(https://yourbucket.oss-cn-hangzhou.aliyuncs.com)。

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

所以,本场景下,我们需要开通子目录首页当您访问https://www.aliyun.com/news时,由Bucket子目录news中的index.html返回

设置静态网站托管配置步骤
  • 未开通子目录首页

为Bucket开启静态网站托管时,未开通子目录首页时当您想要访问子目录subdir/时,系统不支持跳转至子目录下的index.html页面,而是跳转至根目录下的index.html页面。此外,当访问Bucket内不存在的文件时,返回默认错误页面。具体配置步骤如下:

  • 已开通子目录首页

结合以上配置示例可知,为Bucket开启静态网站托管时,开通了子目录首页时,您希望访问子目录subdir/时,支持直接跳转至子目录下的index.html页面。此外,当访问Bucket内不存在的文件时,返回默认错误页面,并通过文件404规则指定访问不存在文件时的返回结果具体配置步骤如下:

如何做好数据处理

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

数据处理
图片处理参数

通过如下格式所示,结合固定格式与图片处理参数,完成图片的处理。

 图片处理配置步骤如下:

媒体处理
媒体处理参数

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

使用REST API

您可以对文件进行异步处理时使用样式,示例如下。具体参考样式链接。

使用SDK

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

文档处理
文档处理参数

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

使用SDK

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

如何做好网站加速

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

传输加速

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

开启传输加速配置步骤

如何做好网站高可用

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

处理思路

为了避免ECS存储数据的单点故障,可以通过负载均衡创建监听,添加两台服务器ECS实例。两台ECS上仅仅部署WEB服务共享同一个NAS文件存放动态数据静态数据存储在对象存储OSS Bucket

NAS实现多台ECS挂载
配置步骤

 

数据迁移

小浩已经将文件存储NAS挂载到ECS实例,那旧版企业版门户网站的动态数据怎么迁移上NAS呢?小浩查看了文件存储NAS数据迁移文档,根据本场景选择了非阿里云数据迁移至云上NAS,通过rsync命令行工具完成数据迁移。

配置步骤

假设ECS的公网IP是192.168.1.1,文件存储NAS在ECS上挂载的路径为/mnt/DirToSync。旧版企业门户网站要迁移的数据所在目录为DirToSync。

NAS回收站

小浩在使用对象存储OSS时,为了应对错误删除、覆盖的文件开启了版本控制。文件存储NAS中,是否也有类似功能可以实现对误删除文件的数据保护呢?

当您误删除通用型NAS文件系统中的文件后,可以通过NAS回收站恢复这些文件及其UID、GID和ACL等元数据信息。

开启回收站配置步骤:

开启回收站后,被删除的文件将自动进入回收站并在规定的保留时间之后彻底删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1904228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解析商场智能导视系统背后的科技:AR导航与大数据如何助力商业运营

在布局复杂的大型商场中,顾客常常面临寻找特定店铺的挑战。商场的规模庞大,店铺众多,使得顾客在享受购物乐趣的同时,也不得不面对寻路的难题。维小帮商场智能导航导视系统的电子地图、AR导航营销能为顾客提供更加便捷的购物体验。…

Linux—网络设置

目录 一、ifconfig——查看网络配置 1、查看网络接口信息 1.1、查看所有网络接口 1.2、查看具体的网络接口 2、修改网络配置 3、添加网络接口 4、禁用/激活网卡 二、hostname——查看主机名称 1、查看主机名称 2、临时修改主机名称 3、永久修改主机名称 4、查看本…

2023年了,还在手动px转rem吗?

px-to-rem 使用amfe-flexible和postcss-pxtorem在webpack中配置px转rem npm i amfe-flexible -Snpm i postcss-pxtorem -D在main.js中 import flexible from amfe-flexible Vue.use(flexible);index.html中 <meta name"viewport" content"widthdevice-w…

用 Echarts 画折线图

https://andi.cn/page/621503.html

Floyd判圈算法——环形链表(C++)

Floyd判圈算法(Floyd Cycle Detection Algorithm)&#xff0c;又称龟兔赛跑算法(Tortoise and Hare Algorithm)&#xff0c;是一个可以在有限状态机、迭代函数或者链表上判断是否存在环&#xff0c;求出该环的起点与长度的算法。 …

Java语言程序设计篇一

Java语言概述 Java语言起源编程语言最新排名名字起源Java语言发展历程Java语言的特点Java虚拟机垃圾回收Java语言规范Java技术简介Java程序的结构Java程序注意事项&#xff1a;注释编程风格练习 Java语言起源 1990年Sun公司提出一项绿色计划。1992年语言开发成功最初取名为Oak…

vue3使用方式汇总

1、引入iconfont阿里图库图标&#xff1a; 1.1 进入阿里图标网站&#xff1a; iconfont阿里&#xff1a;https://www.iconfont.cn/ 1.2 添加图标&#xff1a; 1.3 下载代码&#xff1a; 1.4 在vue3中配置代码&#xff1a; 将其代码复制到src/assets/fonts/目录下&#xff1…

大众点评2024年全球必吃榜清单

大众点评2024年全球必吃榜清单共2797家&#xff0c;奇怪的是官方并没有发布详细清单&#xff0c;只发布了新闻通稿介绍大概情况。这里做一些整理。 按城市分布情况&#xff0c;数量如下 上海 144 北京 137 成都 96 重庆 93 广州 81 深圳 79 武汉 69 苏州 67 杭州 61 …

应急响应--网站(web)入侵篡改指南

免责声明:本文... 目录 被入侵常见现象: 首要任务&#xff1a; 分析思路&#xff1a; 演示案例: IIS&.NET-注入-基于时间配合日志分析 Apache&PHP-漏洞-基于漏洞配合日志分析 Tomcat&JSP-弱口令-基于后门配合日志分析 (推荐) Webshell 查杀-常规后门&…

17_VGG深度学习图像分类算法

1.1 简介 VGG网络&#xff0c;全称为Visual Geometry Group网络&#xff0c;是由牛津大学的Visual Geometry Group和谷歌DeepMind的研究人员共同提出的深度卷积神经网络模型。这一模型因在2014年ILSVRC&#xff08;ImageNet大规模视觉识别挑战赛&#xff09;中取得图像分类任务…

昇思25天学习打卡营第4天|MindSpore数据集和数据变换

# 打卡 目录 # 打卡 Dateset&#xff1a;Pipeline 的起始 具体步骤 数据处理 Pipeline 代码例子 内置数据集的情况 自定义数据集的情况 可迭代的数据集 生成器 Transforms&#xff1a;数据预处理 代码例子 通用变换Compose 文本变换 Text Lambda变换 Dateset&…

STM32芯片系列与产品后缀解读

一. 产品系列 STM32单片机是一系列基于ARM Cortex-M内核的32位微控制器&#xff0c;广泛应用于嵌入式系统中。 STM32系列由STMicroelectronics&#xff08;意法半导体&#xff09;开发和生产&#xff0c;并凭借其灵活的设计、丰富的外设和强大的生态系统&#xff0c;成为嵌入式…

JVM专题之G1垃圾收集器下

索引(记录)的源码的工作流程图如下: CSet(Collection Set 回收集合) 收集集合(CSet)代表每次GC暂停时回收的一系列目标分区。在任意一次收集暂停中,CSet所有分区都会被释放,内部存活的对象都会被转移到分配的空闲分区中。因此无论是年轻代收集,还是混合收集,工作的机…

catia数控加工仿真铣平面粗加工

1&#xff0c;零件建模&#xff0c;毛坯建模 2 在毛坯上建立坐标系 3 添加资料刀具 4&#xff0c;双击对相关加工信息做设置 5 Roughing 加工设置 高亮红色区域是必选的&#xff0c;其他可以默认 6 完成加工仿真 7 加工余量

IntelliJ IDEA 同时多行同时编辑操作快捷键

首先 点击要编辑的地方,长按鼠标左键不放,同时按住 Ctrl Shift Alt,然后就可以进行多行编辑了

亲密数对C++函数

自定义函数 #include<bits/stdc.h> using namespace std; //求n的因子和自定义函数 int yinzihe(int n){//使用2~sqrt(n)成对求解因子和int r0,i;//变量 r 初始值为0&#xff0c;因为要存放因子和for(i2;i<sqrt(n);i) {//回顾sqrt()课程//如果 i 是 n 的因子&#xf…

用win的控制台去远程连接虚拟机linux的终端

以Ubuntu为例&#xff0c;首先确保Ubuntu已经安装了ssh服务 sudo apt-get install openssh-server输入密码 安装完毕后查看ssh状态是否开启 sudo systemctl status ssh 显示绿色激活状态&#xff0c;可以关闭或开启 对应start和stop winr打开win端控制台 输入 ssh -p 22 …

【Linux详解】进程等待 | 非阻塞轮询

引入&#xff1a; 为什么&#xff1f;是什么&#xff1f;怎么办 是什么&#xff1f; 进程等待是指父进程暂停自己的执行&#xff0c;直到某个特定的子进程结束或发生某些特定的事件。 为什么&#xff1f; 僵尸进程刀枪不入&#xff0c;不可被杀死&#xff0c;存在内存泄露…

Codeforces Round 918 (Div. 4)(A~F)

目录 A. Odd One Out B. Not Quite Latin Square C. Can I Square? D. Unnatural Language Processing E. Romantic Glasses F. Greetings A. Odd One Out Problem - A - Codeforces 输出一个不同于其他两个数的数&#xff0c;用异或操作可以轻松解决。 void solve{int…

ompl.app的demo_OpenDEPlanning例子

编译了下OMPL和OMPL.app, 其中有个example 是用刚体动力学库ODE搭建的小车运动场景&#xff0c;找出小车到目标的路径&#xff0c;牵引小车跑到目标位置。 ompl小车路径运动模拟