首页 > 其他分享 >阿里云存储应用

阿里云存储应用

时间:2024-07-07 18:29:18浏览次数:9  
标签:存储 小浩 门户网站 OSS Object Bucket 阿里 应用 权限

如何做好权限控制

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

权限控制类型

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之前在本地进行加密,使用客户端加密功能时,需要对主密钥的完整性和正确性负责。因维护不当导致主密钥用错或丢失,从而导致加密数据无法解密。

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

服务器端加密

设置服务器端加密,在存储空间(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等元数据信息。

开启回收站配置步骤:

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

标签:存储,小浩,门户网站,OSS,Object,Bucket,阿里,应用,权限
From: https://blog.csdn.net/weixin_74923758/article/details/140240399

相关文章

  • MATLAB算法实战应用案例精讲-【数模应用】偏最小二乘回归分析(PLS)(附MATLAB和python代码
    目录前言知识储备回归的方法回归的检验算法原理数学模型偏最小二乘回归建模原理:PLS的准则函数偏最小二乘基本算法​编辑 ​编辑PLS回归模型算法思想PLS回归与MLS、PCR、MRA比较SPSSAU案例应用其他说明SPSS示例(PLS命令) 变量列表(PLS命令) MODEL......
  • Optimize-Volume 命令用于优化指定驱动器的性能。除了 -Defrag 参数以外,还有一些其他
    Optimize-Volume命令起源于Microsoft的PowerShell环境中的一个磁盘优化工具。它主要用于对磁盘驱动器执行优化操作,包括碎片整理、TRIM操作(针对固态硬盘)、分块整理等。这些操作有助于提高磁盘性能和延长硬件寿命,特别是对于使用频繁的系统和数据驱动器来说尤为重要。在Power......
  • B-Tree的应用
    在数据库和文件系统中,B-树及其变种被广泛用于索引结构,以优化数据的存储和检索效率。当处理的数据项是很大的记录时,使用改进的B-树可以带来显著的优势。以下是这种改进B-树的关键特性和工作原理的详细解释:1.**只有叶子节点存放完整记录**在标准的B-树中,每个节点(包括非叶子节......
  • 昇思25天学习打卡营第9天|应用实践之基于MindSpore实现的红酒分类实验
    基本介绍    今日要学习的是使用KNN算法进行红酒分类,实践是基于MindSpore平台的,采用模式识别著名的数据集之一,WineDataSet数据集。今日所学习的并不难,KNN是一个很成熟的算法了,网上教程很多,使用MindSpore的API可以很快速的搭建出KNN算法,而且数据集无需做额外的处理,简......
  • 昇思25天学习打卡营第8天|应用实践之基于 MindSpore 实现 BERT 对话情绪识别
    BERT模型基本介绍    昨天体验实践的模型是自然语言处理领域的模型,今天也是一样的。昨天的MusicGen是LLM模型,使用的是基于transformer的编码-解码器架构,而今天的BERT是基于transformer的双向编码器架构。由于主要目的是体验实践使用MindSpore运行BERT模型,所以只对BER......
  • C#开发单实例应用程序并响应后续进程启动参数
    C#默认的WinForm模板是不支持设置单实例的,也没有隔壁大哥VB.NET那样有个“生成单个实例应用程序”的勾选选项(VB某些时候要比C#更方便),实现单实例可以有多种方法:检测同名进程:Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName),如果集合的Length>1那就表明已......
  • 深入解析RocketMQ的存储设计艺术(一)
    1. DomainModel领域模型(DomainModel)是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。1.1 MessageMessage是RocketMQ消息引擎中的主体。mes......
  • raid5存储池已损毁硬盘数据
    RAID5存储池中的硬盘数据损毁是一个复杂的问题,因为它涉及到数据的冗余、存储方式以及恢复策略。一、RAID5的工作原理RAID5是一种使用条带化和奇偶校验技术的存储解决方案,它至少需要三个硬盘来构建。在这种配置中,数据和奇偶校验信息被分布在所有硬盘上,以提供数据冗余和提高读......
  • Linux 防火墙配置指南:firewalld 端口管理应用案例(二十个实列)
       ......
  • 高效开发:使用Spring Boot快速构建企业级应用
    ......