[AWS] 01 - S3 Bucket
云存储服务
2.1 S3存储桶权限设置
-
属性和权限设置
对存储桶的 针对 不同角色的权限设置界面。
-
存储桶策略生成
[几个指标的位置]
(1) json格式,通过权限生成器为该ARN生成策略。
(2) Principal 对哪个user进行权限控制,比如对AdministratorAccess。
Principal就是上述的 "用户ARN"。
Amazon Resouces name (ARM) 就显示在策略生成器的界面上。
(3) Actions的权限options解释。
三道关卡:(i) Bucket ACL;(ii) S3 Object ACL;(iii) S3 Bucket Policy。
Amazon S3 Access Control Lists (ACLs) enable you to manage access to buckets and objects. Each bucket and object has an ACL attached to it as a subresource.
策略最小权限原则:
a. 如果某条规则显式拒绝,最终结果就是拒绝;
b. 如果所有规则测试完了,有规则显示允许,则最终结果是允许;
c. 没有规则显示允许或拒绝,那么最终结果是拒绝。
[AWS Policy Generator]
[Paste]
设置bucket权限,Permissions ----> Bucket Policy ----> 策略生成器(左下角)
ARN should follow the following format: arn:aws:s3:::<bucket_name>/<key_name>.
Use a comma to separate multiple values.
然后,自动生成了Policy JSON Document. 然后粘贴在策略编辑器中。
2.2 S3存储性能调优
场景1没必要;场景3人工服务;场景2有必要。
-
问题
同一时间创建很多文件,导致名字比较相似,无法通过若干首字母迅速get到目标文件。
-
策略
方法一:分散键值,使用哈希值作为前缀。
方法二:翻转Key名称字符串
2.3 S3 防盗链设计
策略:识别来源
(1) HTTP Referer 识别来访路径
(2) S3 Bucket policy 判断 HTTP Referer
S3静态网页实战
一、创建存储桶
-
属性设置
-
设置权限
二、上传文件
上传index.html文件。然后,对 “文件权限” 进行设置。
三、访问策略设置
-
对象
-
属性
进入属性,设置“静态网站托管”。
-
权限
Principal: * 所有人都可以前来访问。
ARN: startup-demo桶下的所有文件都可以开放访问权限。
四、CloudFront Distributions
-
创建分发
进一步选择:Web分发。
Origin Domain Name:bucket的位置
自动生成Origin ID。
Restrict Bucket Access: Yes. 用户不一定要直接取自S3,只允许couldfront直接从bucket中读取。
利用CLI来访问S3
一、配置
提前先配置好:AK SK.
二、基本命令
-
bash: aws s3
创建一个桶:aws s3 mb s3://s3-demo
查看这个桶:aws ls s3://s3-demo
本地创建三个文件并上传
mkdir temp cd temp touch aaa.txt bbb.txt ccc.txt aws s3 cp ./aaa.txt s3://s3-demo
自动同步文件夹:aws s3 sync ./ s3://s3-demo
下载桶里的文件:aws s3 cp s3://s3-demo/aaa.txt ./
-
Python Boto3
或者考虑使用 Python Boto3。
垂直扩展&水平扩展的比较
Ref:Amazon EC2 实例类型
一、垂直扩展
二、水平扩展
按需增加或者减少资源。(推荐)
Amazon CloudWatch
一、大纲
Metrics 指标们。
二、监控和警报
-
监控
托管服务,高稳定性。
EC2实例的“监控标签” (下图右上角)。
其他三大功能:指标、日志、事件。
-
警报
EC2平台下,创建警报按钮(右上角)。当然,也可以在“警报页面”下,开始创建。
点击如下链接,转到cloudwatch界面。
在couldwatch界面下,看到新增加的“警报”。
-
事件
创建规则 --> 计划
[步骤一]
例如,每天发一封邮件。
服务名称:EC2
事件类型:EBS Snapshot Notification
[步骤二]
配置规则。
End.