Amazon S3 提供了多种功能,可供您以各种方式组织和管理数据,从而支持特定使用案例、实现成本效率、实施安全性并满足合规要求。数据以对象的形式存储在名为“存储桶”的资源中,单个对象大小的上限为 5 TB。S3 的特性中还包括诸多功能,包括将元数据标签附加到对象,跨 S3 存储类移动和存储数据,配置并实施数据访问控制,防止未经授权的用户访问数据,运行大数据分析,在对象级别和存储桶级别监控数据,以及查看整个组织的存储使用情况和活动趋势。您可以通过 S3 访问点或直接通过存储桶主机名访问对象。
存储管理和监控
Amazon S3 具备平面的未分层结构并有多种管理功能,帮助各种规模和行业的客户按照能够为其业务和团队带来最大价值的方式组织数据。所有对象存储在 S3 存储桶中,可以按称为“前缀”的共享名称来组织。对于每个对象,您可以附加最多 10 个称为 S3 对象标签的键值对,这些键值对在对象的整个生命周期中可以创建、更新和删除。要跟踪对象及其对应的标签和前缀,您可以使用 S3 清单报告,其中列出了 S3 存储桶中的已存储对象或具有特定前缀的已存储对象,及其相应的元数据和加密状态。S3 清单可以配置为每天或每周生成报告。
存储管理
借助 S3 存储桶名称、前缀、对象标签和 S3 清单,您可以通过广泛的方式来分类和报告您的数据,然后配置其他 S3 功能以采取操作。 无论是存储成千上万还是数十亿个对象,S3 批量操作都可让您轻松管理 Amazon S3 中任意规模的数据。使用 S3 批量操作,只需一个 S3 API 请求或者在 S3 控制台中操作几步,您就可在存储桶之间复制对象,替换对象标签集,修改访问控制,以及从 S3 Glacier Flexible Retrieval 以及 S3 Glacier Deep Archive 存储类中恢复归档的对象。您还可以使用 S3 批量操作跨对象运行 AWS Lambda 函数,用于运行自定义的业务逻辑,例如处理数据或者转码图像文件。要开始使用 S3 批量操作,请使用 S3 清单报告或者提供自定义列表来指定目标对象列表,然后从预填充的菜单中选择所需操作。S3 分批操作请求完成后,您会收到通知以及有关全部更改的完成报告。通过观看视频教程了解更多有关 S3 批量操作的信息。
Amazon S3 还支持帮助维护数据的版本控制、防止意外删除以及复制数据到相同或不同 AWS 区域的功能。借助 S3 版本控制,您可以保存、检索和还原存储到 Amazon S3 中的某个对象的每个版本,这让您可以从意外的用户操作和应用程序故障中进行恢复。要防止意外删除,请在 S3 存储桶上启用多重身份验证(MFA)删除。如果您在启用了 MFA 删除的存储桶中尝试删除某个存储的对象,存储桶会要求提供两种形式的身份验证:您的 AWS 账户凭证以及有效序列号、空格和显示在已批准身份验证设备(例如,硬件密钥卡或 Universal 2nd Factor (U2F) 安全密钥)上的六位代码的组合。
利用 S3 复制,您可将对象(及其对应的元数据和对象标签)复制到相同或不同的 AWS 区域的一个或多个目标存储桶,以减少延迟、确保合规性、安全性、灾难恢复和其他使用案例。您可以将 S3 跨区域复制 (CRR) 配置为从源 S3 存储桶复制到不同 AWS 区域中的一个或多个目标存储桶。S3 同区域复制 (SRR) 在同一 AWS 区域内的存储桶之间复制对象。虽然 CRR 和 SRR 等实时复制会在新的已上载对象写入存储桶时自动复制它们,但 S3 批量复制允许您复制现有对象。您可以利用 S3 批量复制来回填新创建的存储桶,重试原先无法复制的对象,在账户之间迁移数据,或者向数据湖添加新的存储桶。Amazon S3 Replication Time Control(S3 RTC)通过提供 SLA 和对复制时间的可见性来帮助您满足数据复制的合规性要求。
若要跨 AWS 区域访问 S3 存储桶中的复制数据集,请使用 Amazon S3 多区域接入点为您的应用程序和客户端创建一个全局端点,以供在任何位置使用。此全局端点允许您使用在单区域中采用的相同简单架构来构建多区域应用程序,并且可以在全球任意区域运行这些应用程序。在访问跨多个 AWS 区域复制的数据集时,Amazon S3 多区域接入点可提高性能多达 60%。基于 AWS Global Accelerator,S3 多区域接入点会考虑网络拥塞和请求应用程序的位置等因素,通过 AWS 网络将您的请求动态路由到数据的最低延迟副本。使用 S3 多区域接入点失效转移控制,您可以跨 AWS 区域在复制的数据集之间进行失效转移,允许您在几分钟内将 S3 数据请求流量转移到其他 AWS 区域。
您还可以通过 S3 对象锁定实施一次写入多次读取(WORM)策略。此 S3 管理功能在客户定义的保留期内阻止删除对象版本,让您能够通过实施保留策略来进一步保护数据或满足合规性要求。您可将工作负载从现有 WORM 系统迁移到 Amazon S3,并在对象级别或存储桶级别配置 S3 对象锁定,防止在预定义的保留到期日期或法律保留日期之前删除对象版本。具有 S3 对象锁定的对象会保留 WORM 保护,即使它们移动到具有 S3 生命周期策略的不同存储类。要跟踪哪些对象具有 S3 对象锁定,您可以参阅包含对象 WORM 状态的 S3 清单报告。S3 对象锁定可以在两种模式之一中配置。部署在监管模式中时,具有特定 IAM 权限的 AWS 账户可以从对象上移除 S3 对象锁定。如果您需要更强的稳定性以遵守法规,可以使用合规模式。在合规模式下,包括根账户在内的任何用户都无法删除保护。
存储监控
在这些管理功能之外,使用 Simple Storage Service (Amazon S3) 功能和其他 AWS 服务来监视和控制您的 S3 资源。应用标签到 S3 存储桶,以便将成本分配到多个业务维度(例如成本中心、应用程序名称或拥有者),然后使用 AWS 成本分配报告来查看按存储桶标签聚合的使用情况和成本。您还可以使用 Amazon CloudWatch 来跟踪 AWS 资源的运行状况,并配置在估计费用达到用户定义的阈值时发送的账单提醒。使用 AWS CloudTrail 跟踪和报告存储桶级和对象级活动,并配置 S3 事件通知,以触发工作流和提示,或在 S3 资源发生特定更改时调用 AWS Lambda。S3 事件通知在媒体文件上载到 Amazon S3 时自动进行转码,在数据文件可用时进行处理,并与其他数据存储同步对象。 此外,您还可以验证传入和传出 Amazon S3 的数据的完整性,并且使用 GetObjectAttributes S3 API 或 S3 清单报告随时访问校验和信息。您可以从四种受支持的检验和算法(SHA-1、SHA-256、CRC32 或 CRC32C)中进行选择,以便根据您的应用程序需求对您的上传和下载请求进行数据完整性检查。
在这些管理功能之外,您还可以使用 S3 功能和其他 AWS 服务来监视和控制您的 S3 资源的使用方式。您可以应用标签到 S3 存储桶,以便将成本分配到多个业务维度(例如成本中心、应用程序名称或拥有者),然后使用 AWS 成本分配报告来查看按存储桶标签聚合的使用情况和成本。您还可以使用 Amazon CloudWatch 来跟踪 AWS 资源的运行状况,并配置在估计费用达到用户定义的阈值时发送的账单警报。另一项 AWS 监控服务是 AWS CloudTrail,该服务跟踪并报告存储桶级别和对象级别的活动。您可以配置 S3 事件通知来触发工作流、警报,以及在对 S3 资源进行了特定更改时调用 AWS Lambda。S3 事件通知可用于在媒体文件上传到 Amazon S3 时自动进行转码,在数据文件可用时进行处理,或者与其他数据存储同步对象。
存储分析和见解
S3 Storage Lens
S3 Storage Lens 提供了对对象存储使用情况和活动趋势的组织范围可见性,并提出了可行的建议,以提高成本效益并应用数据保护最佳实践。S3 Storage Lens 是首个能够在组织中为数百到数千个账户提供对象存储使用量和活动单一视图的云存储分析解决方案,并通过深入分析以生成账户、存储桶甚至前缀级别的见解。利用超过 14 年帮助客户优化存储的经验,S3 Storage Lens 分析整个组织的指标以提供基于上下文的建议,从而找到降低存储成本的方法,并应用数据保护方面的最佳实践。要了解更多信息,请访问存储分析和洞察页面。
S3 存储类分析
Amazon S3 存储类分析功能将分析存储访问模式,以帮助您决定何时将相应数据传输给正确的存储类。该 Amazon S3 功能可观察数据访问模式,从而帮助您确定何时将访问频率较低的存储转换为成本较低的存储类。您可以使用结果来帮助改善 S3 生命周期策略。您可以配置存储类分析以分析存储桶中的所有对象。或者,您可以配置筛选条件以将对象分组在一起,以便按常用前缀、对象标签或同时按前缀和标签进行分析。要了解更多信息,请访问存储分析和洞察页面。
存储类
借助 Amazon S3,您可以在多种专为特定用例和访问模式而构建的不同 S3 存储类中存储数据:S3 Intelligent-Tiering、S3 Standard、S3 Standard-Infrequent Access (S3 Standard-IA)、S3 One Zone-Infrequent Access (S3 One Zone-IA)、S3 Glacier 即时检索、S3 Glacier 灵活检索、S3 Glacier Deep Archive 和 S3 Outposts。
每个 S3 存储类支持特定的数据访问级别,并具有对应的成本或地理位置。
对于访问模式不断变化、未知或不可预测的数据,例如数据湖、分析或新应用程序,请使用 S3 Intelligent-Tiering,它会自动优化您的存储成本。S3 Intelligent-Tiering 自动在三个低延迟访问层之间移动您的数据,这些访问层针对频繁、不频繁和罕见的访问进行了优化。当对象的子集随着时间的推移被归档时,您可以激活专为异步访问而设计的归档访问层。
对于更可预测的访问模式,您可以将关键任务型生产数据存储在 S3 Standard 中用于经常访问,将不经常访问的数据存储在 S3 Standard-IA 或 S3 One Zone-IA 中以节省成本,并在归档存储类—S3 Glacier 即时检索、S3 Glacier 灵活检索和 S3 Glacier Deep Archive 中以最低的成本归档数据。 您可以使用 S3 存储类分析来监控对象的访问模式,用于发现应该移动到较低成本存储类的数据。然后,您可以使用此信息来配置进行数据传输的 S3 生命周期策略。S3 生命周期策略还可用于在数据的生命周期结束时让这些数据失效。
如果您具有现有 AWS 区域无法满足的数据驻留要求,您可以使用 S3 Outposts 存储类将您的 S3 数据使用 S3 on Outposts 存储在本地。
如需了解更多信息,请访问 S3 存储类、S3 存储类分析和 S3 生命周期管理 »
访问管理与安全性
访问管理
为了保护您在 Amazon S3 中的数据,默认情况下用户只有自己所创建 S3 资源的访问权限。您可以使用以下访问管理功能之一或者功能组合来向其他用户授予访问权限:AWS Identity and Access Management(IAM)(创建用户并管理其相应的访问权限);访问控制列表(ACL)(使单独的对象可供授权用户访问);存储桶策略(配置单个 S3 存储桶中所有对象的访问权限);S3 接入点(通过创建针对每个应用程序或应用程序组具有特定名称和权限的访问点,来简化共享数据集的数据访问管理);以及查询字符串身份验证(通过临时 URL 向其他用户授予限时访问权限)。Amazon S3 还支持审核日志,其中列出对您 S3 资源发出的请求,从而清楚地了解谁访问了哪些数据。
安全性
Amazon S3 提供了灵活的安全功能,用于阻止未经授权的用户访问数据。使用 VPC 端点从您的 Amazon Virtual Private Cloud (Amazon VPC) 以及从本地连接到 S3 资源。 Amazon S3 会加密上传到任何存储桶的所有新数据(截至 2023 年 1 月 5 日)。Amazon S3 支持服务器端加密(提供三个密钥管理选项)和用于数据上传的客户端加密。使用 S3 清单可以检查 S3 对象的加密状态(有关 S3 清单的更多信息,请参阅存储管理)。
S3 阻止公共访问是一组安全控制功能,可确保 S3 存储桶和对象不会受到公共访问。只需在 Amazon S3 管理控制台中单击几次,您即可对 AWS 账户内的所有存储桶或特定 S3 存储桶应用 S3 阻止公有访问设置。将设置应用到某个 AWS 账户之后,与该账户关联的任何现有或新的存储桶及对象将继承阻止公有访问的设置。S3 阻止公有访问设置会覆盖其他 S3 访问权限,使账户管理员能够轻松实施“无公有访问”策略,而不管如何添加对象、如何创建存储桶或者是否存在现有的访问权限。S3 阻止公有访问控制是可审核的,这带来更进一步的控制,并可使用 AWS Trusted Advisor 存储桶权限检查、AWS CloudTrail 日志和 Amazon CloudWatch 警报。 您应该为不希望公开访问的所有账户和存储桶启用阻止公共访问。
S3 对象所有权功能禁用了访问控制列表 (ACL),将所有对象的所有权更改为存储桶拥有者,并简化了对存储在 S3 中的数据的访问管理。 当您配置 S3 对象所有权存储桶拥有者强制设置时,ACL 将不再影响您的存储桶及其中对象的权限。所有访问控制都将使用基于资源的策略、用户策略或这些策略的某种组合来定义。 在禁用 ACL 前,请检查存储桶和对象 ACL。要识别需要 ACL 授权的 Amazon S3 请求,您可以使用 Amazon S3 服务器访问日志或AWS CloudTrail 中的 aclRequired 字段。
借助仅限于虚拟私有云(VPC)的 S3 接入点,您可以在您的私有网络内轻松为 S3 数据设置防火墙。此外,您可以使用 AWS 服务控制策略,要求组织中的任何新 S3 访问点仅支持 VPC 访问。
IAM Access Analyzer for S3 功能可帮助您在为 S3 存储桶和访问点设置、验证和优化策略时简化权限管理。Access Analyzer for S3 可监控您现有的存储桶访问策略,以验证它们是否仅提供对 S3 资源的必要访问权限。Access Analyzer for S3 会评估您的存储桶访问策略,以便您可以快速修复任何具有不必要访问权限的存储桶。在查看显示对存储桶的潜在共享访问权限的结果时,只需单击 S3 控制台,即可阻止对存储桶的公共访问。出于审核目的,您可将 S3 访问分析器的结果下载为 CSV 报告。 此外,S3 控制台可以在您编写 S3 策略时报告 IAM Access Analyzer 中的安全警告、错误和建议。该控制台将会自动运行 100 多项策略检查,以验证您的策略。这些检查可以为您节约时间,指导您解决错误,并帮助您应用安全最佳实践。
IAM 通过提供某用户或角色上次使用 S3 及执行相关操作的时间戳,让您可以更轻松地分析访问与降低权限,以便实施最低权限原则。使用此“上次访问”信息来分析 S3 访问,确定未被使用的权限,并且秘密地将其移除。要了解更多信息,见使用上次访问的数据优化权限。
您可以使用 Amazon Macie 来发现和保护存储在 Amazon S3 中的敏感数据。Macie 可以自动收集完整的 S3 清单,并且持续地评估每个存储桶,以便在有任何可公开访问的存储桶、未加密的存储桶或与贵组织之外的 AWS 账户共享或复制的存储桶时发出提醒。然后,Macie 将机器学习和模式匹配技术应用于您选择的存储桶,以识别敏感数据,并向您发出警报,例如个人身份信息 (PII)。安全性结果生成后,它们将被推送到 Amazon CloudWatch Events 之外,这使您可以轻松与现有工作流程系统集成,并使用 AWS Step Functions 等服务触发自动修复,以执行操作,例如关闭公有存储桶或添加资源标签。
AWS PrivateLink for S3 在 Amazon S3 与本地之间提供私有连接。您可以在 VPC 中为 S3 预置接口 VPC 终端节点,以通过 AWS Direct Connect 或 AWS VPN 将本地应用程序直接与 S3 连接。为 S3 发送到接口 VPC 终端节点的请求会通过 Amazon 网络自动路由到 S3。您可以设置安全组并为接口 VPC 终端节点配置 VPC 终端节点策略,以进行其他访问控制。
如需了解更多信息,请访问 S3 访问管理与安全性和在 Amazon S3 中保护数据 »
数据处理
S3 Object Lambda
借助 S3 Object Lambda,您可以将自己的代码添加到 S3 GET、HEAD 和 LIST 请求中,以便在数据返回到应用程序时修改和处理数据。您可以使用自定义代码来修改标准 S3 GET 请求返回的数据,以便实施筛选行、动态调整图像大小、隐去机密数据等操作。您还可以使用 S3 Object Lambda 来修改 S3 LIST 请求的输出,以创建存储桶中对象的自定义视图,并使用 S3 HEAD 请求修改对象元数据(如对象名称和大小)。在 AWS Lambda 函数的支持下,无需对应用程序进行任何更改,您的代码即可在 AWS 完全托管的基础设施上运行,不需要创建和存储数据的衍生副本,也不需要运行昂贵的代理。
S3 Object Lambda 使用 AWS Lambda 函数自动处理标准 S3 GET、HEAD 或 LIST 请求的输出。AWS Lambda 是一种无服务器计算服务,无需管理底层计算资源,即可运行客户定义的代码。只需在 AWS 管理控制台中单击几下,即可配置 Lambda 函数并将其附加到 S3 Object Lambda 访问点。此后,S3 将自动调用 Lambda 函数来处理通过 S3 Object Lambda 访问点检索到的任何数据,并将转换后的结果返回应用程序。您可以编写和执行自己的自定义 Lambda 函数,根据您的特定使用案例定制 S3 Object Lambda 的数据转换。
如需了解更多信息,请访问 S3 Object Lambda 功能页面。
随时查询
Amazon S3 具有内置的功能和补充服务,可以查询数据,无需复制并将数据加载到单独的分析平台或数据仓库。这意味着您可以直接对存储在 Amazon S3 中的数据运行大数据分析。S3 Select 是一种为查询设计的 S3 功能,可将查询性能提升高达 400%,并将查询成本减少达 80%。其工作方式是检索某个对象的数据的子集(使用简单 SQL 表达式)而不是整个对象(其大小可高达 5 TB)。
Amazon S3 还与 AWS 分析服务 Amazon Athena 和 Amazon Redshift Spectrum 兼容。Amazon Athena 查询 Amazon S3 中的数据而无需提取数据并加载到单独的服务或平台。它使用标准 SQL 表达式分析数据,在数秒内即可提供结果,通常用于即席数据发现。Amazon Redshift Spectrum 也可直接对 Amazon S3 中的静态数据运行 SQL 查询,更适合较复杂的查询和较大的数据集(可达到 EB 级)。由于 Amazon Athena 和 Amazon Redshift 具有相同的数据目录和数据格式,您可以针对 Amazon S3 中的相同数据集使用它们。
如需更多信息,请访问生成大数据存储解决方案和 S3 Select »
数据传输
AWS 提供数据传输服务组合,从而为任何数据迁移项目提供适当解决方案。连接水平是数据迁移的重大影响因素,AWS 提供可解决您的混合云存储、在线数据传输和离线数据传输需求的产品。
混合云存储:AWS Storage Gateway 是一种混合存储服务,让您可以将本地应用程序无缝连接并扩展到 AWS 存储。客户使用 Storage Gateway 将磁带库无缝替代为云存储,提供云存储支持的文件共享,或创建低延迟缓存来访问 AWS 中本地应用程序的数据。
在线数据传输:AWS DataSync 可以轻松高效地将数百 TB 大小的数百万份文件传输到 Amazon S3 中,速度最高比开源工具快 10 倍。DataSync 可自动处理或消除很多手动任务,包括脚本复制作业、计划和监控传输、验证数据和优化网络利用率。此外,您还可以使用 AWS DataSync 在 S3 on Outposts 上的存储桶与 AWS 区域中存储的存储桶之间复制对象。AWS Transfer Family 使用 SFTP、FTPS 和 FTP 提供至 Amazon S3 的完全托管、简单且无缝的文件传输。 Amazon S3 Transfer Acceleration 可在客户与您的 Amazon S3 存储桶之间实现快速的远距离文件传输。
在线数据传输:AWS Snow 系列是专为网络容量受限或不存在的边缘站点构建的服务,可在恶劣的环境中提供存储和计算功能。AWS Snowball 服务使用坚固的便携式存储和边缘计算设备来进行数据收集、处理和迁移。客户可以运送物理 Snowball 设备来进行至 AWS 的离线数据迁移。AWS Snowmobile 是一个 EB 级的数据传输服务,可用于将海量数据移动到云中,包括视频库、图片存储库甚至整个数据中心的迁移。
客户也可以与 AWS 合作伙伴网络 (APN) 中的第三方提供商合作部署混合存储架构、将 Amazon S3 集成到现有应用程序和工作流中,以及在 AWS 云之间往返传输数据。
性能
Amazon S3 提供行业领先的云对象存储性能。Amazon S3 对并行请求的支持意味着您可以按照计算集群的系数扩展 S3 性能,而无需对应用程序进行任何自定义。性能按前缀扩展,因此您可以并行使用尽可能多的前缀,从而实现所需的吞吐量。前缀的数量没有限制。Amazon S3 性能每秒至少支持 3500 个添加数据请求,每秒至少支持 5500 个检索数据请求。每个 S3 前缀均支持这些请求速率,因此可以轻松实现显著的性能提升。
要实现此 S3 请求速率性能,您无需随机化对象前缀即可实现更快的性能。也就是说,您现在可以在 S3 对象命名中使用逻辑或顺序命名模式,而不会产生任何性能影响。有关 Amazon S3 性能优化的最新信息,请参阅 Amazon S3 性能指南和 Amazon S3 性能设计模式。
一致性
Amazon S3 自动为所有应用程序提供强大的写入后读取一致性,无需更改性能或可用性,无需牺牲应用程序的区域隔离性,并且无需任何额外费用。借助 S3 强大的一致性,无需对应用程序进行更改,从而简化了本地分析工作负载的迁移,并且无需提供强一致性的额外基础设施,进而降低了成本。
对 S3 存储的任何请求均高度一致。成功写入新对象或覆盖现有对象后,任何后续读取请求都会立即收到该对象的最新版本。S3 还为列表操作提供强大的一致性,因此在写入之后,可以立即在存储桶中执行对象列表,并反映所有更改。
了解有关 S3 强一致性的更多信息 »
预期用途和限制
使用本服务需遵循 Amazon Web Services 客户协议 »