亚马逊云科技中Amazon S3,因其设计简单与高度可靠,允许用户通过互联网存储和检索任意数量的数据,并能够自动扩展以满足各种规模的需求,使得Amazon S3成为了许多云计算应用和网站的核心存储基础设施之一,Amazon S3提供的功能涉及方面众多,今天博主就云存储服务这一方面知识简单讲解一下Amazon S3。
目录
[初识Amazon S3](#初识Amazon S3)
初识Amazon S3
AmazonSimple Storage Service,也称为Amazon S3,是一种面向对象的存储服务,能够在不需要额外投资的情况下实现对任何类型数据进行持久化存储管理,并支持基于网络的快速查询与下载,为各种规模和行业的客户提供了存储和保护任意数量数据的能力,适用于数据湖、网站、移动应用、数据备份与恢复、文件归档、企业应用、IoT设备以及大数据的分析工作。
我们可以来到亚马逊云科技的 资源地址 可以看到,亚马逊提供了很多的云服务内容,这里我们可以看到今天博主讲解的Amazon S3也赫然其中:
点击进入到Amazon S3,页面也随即跳转到对应的官方页面,这里详细讲解了Amazon S3存在的优势以及其服务的场景,从官网我们可以了解到Amazon S3强大的使用案例,对于从事机器学习要求庞大的数据源操作时,Amazon S3是一个比较不错的选择:
对于Amazon S3的工作原理,官方也给出了详细的解释,原来Amazon S3是将数据作为对象存储在存储桶中,对象 是一个文件和描述该文件的任何元数据而存储桶 是对象的容器,通过创建一个存储桶并指定存储桶名称和服务区域,数据将会作为Amazon S3中的对象上传到该存储桶,每个对象都有一个密钥,它是存储桶中对象的唯一标识符方便后期对数据进行处理,流程图大致如下:
安全性与加密
Amazon S3作为存储桶存储数据,数据是否具备安全性和加密是及其重要的,换句话讲我应该通过怎样的加密手段来确保我存储到S3中的数据是安全的呢?S3也是为这两点提供了重要的保障,包括静态数据加密、权限控制、安全策略配置等等。接下来对S3的安全配置进行一个简单的概述,如下所示:
1)确保Amazon S3存储桶使用正确的策略且不可公有访问,实施最低权限访问。
当我们创建存储桶的时候要限制桶的公开访问权限,避免其他无关人员能够访问我们的数据;然后也要保证存储桶策略没有过大的权限,比如通配符操作(比如给所有人读的权限,或者给某个人执行所有桶的所有操作的权限),当然同样在访问控制列表(ACL)层面也要杜绝类似配置。
2)将IAM角色用于需要Amazon S3访问权限的应用程序和亚马逊服务
在用 IAM 角色来管理需要访问Amazon S3的应用程序或服务的临时凭证,在使用角色时不需要将长期凭证(如用户名和密码或访问密钥)分配给Amazon EC2实例或亚马逊云科技提供的其他服务(例如Amazon Lambda),角色可提供临时权限供应用程序在调用其他亚马逊云科技资源时使用。
3)考虑加密静态数据及实施传输中数据加密
静态数据加密分为服务端和客户端两种加密,例如我们把文件上传到S3上,S3这个服务帮助我们进行加密就是服务端进行加密,如果我们想自己加密的话,我们也可以在客户端对文件进行SDK进行加密。
传输中加密一般来说就是在上传或下载S3的资源的时候在整个传输路径中进行加密,这种加密方式一般就七层了,如HTTPS这种TLS加密,而S3本身也是支持HTTPS的,所有在整个过程中S3是能够保证一定的数据安全性的,如下操作:
这里选择服务端对应的加密密钥类型:
4)考虑S3对象锁定
使用文件锁来保存对象,做到一次写入多次读写数据,能保存合规的数据,将数据保存为WORM格式有权限的用户可以更改数据保留期。
5)考虑使用VPC端点进行AmazonS3访问
S3的VPC端点是 VirtualPrivate Cloud(VPC) 内的逻辑实体,仅允许连接到S3,可以使用S3存储桶策略控制从特定VPC端点或特定VPC对存储桶的访问,可以控制允许通过特定VPC端点访问的请求、用户或组;也可以使用S3存储桶策略控制哪些VPC或VPC端点有权访问S3存储桶。
S3使用教程
进入控制台:首先我们来到亚马逊管理控制台,然后点击S3服务进入到S3操作界面:
如果没有出现在控制台也没关系,这里我们可以直接在顶部的搜索栏搜索Amazon S3,点击对应的服务进入到S3的服务平台,如下所示:
创建存储桶:这里我们点击创建我们的新的S3存储桶按钮,开始进行创建:
进入创建界面,这里我们需要输入相关的配置信息,例如存储桶的名称以及亚马逊服务的区域
然后这里的话默认S3存储桶是私有的状态,如果取消勾选的话就对存储桶的数据进行公开展示:
后面的话就正常选择默认配置就好了,每个配置都有详细的说明,根据自身情况进行内容填写。
上传文件:创建好存储桶之后,回到S3控制台,点击刚刚我们创建好的存储桶,进入之后点击上传按钮可以上传对应的资源文件了,如下:
添加文件上传对应的文件信息:
资源共享:上传的资源,我们也可以通过后期的操作选择预签名URL共享的操作,可以制作一个临时的URL链接,然后设置对应的URL时效,可以分享给其他人观看,超过我们设置的时效资源就自动访问不了了,安全性可谓是非常的高了!
生命周期管理:我们也可以配置存储桶生命周期管理规则,我们可以指定一个筛选条件,选择符合条件的对象来进行相应的生命周期管理,我们可以指定对象的名称前缀和对象的标签来作为筛选条件,比如只针对pgototype这个标签和photos/这个前缀的对象进行归档操作,
S3托管静态网站
接下来我们通过S3来托管一个我们的静态网站,我们知道如果要做一个网站的话一般来讲要使用亚马逊云科技EC2的实例,或者说购买其他平台的VPS服务器来托管我们整个服务器,甚至我们还要在上面安装Apache、Nginx或者Windows中的IIS然后才能托管网站。
而S3是另外的一个方法而且其成本比较低,所以基本上如果我们要在S3上取部署一个静态网站的话,成本的话一个月也就几块钱而已,当然取决于你的流量是多是少的情况了。S3它本身也没有固定的成本不像EC2不管你用不用,你开着它就得有一个固定成本在那个地方,所以针对静态网站,S3是一个非常适合的方法。如果想部署一个动态网站,譬如存在JSP或者ASP.NET这些服务器端的脚本的话,还是需要用到EC2这种服务器来解析后端脚本。
这里和上面S3使用教程一样,创建一个存储桶,然后选择添加文件,将静态网站的文件进行一个上传,如下所示,上传完成之后鼠标往下滑动,点击上传按钮进行文件上传:
上传完毕之后,回到我们的控制台进入我们上传好文件的存储桶,然后进入属性界面进行配置操作
往下滑动找到我们静态网站托管的选项,点击编辑按钮:
然后对静态网站托管进行一个编辑操作:
配置完成之后再次回到我们的属性配置页面,来到这个地方可以看到我们静态网站的分享链接已经生成了,可以分享给别人进行查看了。
然后我们也可以来到权限的界面,对访问我们资源的人员进行一个权限控制:
写在最后
当谈到现代数据存储和云计算时,Amazon S3无疑是一颗耀眼的明星,作为亚马逊云科技提供的对象存储服务,它不仅简单易用,更是企业和开发者们的信赖之选,其魅力在于它超越了传统存储的边界,无论是个人用户还是全球企业,S3 提供了可靠、高度可扩展的存储解决方案,如果感兴趣的朋友也可以去体验一番:地址 ,这里亚马逊也是提供了S3一年的免费试用!
然而,Amazon S3 背后更深层的含义是它在数字化时代的角色。它不仅仅是一个存储平台,更是数据安全、可靠性和可用性的典范。通过S3,用户可以在全球范围内实现数据的高速传输和复制,保证数据的持久性和安全性,无论面对何种挑战和规模的应用需求。
因此,Amazon S3 的意义不仅在于其技术本身的高度可靠和先进,更在于它对数据管理和云计算发展方向的深远影响。它让我们重新审视数据的存储、访问和保护,为未来的数字化社会提供了可持续的基础架构,在Amazon S3的世界里,我们看到了技术的力量如何改变我们的工作方式和生活方式。它激发了无数创新和应用的可能性,为我们打开了通往数字化未来的大门。