一、基础概念
- 存储桶(Bucket)
- 全局唯一名称(小写字母/数字开头,3-63字符,非IP格式)
-
区域级定义,存储策略和权限的容器
-
对象(Object)
- 键(Key):对象唯一标识(相对路径)
- 值(Value):实际数据(任意类型)
- 元数据(Metadata):描述性键值对(如创建时间、类型)
- 版本ID:启用版本控制后唯一标识(默认
null)
二、存储类别(Storage Classes)
| 类别 | 适用场景 | 访问延迟 | 成本 |
|---|---|---|---|
| S3 Standard | 频繁访问数据(大数据、实时应用) | 毫秒级 | 最高 |
| S3 Intelligent | 访问模式不确定的数据 | 自动分层优化 | 动态调整 |
| S3 Standard-IA | 不频繁访问但需即时检索的数据(灾备) | 毫秒级 | 中 |
| S3 One Zone-IA | 可重建的非关键数据(单AZ存储) | 毫秒级 | 低于Standard-IA |
| Glacier Instant | 需即时访问的归档数据 | 毫秒级 | 低 |
| Glacier Flexible | 很少访问的长期数据(免费批量检索) | 分钟级 | 很低 |
| Glacier Deep Archive | 最低成本的长期归档(数字保存) | 12小时 | 最低 |
🚫 转换限制:
- 不可转至S3 Standard
- Intelligent-Tiering不可转至Standard-IA
- One Zone-IA不可转至Glacier/Intelligent-Tiering
三、数据管理
- 版本控制(Versioning)
- 防覆盖:每个对象保留多个版本
- 恢复:可回滚至任意历史版本
-
暂停后仍保留旧版本
-
生命周期策略(Lifecycle Rules)
- 转换动作:自动迁移存储类别(如60天后转Standard-IA)
- 过期动作:自动删除旧数据(如365天后删除日志)
-
支持前缀(
s3://bucket/docs/*)和标签过滤 -
对象锁定(Object Lock)
- 合规模式:强制保留期内禁止删除/修改(连root也无法操作)
-
治理模式:管理员可申请提前解锁
-
跨区域复制(Replication)
- 要求:源/目标桶均启用版本控制+IAM权限
- CRR:跨区域合规/低延迟访问
- SRR:同区域日志聚合/生产测试同步
- 注意:仅复制新对象;删除标记可选复制;非传递性(A→B→C ≠ A→C)
四、性能优化
- 传输加速(Transfer Acceleration)
- 通过Edge Location加速全球上传
-
兼容分块上传(Multipart Upload)
-
高性能实践
- 基准:3500次写/5500次读(每秒每前缀)
- 分块上传:>100MB文件必用,>5GB强制使用
- S3 Select:SQL过滤对象内容(减少网络传输)
-
字节范围获取:并行下载部分文件(断点续传/媒体播放)
-
批量操作(Batch Operations)
- 基于清单(Inventory)+S3 Select过滤
- 自动重试+进度跟踪+报告生成
五、安全机制
- 加密
- 传输中:TLS/SSL加密
-
静态加密:
- SSE-S3:AES-256(S3托管密钥)
- SSE-KMS:AWS KMS管理密钥(审计支持)
- SSE-C:用户自管密钥(每次请求携带)
- 客户端加密:数据在本地加密后上传
-
访问控制
- IAM策略:用户级API权限控制
- 桶策略(Bucket Policy):JSON格式(如强制加密、跨账号访问)
- ACL:旧式对象级权限(已不推荐)
-
预签名URL:临时访问凭证(CLI生成下载/SDK生成上传)
-
高级防护
- Block Public Access:一键禁止公开访问
- MFA-Delete:强制MFA验证删除/停用版本控制(仅CLI配置)
- CORS:配置跨域资源共享规则(如允许特定域名访问资源)
六、监控与集成
- 事件通知(Event Notification)
- 触发源:对象创建/删除/还原
- 目标:SQS/SNS/Lambda/EventBridge
-
EventBridge:支持高级过滤(JSON规则)+多目标路由
-
Glacier专用功能
- Select:直接检索归档中的特定数据
- 不可变性:存档后不可修改
关键注意事项
- 存储桶命名勿用大写或下划线
- 复制不传递(A→B→C ≠ A→C)
- 分析报告(Storage Class Analysis)需24-48小时初始化
- 深度归档(Deep Archive)检索需12小时