AWS-SAA学习笔记-03【S3】

存储与数据库-storage and database**

S3

在这里插入图片描述

Simple Storage Service

  • S3是AWS提供的对象存储服务,适用于存储和检索任意类型的数据,如文件、图像、视频等。
  • S3是高度可扩展、耐用、安全的存储解决方案。

S3 存储桶(Bucket):

  • 存储桶的名称在整个AWS中必须是全局唯一的。
  • Amazon S3 允许用户将object(文件)存储在“bucket”(目录)中。
  • 存储桶必须有一个全局唯一的名称
  • Buckets are defined at the region level存储桶在区域级别上定义。
  • 不使用大写字母
  • 不使用下划线
  • 长度为3-63个字符
  • 不是IP地址
  • 必须以小写字母或数字开头。

S3 对象(Object):

可以是任意类型的数据,例如文本文件、图像、视频、数据库备份等。

在S3中,对象由以下三个主要组成部分构成:

  1. 键(Key)
    • 键是对象的唯一标识符,用于在S3存储桶中唯一标识对象。
    • Key并不是完整路径,而是相对于存储桶的路径或文件名。
  2. 值(Value)
    • 对象值是主体内容
    • 值是实际的数据内容,也就是存储在对象中的实际数据。
    • 值可以是任何字节流,允许存储各种类型的文件和数据。
  3. 元数据(Metadata)
    • 元数据是关于对象的一组键值对信息,用于描述对象的属性和其他相关信息。
    • 元数据可以包含诸如对象的创建日期、文件类型、大小、所有者等信息。

storage class 存储类别

S3 Standard(default)标准存储适用于频繁访问的数据大数据分析,移动应用,游戏
S3 Intelligent-Tiering智能分层—数据根据访问模式分层存储自动优化存储费用和性能;不确定访问频率的数据, 成本敏感型应用
S3 Standard-IAinfrequent access**访问频率较低,但即时访问的数据。**灾难恢复,备份
S3 One Zone-IAS3-One zone not suitable for business critical data不适合关键性数据可重新创建的、不经常访问的数据(每月一次),存储在单个可用区中,访问时间为毫秒……………与 S3 Standard-IA相比具有更低的存储成本
Glacier Instant RetrievalGlacier 即时检索,数据不可更新适用于需要即时访问的归档数据;
Glacier Flexible RetrievalGlacier 灵活检索,数据不可更新适用于很少访问且不需要即时访问的长期数据;
S3 Glacier Deep ArchiveGlacier 深度存档,long-term:适用于以最低的云存储成本进行长期归档和数字保存。

Amazon S3 还提供了在整个数据生命周期内管理数据的功能。设置 S3 生命周期策略之后,无需更改您的应用程序,您的数据将自动传输到其他存储类。

  1. 任何存储类别到S3 Standard。
  2. 任何存储类别到冗余存储(RRS)类别。
  3. S3 Intelligent-Tiering存储类别到S3 Standard-IA。
    S3 One Zone-IA存储类别到S3 Intelligent-Tiering,S3 Standard-IA或S3 Glacier即时检索存储类别。

moving between storage classes

moving objects can be automated using a lifecycle configuration

在这里插入图片描述

Storage Class Analysis

  • 您可以设置S3分析以帮助确定何时将对象从标准转换为Standard_IA。
  • 不适用于ONEZONE_IA或GLACIER。
  • 报告每天更新。
  • 首次启动需要约24小时至48小时。
  • 组合生命周期规则(或改进生命周期规则)的好第一步!

数据管理

:对象版本控制、生命周期配置、跨区域复制、数据传输加速等功能。

S3 Versioning版本控制

启用版本控制后,S3将为每个存储在存储桶中的对象创建不同的版本,而不是覆盖之前的版本。

  • 可在bucket级别启用
  • 可恢复特定版本以及轻松回滚
  • 默认版本 ID 为“null”
  • suspending versionsing does not delete the previous versions

S3 Lifecycle Rules生命周期

  • Transition actions::它定义了对象何时转换为另一个存储类别。
    • 创建后60天将对象移动到标准IA类别。
    • 6个月后将对象移动到Glacier进行归档。
  • Expiration actions配置对象在一定时间后过期(删除)
    • 访问日志文件可以设置为在365天后删除。
    • 可用于删除旧文件版本(如果启用了版本控制)
    • 用于删除未完成的多部分上传。
  • 可以为某个前缀prefix创建规则(例如 - s3://mybucket/mp3/*)
  • 可以为某些objects tags创建规则(例如 - Department: Finance)

对象锁定-保护对象免受删除和更改

  1. 合规模式(Compliance Mode)
    • 合规模式是 Amazon S3 中的一种对象锁定模式,用于确保对象在指定的锁定期间内不被删除或更改。
    • 在合规模式下,对象一旦被锁定,即使具有管理权限的用户(包括 root 用户)也无法删除或更改对象,直到锁定期结束。
    • 合规模式适用于需要满足法规和合规性要求,确保数据不被篡改或删除的场景。
  2. 治理模式(Governance Mode)
    • 治理模式也是 Amazon S3 中的一种对象锁定模式,用于在指定的锁定期间内保护对象免受删除和更改。
    • 在治理模式下,具有管理权限的用户(如 root 用户)可以申请对对象进行更改或删除,但需要提前指定锁定结束的日期和时间。
    • 治理模式适用于需要保护数据免受误删除或更改的场景,但允许有一定管理权限的用户提前申请解锁。

S3 Replication (CRR & SRR)复制

  • Must enable versioning in source and destination

  • 跨区域复制Cross Region Replication (CRR)

  • 同一区域复制Same Region Replication (SRR)

  • 复制是asynchronous异步的

  • 存储桶可以位于不同的账户中

  • 必须为S3授予适当的IAM权限

  • CRR - 使用场景:合规性,更低的延迟访问,跨账户复制

  • SRR - 使用场景:log aggregation日志聚合,live replication between production and test accounts生产和测试账户之间的实时复制

    注意事项

  • 激活后,只有新对象会被复制(不会追溯复制旧对象)

  • 对于删除操作:

    • 可以从源复制到目标删除maker(可选设置)
    • 具有版本 ID 的删除不会被复制(以避免恶意删除)
  • 复制不传递

    • 如果 bucket 1 复制到 bucket 2,bucket 2 复制到 bucket 3, 那么在 bucket 1 中创建的对象不会被复制到 bucket 3

S3 Transfer Acceleration 数据传输加速

  • 通过将文件传输到AWS边缘位置,增加传输速度,该位置将数据转发到目标区域的S3存储桶
  • 兼容多部分上传Compatible with multi-part upload

S3 – Baseline Performance基准性能

  • Amazon S3可以自动扩展到高请求率,延迟为100-200毫秒。
  • 您的应用程序每个存储桶前缀每秒可以实现至少3,500个PUT/COPY/POST/DELETE和5,500个GET/HEAD请求。

S3 Performance

  • Multi-Part upload:

    • 推荐用于大于100MB的文件,对于大于5GB的文件必须使用

    • 可以并行上传(加快传输速度)

      在这里插入图片描述

  • S3 Transfer Acceleration

    • 通过将文件传输到AWS边缘位置,增加传输速度,该位置将数据转发到目标区域的S3存储桶
    • 兼容多部分上传Compatible with multi-part upload

S3 Select & Glacier Select

  • 使用简单的SQL进行服务器端过滤,以检索较少的数据
  • 可以按行和列进行过滤
  • 较少的网络传输和客户端的CPU成本
  • Use Case:
    • 适用于需要从大型对象中仅提取特定数据的情况,例如从CSV或JSON文件中提取特定字段的值,而不需要下载整个对象。
    • Glacier Select则用于从S3 Glacier存储中检索特定数据,这样可以避免将整个归档文件恢复到S3中,从而节省时间和费用。

S3 Batch Operations批量操作

  • 通过单个请求对现有S3对象执行批量操作
    • 一个作业包括一个对象列表,要执行的操作和可选参数
    • S3批量操作管理重试,跟踪进度,发送完成通知并生成报告
    • 步骤:
      • 使用S3清单获取对象列表
      • 使用S3 Select过滤对象
      • 使用S3批量操作处理对象

S3 Byte-range Fetches字节范围获取

  • 通过请求特定的字节范围并行化GET操作
  • 使用场景:加快下载速度或只需要部分数据(例如文件头)
  • Use Case: S3 Byte-range Fetches适用于需要仅获取对象的一部分内容的情况,例如音频或视频文件的部分播放、分块下载大文件或断点续传等。通过指定字节范围,客户端可以仅下载所需的部分数据,而不需要下载整个对象,从而提高效率和性能。

安全性security

Encryption for Objects-加密(服务器端加密、客户端加密)

  • 服务器端加密(Server-Side Encryption,SSE):

    S3 管理加密密钥(SSE-S3 或 SSE-KMS)

    SSE-S3

    • Object is encrypted server side
    • AES-256 encryption type
    • Must set header: “x-amz-server-side-encryption”: “AES256”

    SSE-KMS

    加密密钥由 AWS Key Management Service (KMS) 管理。

    • KMS Advantages: user control + audit trail
    • Object is encrypted server side
    • Must set header: “x-amz-server-side-encryption”: “aws:kms”
  • 客户管理加密密钥(SSE-C):

    • SSE-C(Server-Side Encryption with Customer-Provided Keys)
    • Amazon S3 不会存储您提供的加密密钥
    • HTTPS must be used
    • Encryption key must provided in HTTP headers, for every HTTP request made
    • 允许客户使用自己管理的加密密钥对数据进行加密。客户在上传对象时必须提供加密密钥,并在后续下载时提供正确的密钥来解密数据。
  • 客户端加密Client Side Encryption:

    • 客户端必须在发送到S3之前自行加密数据
    • 客户端必须在从S3检索数据时自行解密数据
    • 客户完全管理密钥和加密周期
  • encryption in transit(SSL/TSL):

    • 使用 SSL/TLS 加密协议保护数据在传输过程中的安全性。
    • 数据在从客户端上传到 S3 或从 S3 下载到客户端的过程中会被加密,防止中间人攻击或窃听。

访问控制(IAM、桶策略、ACLs)

  • Bucket Policy-S3存储桶策略

    基于JSON的策略

    • 资源:buckets and objects
    • 效果:Allow / Deny
    • 操作:允许或拒绝的API集合
    • 主体:要应用策略的帐户或用户
    • 应用场景
      • 授予公共访问桶
      • 强制上传的对象进行加密
      • 授予另一个帐户访问权限(跨帐户访问必须使用存储桶策略)
  • 使用IAM策略进行访问控制

    • 基于用户
      • IAM策略,控制特定用户从IAM可以允许哪些API调用
  • 使用预签名URL(Pre-Signed URL)授予临时访问权限

    • Can generate pre-signed URLs using SDK or CLI
      • For downloads (easy, can use the CLI)
      • For uploads (harder, must use the SDK)
    • Valid for a default of 3600 seconds, can change timeout with --expires-in [TIME_BY_SECONDS] argument
    • Users given a pre-signed URL inherit the permissions of the person who generated the URL for GET / PUT
    • 可以使用SDK或CLI生成预签名URL
      • 对于下载(容易,可以使用CLI)
      • 对于上传(更难,必须使用SDK)
    • 默认有效期为3600秒,可以使用–expires-in [TIME_BY_SECONDS]参数更改超时时间
    • 获得预签名URL的用户继承生成URL的人的GET / PUT权限
  • bucket setting for block public access

    在AWS S3(Simple Storage Service)中,“Block Public Access”(阻止公共访问)是一组设置,用于确保您的S3存储桶及其内容不会被未经授权的公众访问。这些设置旨在增加您数据的安全性,防止因配置错误或意外而导致敏感信息泄露。

    Block Public Access有以下四个设置选项:

    1. Block all public access:
    2. Block public access to buckets and objects granted through new access control lists (ACLs):
    3. Block public access to buckets and objects granted through any public bucket or access point policies:
    4. Block public access to buckets and objects granted through new public bucket or access point policies:

S3 MFA-Delete

  • MFA(多因素认证)会强制用户在进行S3上的重要操作之前,在设备上(通常是手机或硬件)生成一个代码。
  • 要使用MFA-Delete,请在S3存储桶上启用Versioning。
  • 您需要MFA来
    • permanently delete an object version
    • suspend versioning on the bucket
    • 永久删除对象版本
    • 暂停存储桶的版本控制
  • 您不需要MFA来
    • 启用版本控制
    • 列出已删除的版本
  • 只有桶所有者(root account)可以启用/禁用MFA-Delete
  • MFA-Delete目前只能使用CLI启用
  • 注意:默认加密之前会评估Bucket策略
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值