AWS 11 Amazon S3 Introduction
作者:互联网
章节简介
•Amazon S3是AWS的主要构建模块之一
•它被宣传为“无限扩展”存储
•它广受欢迎,值得拥有自己的版块
•许多网站使用Amazon S3作为主干
•许多AWS服务也使用Amazon S3作为集成
•我们将采用循序渐进的方法来实现S3
Amazon S3概述-桶
•Amazon S3允许人们在“存储桶”(目录)中存储对象(文件)
•存储桶必须具有全局唯一的名称
•桶是在区域级别定义的
•命名约定
•没有大写字母
•无下划线
•3-63个字符长
•不是IP
•必须以小写字母或数字开头
Amazon S3概述-对象
•对象(文件)有一个密钥
•密钥是完整的路径:
•s3://my bucket/my_file.txt
•s3://my bucket/my_folder1/other_folder/my_file。txt
•密钥由前缀+对象名组成
•s3://my bucket/my_folder1/other_folder/my_file。txt
•bucket中没有“目录”的概念
(尽管用户界面会让你产生相反的想法)
•只有包含很长名称和斜杠(“/”)的名称的键
•对象值是主体的内容:
•最大对象大小为5TB(5000GB)
•如果上传超过5GB,必须使用“多部分上传”
•元数据(文本键/值对列表——系统或用户元数据)
•标签(Unicode密钥/值对-最多10个)-对安全性/生命周期有用
•版本ID(如果启用了版本控制)
-----------------------------------------------------------------------
Amazon S3-版本控制
•您可以在Amazon S3中对文件进行版本设置
•在bucket level面启用
•相同的键覆盖将增加“版本”:1、2、3…。
•最好的做法是对存储桶进行版本设置
•防止意外删除(能够恢复版本)
•轻松回滚到以前的版本
•注意:
•在启用版本控制之前未进行版本控制的任何文件的版本均为“null”
•暂停版本控制不会删除以前的版本
-----------------------------------------------------------------------
S3对象加密
•S3中有4种加密对象的方法
•SSE-S3:使用AWS处理和管理的密钥加密S3对象
•SSE-KMS:利用AWS密钥管理服务管理加密密钥
•SSE-C:当您想要管理自己的加密密钥时
•客户端加密
•重要的是要了解哪些人适合哪种情况为了考试
SSE-S3
•SSE-S3:使用Amazon S3处理和管理的密钥进行加密(http/https)
•对象在服务器端加密
•AES-256加密类型
•必须设置标题:“x-amz-server-side-encryption": "AES256
SSE-KMS
•SSE-KMS:使用KMS处理和管理的密钥进行加密
•KMS优势:用户控制+审计跟踪
•对象在服务器端加密
•必须设置标题:“x-amz-server-side-encryption": ”aws:kms"
SSE-C
•SSE-C:服务器端加密,使用完全由AWS以外的客户管理的数据密钥
•Amazon S3不存储您提供的加密密钥
•必须使用HTTPS
•对于每个HTTP请求,必须在HTTP头中提供加密密钥
客户端加密 CSE
•客户端库,如Amazon S3加密客户端
•客户端在发送到S3之前必须自己加密数据
•从S3检索数据时,客户端必须自行解密数据
•客户全面管理密钥和加密周期
传输中的加密(SSL/TLS)
•亚马逊S3曝光:
•HTTP端点:非加密
•HTTPS端点:飞行中的加密
•您可以自由使用所需的端点,但建议使用HTTPS
•大多数客户端默认使用HTTPS端点
•SSE-C必须使用HTTPS
•飞行中的加密也称为SSL/TLS
-----------------------------------------------------------------------
S3安全
•基于用户
•IAM策略-IAM中的特定用户应允许哪些API调用安慰
•基于资源
•Bucket策略——S3控制台的Bucket范围规则——允许跨账户
•Object Access Control List (ACL)——粒度更细
•Bucke Access Control List (ACL)——不太常见
•注意:IAM主体可以在以下情况下访问S3对象:
•用户IAM权限允许或资源策略允许
•没有明确的否认
S3桶策略
•基于JSON的策略
•资源:桶和对象
•操作:设置允许或拒绝的API
•效果:允许/拒绝
•委托人:申请的账户或用户政策
•使用S3 bucket for policy来:
•允许公众访问存储桶
•强制上传时对对象进行加密
•允许访问另一个帐户(跨帐户)
阻止公共访问的Bucket设置
•阻止公众访问通过and objects granted through
•新的访问控制列表(ACL)
•任何访问控制列表(ACL)
•新的公共存储桶或接入点策略
•阻止公众和跨帐户访问存储桶和对象
通过任何公共存储桶或访问点策略
•创建这些设置是为了防止公司数据泄露
•如果你知道你的水桶永远不应该公开,请打开这些
•可在账户级别设置
S3安全-其他
•网络:
•支持VPC端点(适用于没有www互联网的VPC中的实例)
•记录和审计:
•S3访问日志可以存储在其他S3存储桶中
•API调用可以记录在AWS CloudTrail中
•用户安全:
•MFA删除:在版本控制中可能需要MFA(多因素身份验证)删除对象的bucket
•预签名URL:仅在有限时间内有效的URL(例如:高级视频已登录用户的服务)
-----------------------------------------------------------------------
S3网站
•S3可以托管静态网站,并可在www上访问
•网站URL将是:
•<bucket-name>.s3-website-<AWS-region>.amazonaws.com
或
•<bucket-name>.s3-website.<AWS-region>.amazonaws.com
•如果出现403(禁止)错误,请确保bucket策略允许公开阅读!
-----------------------------------------------------------------------
CORS - Explained
•Origin是方案(协议)、主机(域)和端口
•例如:https://www.example.com(HTTPS的隐含端口为443,HTTP的隐含端口为80)
•CORS意味着跨来源资源共享
•基于Web浏览器的机制,允许在参观主要产地
•同一来源:http://example.com/app1 & http://example.com/app2
•不同的起源:http://www.example.com & http://other.example.com
•除非其他来源允许,否则无法满足请求使用CORS Headers
(ex: Access-Control-Allow-Origin)
S3 CORS
•如果客户在我们的S3存储桶上执行跨源请求,我们需要启用正确的CORS标头
•这是一道很受欢迎的考试题
•您可以考虑特定来源或*(所有来源)
-----------------------------------------------------------------------
Amazon S3-一致性模型
•截至2020年12月的强一致性:
•一段时间后:
•成功写入新对象(新PUT)
•或覆盖或删除现有对象(覆盖放置或删除)
•…任何:
•后续读取请求会立即收到对象的最新版本
(读写一致性)
•后续列表请求会立即反映更改
(列表一致性)
•无需额外成本,且不会对性能造成任何影响
-----------------------------------------------------------------------
标签:11,加密,S3,对象,Amazon,密钥,SSE 来源: https://www.cnblogs.com/ives-xu/p/16133451.html