关注公众号:AWS爱好者(iloveaws)
文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
网站:www.iloveaws.cn

S3存储桶策略(S3 Bucket Policies)

【 Domain 1的组织复杂性设计(Design for Organizational Complexity)】——-S3存储桶策略(S3 Bucket Policies)

Hello大家好,欢迎回来,我们今天的课程内容是S3存储桶策略。

基于资源的策略和基于用户策略

Amazon S3 提供的访问策略选项大致可分为 基于资源的策略和用户策略两类。附加到资源 (如存储桶和对象) 的访问策略称为基于资源的策略。例如,存储桶策略和访问控制列表 (ACL) 就是基于资源的策略。您也可以将访问策略附加到您账户中的用户。这些策略称为用户策略。您可以选择使用基于资源的策略、用户策略或这些策略的某种组合来管理您的 Amazon S3 资源权限。

我们今天课程的内容是基于资源策略的存储桶策略,那什么情况下需要使用存储桶策略呢?

通常来讲,在使用AWS时,一个和权限、策略相关的服务是IAM,它被用于在AWS账户下分配用户、组、角色使用资源的权限,您可以使用IAM为用户分配访问资源权限,然而,用户策略是用来管理您账户中用户的权限的。对于其他 AWS 账户或其他账户中用户的跨账户权限,则必须使用存储桶策略,而且,当您想基于存储桶来规划访问策略时就需要使用存储桶策略,存储桶策略是直接附加到存储桶上的。

下面我将会做一个演示,帮助大家了解存储桶策略的作用。

很多案例都在使用S3

现在大家看到的是AWS官方SAP-C01考试指南,在我们前面的课程出现过,这个PDF文件实际上是存储在AWS 上的S3存储桶中,我们可以使用curl命令验证下。我们复制一下URL,打开console,来验证下

curl -I  https://d1.awsstatic.com/training-and-certification/docs-sa-pro/AWS_Certified_Solutions_Architect_Professional-Exam_Guide_EN_1.2.pdf

看下返回的信息,server 是amazons3 ,也就是说,aws将考试指南pdf放到了s3存储桶中,提供给所有人进行访问,任何人通过这个url,都可以访问并下载考试指南PDF。

我们在演示一个网站的案例,就是这个网站,AWS官方提供的AWS月成本计算器,我在工作中经常会使用这个网站,做一些AWS资源月使用成本的估算。

月成本计算器网站也是运行在S3中,我们同样使用curl命令来验证一下:

curl -I  https://calculator.s3.amazonaws.com/index.html

同样可以看到这个网站也是托管在amazon s3上。

当前很多组织都在使用S3来托管网站、网页应用以及音、视频文件等等,因为它配置起来非常的简单。

配置对象允许所有人访问

下面我将演示上传一个文本文件到S3存储桶,并提供给所有人访问。

来到S3控制台,我们开始创建一个S3存储桶,名称为iloveawscn,区域就是目前的亚太区域就可以,然后下一步,完成存储桶的创建。

创建完成后,可以看到存储桶的访问属性是“存储桶和对象不是公有的”,也就是说存储桶和对象没有任何公有访问权限。

我们现在进入存储桶,然后上传一个txt文件,上传一个test.txt文件,不做任何配置,直接上传。

上传完成后,我们选择test.txt文件,在右侧可以看到对象的url,可以使用这个url打开或者下载这个文件。
我们复制下这个url , https://iloveawscn.s3-ap-northeast-1.amazonaws.com/test.txt

然后进入到console,curl一下这个url,看看是什么结果。不出所料,结果显示是拒绝访问的。因为现在存储桶缺省配置是阻止全部公共访问权限,所以当我们通过curl命令访问对象时就会被拒绝。

那如果您的应用场景是和前面的考试指南文件PDF一样,需要提供给所有用户访问或下载这个文件,最简单的方法就是把这个txt文件设置为公开,但在将这个对象设置为公开前,要先将这个存储桶的阻止公共访问权限关闭。现在还操作下:

进入这个存储桶,选择权限,然后编辑,将组织全部/公共访问权限的复选框去掉,然后保存。

然后点击test.txt文件,将其设置为公开。

好的,现在test.txt文件就成功设置为公开了,我们现在测试下,同样使用curl命令,我们先复制下这个文件的url,然后回到console,执行,可以看到我们已经可以成功访问这个txt文件,并获取到了文件的内容,说明我们这个txt文件已经成功设置成了公开,提供给所有人访问和下载。

开放允许特定IP段的存储桶策略

然而,还有一些应用场景,比如我现在只希望在我单位的网络情况下访问到存储桶中的文件,除此之外的网络禁止访问,也就是说,只开放允许特定的IP段访问存储桶对象,不在指定的IP段都希望是禁止访问的。要达成这个需求,就需要使用存储桶策略对允许访问的的IP以及相关配置项进行配置。

那我们现在就来配置一下吧:

我们现在进入到存储桶策略配置项,进入这个存储桶,选择权限-存储桶策略,现在策略是空的,没有内容。在存储桶策略中,可以对这个特定的存储桶进行各类访问控制配置。

那么接下来我们就要配置一个基于ip地址条件的存储桶策略。我已将策略准备好,现在将策略直接复制粘贴到这里。

我们看下这个策略的内容,Principal是*,代表所有;action配置的是所有s3动作,resource部分我们将这个存储桶的arn复制到这里。然后是ipaddress,需要将允许访问这个存储桶的ip替换到这里,我快速查看下我目前的公网ip :114.248.231.140,然后替换掉策略中的ip。注意我这里现在配置了我目前公网地址,是一个单独的ip地址,ip地址后面是/32,当然也可以配置成网段。DENY对应notipaddress,也就是只允许这个ip访问这个S3存储桶。

下面就是策略的内容,大家可以复制修改后使用。

{"Version": "2012-10-17","Id": "S3PolicyId1","Statement": [{"Sid": "statement1","Effect": "Deny","Principal": "*","Action":["s3:*"]  ,"Resource": "arn:aws:s3:::examplebucket/*","Condition" : {"NotIpAddress" : {"aws:SourceIp": "192.168.143.188/32" } } } ]
}

目前存储桶策略就配置完了,策略已经生效,后面在当有向这个存储桶对象发出访问请求时, 存储桶策略将验证访问的ip是否为策略中配置的这个ip,如果是,将会允许对于这个s3存储桶的所有动作,如果不是这个ip,将拒绝访问这个存储桶。

我们测试下实际情况是不是这样的:

同样,复制下test.txt的url,进入到console,curl一下看返回结果,可以看到,可以成功返回文件内容,因为存储桶策略中目前配置的ip就是我现在的上网ip,所以我现在是可以访问test.txt的。

那接下来,我们将存储桶策略中的ip地址随便修改下,将它修改为和我现在的上网ip地址不同即可,然后,理论上当我在访问这个存储桶文件时就会由刚刚的允许访问变成禁止访问,这样才能说明刚加的限制ip访问的存储桶策略是生效的,那我们现在就测试下吧:

进入到我们创建的存储桶,然后选择存储桶策略,将里面的ip随便改一个,然后保存。

然后我们进入到console,再次执行下curl这个txt文件的url,发现已经是禁止访问了。说明我们的存储桶策略已经生效了,只有策略中指定的ip才可以访问存储桶中的对象。

好的,以上我们演示了一个存储桶策略的简单用例,希望能够通过这个简单的演示,能够让大家对于存储桶策略有个初步的认识,实际上,还有很多不同的存储桶策略,用来帮助我们达成的需求,我们之后的课程将进行讨论。

我们今天的课程就到这里,感谢大家的观看,我们下一课程再见。

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:

关注公众号:AWS爱好者(iloveaws)
文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
网站:www.iloveaws.cn

S3存储桶策略(S3 Bucket Policies)相关推荐

  1. aws s3 静态网站_使用AWS S3存储桶启动静态网站

    aws s3 静态网站 This article explores the AWS S3 bucket to configure a static website. 本文探讨了用于配置静态网站的AWS ...

  2. aws rds监控慢sql_将AWS S3存储桶与AWS RDS SQL Server集成

    aws rds监控慢sql This article gives you an overview of integrating AWS S3 buckets with AWS RDS SQL Serv ...

  3. 配置跨账户S3存储桶的访问

    目录 1. S3存储桶概述 2. 案例实践 2.1 资源准备 2.2 配置S3存储桶策略 2.3 配置AWS cli 2.4 测试 1. S3存储桶概述 将S3存储桶的访问权限授予属于不同aws帐户的 ...

  4. php aws s3查看所有文件_国内AWS没有文件系统服务,快来看如何通过EC2挂载S3存储桶替代...

    作者:光环云 尹晓征 当有需求必须使用共享磁盘服务时,但目前AWS的EFS因为在国内落地的情况,只能通过自建诸如NFS或者GFS等服务来完成,整个过程比较繁杂. S3是互联网的一种存储解决方案,并且借 ...

  5. bash脚本 文件_如何使用Bash脚本来管理从AWS S3存储桶下载和查看文件

    bash脚本 文件 As you can read in this article, I recently had some trouble with my email server and deci ...

  6. aws s3 cli_了解AWS CLI –使用AWS CLI与AWS S3存储桶进行交互

    aws s3 cli It is the second article in the Learn AWS CLI series. It gives you an overview of working ...

  7. AWS Ec2实例挂载S3存储桶实践

    AWS Ec2实例挂载S3存储桶实践 1.编译安装s3fs-fuse: 编译安装: sudo yum install -y automake fuse fuse-devel gcc-g++ git l ...

  8. 【从AWS亚马逊平台上的s3存储桶上下载文件到win10电脑上】

    从AWS亚马逊平台上的s3存储桶上下载文件到win10电脑上 1.在win10电脑上下载AWS CLI. 2.在cmd命令行输入 aws configure 出现四个要填写的信息. 3.配置好本机和a ...

  9. python上传大文件s3_使用Python boto3上传Windows EC2实例中的文件至S3存储桶中

    一.创建终端节点 为什么要创建终端节点,把VPC和S3管理起来呢?如果不将VPC和S3通过终端节点管理起来,那么VPC中EC2实例访问S3存储桶是通过公共网络的:一旦关联起来,那么VPC中EC2实例访 ...

最新文章

  1. fibonacci 数列及其应用
  2. NtQueryInformationProcess用法
  3. 使用iCarousel的旋转木马效果请求图片
  4. oracle导出pdm文件命令,利用PowerDesigner逆向工程导出PDM模型及生成文档
  5. 【渝粤题库】陕西师范大学800007 地理信息系统
  6. 求10以内平均数的c语言,求助 给小学生出题,自己选加减乘除 做10题 10以内的数 然后统计分...
  7. 利用***检测系统防范******方法介绍
  8. 美将遣返庇护申请者至墨西哥 弱势人士有望豁免
  9. C++中的std::lock_guard和std::unique_lock
  10. hutool BigExcelWriter 下的autoSizeColumnAll异常问题
  11. asp网上书店的代码_使用Helm将ASP.NET Core应用程序部署到Kubernetes容器集群
  12. ThreadLocal的作用
  13. JSP购物车案例精简版-适合小白学习
  14. 1526B - I Hate 1111
  15. matlab混沌指数的计算,Matlab编程之混沌系统李雅普诺夫指数分析
  16. 计算机科学导论第五版第二章答案,(计算机科学导论第2章答案.docx
  17. 记一次nginx配置服务器代理发送请求(外网请求内网ip)
  18. Windows下如何打开CSV文件
  19. mysql+一直running_mysql 事务一直running问题排查
  20. 酵素果冻真的能减肥吗?

热门文章

  1. Ubuntu Linux开机黑屏的永久解决办法
  2. vue -- 移动端(vant)更换头像剪切功能
  3. 在学习ros时,使用roslaunch命令时出现下列报错 load_parameters: unable to set parameters (last param was [/move_base/
  4. 中心频率、带内波动、带外抑制、矩形系数,dB是什么意思?
  5. iOS 驾驭 StoryBoard
  6. 甘草干姜汤治疗肺虚寒
  7. 实话实说 —— 心理模型vs实现模型
  8. 铁路管理系统(C语言)
  9. 【店小蜜】基础介绍-全自动模式
  10. pjmedia系列之媒体设备pjmedia_snd_port