Amazon S3 具有各种各样的功能,您可以使用这些功能以特定的方式组织和管理数据,从而支持具体使用案例、实现成本效益、增强安全性并满足合规性要求。数据将作为对象存储在名为“存储桶”的资源中,并且单个对象大小可达 5 TB。S3 功能包括将元数据标签附加到对象、跨 S3 存储类移动和存储数据、配置和实施数据访问控制、保护数据免受未经授权的用户访问、运行大数据分析以及在对象级别和存储桶级别监控数据的能力。可以通过 S3 接入点或直接通过存储桶主机名访问对象。
- 每个对象存储在桶中,通过开发人员分配的唯一密钥来进行检索。
- 在某一特定地区存储的对象将一直留在该地区,除非您将数据传出。
- 身份验证机制旨在确保数据安全,以防未授权访问。对象可以设置为私有或公有,也可以向特定用户授予权限。
- 使用基于标准的 REST 和 SOAP 接口,它们可与任何互联网开发工具包搭配使用。
- 灵活构建,以便能够轻松添加协议或功能层。默认下载协议为 HTTP,而且 S3 API 也支持 HTTPS。Amazon CLI 和 SDK 默认使用安全 HTTPS 连接。
- 提供功能,以简化整个生命周期中的数据可管理性。包括用于按存储桶分隔数据、监视和控制花费,以及自动将数据存档至成本更低存储的选项。这些选项均可通过 Amazon S3 管理控制台轻松进行管理。
保护您的数据
默认情况下,Amazon S3 中存储的数据是安全的;只有存储桶和对象所有者才能访问他们所创建的 Amazon S3 资源。Amazon S3 支持多种访问控制机制。借助 Amazon S3 的数据保护功能,您可以保护数据免受逻辑和物理故障的影响,防止因用户意外操作、应用程序错误及基础设施故障而导致数据丢失。对于必须遵守相关法规标准的客户,Amazon S3 的数据保护功能可作为实现合规性的总体策略的一部分。下面将详细介绍 Amazon S3 提供的各种数据安全和可靠性功能。
Amazon S3 提供灵活的安全性功能,以防未经授权的用户访问您的数据。使用网关 VPC 端点和接口 VPC 端点从您的 Amazon Virtual Private Cloud(Amazon VPC)和本地连接到 S3 资源。Amazon S3 会自动加密上传到所有存储桶的所有对象(从 2023 年 1 月 5 日起)。 Amazon S3 支持在对象上传时应用服务器端加密 [使用四种密钥管理选项:DSSE-KMS、SSE-KMS、SSE-C、SSE-S3(基本加密级别)] 和客户端加密。使用 S3 清单可检查 S3 对象的加密状态。
Amazon S3 还支持记录对 Amazon S3 资源发出的请求。您还可以配置 Amazon S3 存储桶,针对发出的相关请求创建访问日志记录。这些服务器访问日志可捕获对存储桶或其中的对象发出的所有请求,还可用于审核目的。
Amazon S3 通过版本控制功能提供了进一步的保护。您可以使用版本控制来保留、检索和还原存储在 Amazon S3 存储桶中的每个对象的每个版本。这使您能够从用户意外操作和应用程序故障中轻松恢复。默认情况下,请求将会检索最新写入的版本。通过在请求中指定版本,可以检索对象的较旧版本。每个存储的版本均需收取存储费。您可以配置生命周期规则,以自动控制生命周期和存储多个版本的成本。
Amazon S3 支持多种机制,使您能够灵活控制访问您数据的人员,以及他们的访问方式、时间和位置。Amazon S3 提供了四种不同的访问控制机制:Identity and Access Management (IAM) 策略、访问控制列表 (ACL)、存储桶策略以及查询字符串身份验证。IAM 让拥有多名员工的组织能够在一个亚马逊云科技账户下创建和管理多个用户。通过 IAM 策略,您可以授予 IAM 用户对 Amazon S3 存储桶或对象的细化控制权。您可以使用 ACL 选择性地添加(授予)对个别对象的特定权限。Amazon S3 存储桶策略可用来添加或拒绝对单一存储桶内的部分或所有对象的权限。使用查询字符串身份验证,您能够通过仅在预定时间段内有效的 URL 共享 Amazon S3 对象。
S3 屏蔽公共访问权限是一组安全控件,用于确保 S3 存储桶和对象不会受到公共访问。只需在 Amazon S3 控制台中点击几次,您就可以将 S3 屏蔽公共访问权限设置应用到 Amazon 账户中的所有存储桶或应用到特定 S3 存储桶。默认情况下,所有新的存储桶都启用了屏蔽公共访问权限。如果您想限制对账户中所有现有存储桶的访问权限,可以在账户级别启用屏蔽公共访问权限。将这些设置应用到 Amazon 账户之后,与该账户关联的所有现有或新的存储桶和对象都会沿用阻止公共访问的设置。S3 Block Public Access 设置会覆盖其他 S3 访问权限,这使得账户管理员能够轻松实施一种“无公共访问”策略,而不用考虑对象的添加方式、存储桶的创建方式或是否存在现有访问权限。S3 Block Public Access 控件可供审核,能够提供更深一层的控制,使用 Amazon Trusted Advisor 存储桶权限检查、Amazon CloudTrail 日志和 Amazon CloudWatch 警报。您应该为不希望公开访问的所有账户和存储桶启用 Block Public Access。
S3 对象所有权是一项功能,可禁用访问控制列表 (ACL),将所有对象的所有权更改为存储桶拥有者,并简化对存储在 S3 中的数据的访问管理。当您配置此存储桶设置时,ACL 将不再影响对您的存储桶及其中对象的权限。所有访问控制都将使用基于资源的策略、用户策略或这些策略的某种组合来定义。 新存储桶的 ACL 会自动禁用。在禁用 ACL 之前,请检查您的存储桶和对象 ACL。要标识需要 ACL 进行授权的 Amazon S3 请求,您可以使用 Amazon S3 服务器访问日志或 Amazon CloudTrail 中的 aclRequired 字段。
您可以使用 HTTPS 协议通过 SSL 终端节点,将数据安全地上传/下载到 Amazon S3。
Amazon S3 还支持记录对 Amazon S3 资源发出的请求。您还可以配置 Amazon S3 存储桶,针对发出的相关请求创建访问日志记录。这些服务器访问日志可捕获对存储桶或其中的对象发出的所有请求,还可用于审核目的。
有关 Amazon S3 中安全功能的更多信息,请参阅 Amazon S3 用户指南中的访问控制主题。
适用于 S3 的 Amazon PrivateLink 提供 Amazon S3 和本地之间的私有连接。您可以在 VPC 中为 S3 预置接口 VPC 终端节点,以便通过 Amazon Direct Connect 将本地应用程序直接连接到 S3。连接 S3 VPC 终端节点的请求将通过亚马逊云科技中国网络自动路由到 S3。您可以为接口 VPC 终端节点设置安全组并配置 VPC 终端节点策略,以增强访问控制。
Amazon S3 为任务关键型和主要数据存储提供了高持久性存储基础设施。Amazon S3 通过冗余方式将数据存储在多个设施中以及每个设施内的多个设备上。为了提高持久性,Amazon S3 在确认数据已成功存储之前会将数据同步存储在多个设施中。此外,Amazon S3 还会在存储或检索数据时,对所有网络流量计算校验和,以检测数据包是否损坏。与需要进行费时耗力的数据验证和手工修复的传统系统不同,Amazon S3 可以定期执行系统的数据完整性校验,并且内置了自动的自我修复功能。
标准具有以下特点:
- 以 Amazon S3 服务等级协议作为后盾,以确保可用性。
- 设计旨在特定年度内为对象提供 99.999999999% 的持久性和 99.99% 的可用性。
- 设计为能够承受同时两个设施中的数据丢失。
标准 – 不频繁访问具有以下特点:
- 以 Amazon S3 服务等级协议作为后盾,以确保可用性。
- 设计旨在特定年度内实现对象 99.999999999% 的持久性和 99.9% 的可用性。
- 设计为能够承受同时两个设施中的数据丢失。
Amazon S3 Glacier Instant Retrieval 具有以下特点:
- 是一种新的归档存储类,可以为很少访问且需要毫秒级检索的长期数据提供低成本存储。
- 可以实现对归档存储的即时访问,并且吞吐量和毫秒级访问与 S3 Standard-IA 存储类相同。
- 旨在通过在多个物理分离的亚马逊云科技可用区中冗余地存储数据来实现 99.999999999%(11 个 9)的数据持久性和 99.9% 的可用性。
Amazon S3 Glacier Flexible Retrieval 具有以下特点:
- 设计为在特定年份内实现 99.999999999% 的对象持久性。
- 设计为能够承受同时两个设施中的数据丢失。
- 可配置检索时间(从几分钟到几小时不等),并可免费批量检索
Amazon S3 Glacier Deep Archive 具有以下特点:
- 经过设计,可跨多个可用区实现对象 99.999999999% 的持久性
- 成本最低的存储类旨在实现将保留 7-10 年的数据的长期保留
- 磁带库的理想替代品
- 检索时间在 12 小时内
Amazon S3 Intelligent-Tiering 具有以下特点:
- 经过设计,可跨多个可用区实现对象 99.999999999% 的持久性
- 设计为在特定年份内实现 99.9% 的可用性
- 将对象存储在三个访问层中,针对频繁访问、不频繁访问和罕见访问进行了优化
- 频繁访问层和不频繁访问层具有与 S3 Standard 相同的低延迟和高吞吐量性能
- 为很少访问且可异步访问的对象激活可选的自动存档功能,以实现更大程度的节省
- 可选存档访问层和深度存档访问层具有与 Glacier 和 Glacier Deep Archive 相同的性能
- 每月收取少量监控和自动分层费用,无生命周期费用、检索费用或最短存储时间
Amazon S3 Access Grants 可将 Active Directory 等目录中的身份或 Amazon Identity and Access Management(IAM)主体映射至 S3 中的数据集。这可以根据最终用户的企业身份,自动向其授予 S3 访问权限,从而帮助您大规模管理数据权限。此外,S3 Access Grants 还会在 Amazon CloudTrail 中记录最终用户身份和用于访问 S3 数据的应用程序。这有助于提供直至最终用户身份级别的详细审核历史记录,以供您了解对 S3 存储桶中数据的所有访问情况。
存储管理
Amazon S3 让您能够轻松管理数据,方法是向您直观显示数据使用模式并提供工具来通过管理策略管理存储。所有这些管理功能都可以使用 Amazon S3 API 或管理控制台轻松管理。下面将详细介绍 Amazon S3 提供的各种数据管理功能。
借助 Amazon S3 对象标记,您可以管理并控制对 Amazon S3 对象的访问。S3 对象标签是适用于 S3 对象的键值对,在对象的生命周期内,可随时创建、更新或删除这些标签。借助这些标签,您将能够创建 Identity and Access Management (IAM) 策略,设置 S3 生命周期策略以及自定义存储指标。然后,这些对象级标签可以管理在存储类之间的转换并在后台让对象过期。
Amazon S3 CloudWatch 集成会根据大量不同指标提供经过集成的监控和提醒功能,从而帮助您改善最终用户体验。您可以收到 1 分钟 CloudWatch 指标、设置 CloudWatch 提醒和访问 CloudWatch 控制面板,从而查看 Amazon S3 存储的实时运行和性能。对依赖于云存储的 Web 和移动应用程序而言,这些功能使您可以快速识别运行问题并采取措施。这些 1 分钟指标在 S3 存储桶级别提供。此外,您还可以为使用共享前缀或对象标签收集的指标灵活地定义筛选条件,这样您便可使各项指标筛选条件满足特定业务应用程序、工作流程或内部组织的需求。
您可以使用 Amazon CloudTrail 捕捉 S3 对象上的存储桶级 API 活动 (管理事件) 和对象级 API 活动 (数据事件)。数据事件包括 GET、HEAD 和 Get Object ACL 等读取操作,以及 PUT 和 POST 等写入操作。捕捉的详细信息可为多种类型的安全性、审计、监管与合规性使用案例提供支持。
随着您的数据不断发展,Amazon S3 可以自动分配和更改成本和性能特性。它甚至还可以自动执行常见的数据生命周期管理任务,包括容量预置、自动迁移到成本较低的层级,以及监管合规性策略和最终的计划删除任务。
随着数据老化,或者在硬件故障或到达使用寿命时,Amazon S3 会自动并且透明地负责将您的数据迁移到新硬件上。这种机制让您不必执行昂贵、耗时且风险极大的硬件迁移。您可以设置生命周期策略,指示 Amazon S3 自动将老化数据迁移到成本较低的存储。您可以定义规则,根据数据的年限或较新版本数量将 Amazon S3 对象自动迁移到 S3 Standard-Infrequent Access (Standard-IA)、Amazon S3 Glacier Instant Retrieval、Amazon S3 Glacier Flexible Retrieval 或 Amazon S3 Glacier Deep Archive。您可以按存储桶、前缀或对象标签或对象大小设置生命周期策略,以便指定最符合自身情况的精细度。
Amazon S3 还提供了编程选项,当数据达到其生命周期时,用于重复删除和大量删除。对于重复删除,您可以将规则定义为在预定义的时间段后删除对象集。这些规则可用于存储在 Standard 或 Standard - IA 中的对象,也适用于已归档至 Amazon S3 Glacier Instant Retrieval、Amazon S3 Glacier Flexible Retrieval 或 Amazon S3 Glacier Deep Archive 的对象。
您还可以针对 Amazon S3 对象的版本定义生命周期规则以降低存储成本。例如,您可以创建规则,当您不再需要较旧版本的对象时自动将其彻底删除,从而节省资金并提高性能。除此之外,您还可以创建规则,以将较旧的版本自动迁移到 Standard – IA、Amazon S3 Glacier 或 Amazon S3 Glacier Deep Archive,从而进一步降低存储成本。
Amazon S3 复制是一项弹性、完全托管式的低成本功能,可在存储桶之间复制对象。S3 复制提供了云存储的灵活性和丰富功能,让您能够拥有所需的控制能力,以满足数据主权和其他业务需求。
借助 S3 复制功能,您可以将对象(以及对象的元数据和对象标签)复制到同一亚马逊云科技中国区域或不同亚马逊云科技中国区域中的一个或多个目标存储桶中,以满足低延迟、合规性、安全性、灾难恢复和其他使用案例的要求。您可以配置 S3 跨区域复制(CRR)以从源 S3 存储桶复制到位于不同亚马逊云科技中国区域的一个或多个目标存储桶。 S3 同区域复制(SRR)会在同一亚马逊云科技中国区域的存储桶之间复制对象。S3 分批复制则在存储桶之间复制现有的存储桶内容。借助 S3 分批复制功能,您可以使用现有对象回填新创建的存储桶、重试以前无法复制的对象、跨账户迁移数据或向数据湖添加新存储桶。 Amazon S3 Replication Time Control(S3 RTC)通过提供 SLA 和复制时间可见性,帮助您满足数据复制的合规性要求。
Amazon S3 Intelligent-Tiering (S3 Intelligent-Tiering) 是唯一一个在访问模式变化时通过在四个访问分层之间移动对象来自动节省成本的云存储类。S3 Intelligent-Tiering 存储类旨在通过自动将数据移动到最具成本效益的访问层来优化成本,而无操作开销。它通过将对象存储在四个访问层中来达到目的:两个低延迟访问层,针对频繁访问和不频繁访问进行了优化;以及两个可选存档访问层,专为异步访问而设计且针对罕见访问进行了优化。上传或转换至 S3 Intelligent-Tiering 的对象自动存储在频繁访问分层中。为了实现每个对象每月只需少量的监视和自动化费用,Amazon S3 会在 S3 Intelligent-Tiering 中监控对象的访问模式,然后将连续 30 天内未访问的对象移动到不频繁访问分层。您可以激活一个或两个存档访问层,可以将 90 天未访问的对象自动移动到存档访问层,然后在 180 天后将其移动到深度存档访问层。如果对象后来被访问,S3 Intelligent-Tiering 会将对象移回到频繁访问分层。这意味着,存储在 S3 Intelligent-Tiering 中的所有对象在需要时始终可用。当使用 S3 Intelligent-Tiering 存储类时,没有检索费用,当在访问层之间移动对象时,也没有额外的分层费用。S3 Intelligent-Tiering 没有最短存储持续时间。S3 Intelligent-Tiering 设计的最小对象大小为 128KB,用于自动分层。您可以将这些对象存储在 S3 Intelligent-Tiering 中,但它们不会被监控,并且将会始终按频繁访问层费率收费,没有监控和自动化费用。对于那些访问模式未知或不可预测的数据,它是理想的存储类。
Amazon S3 提供了多种用于管理和控制成本的功能。您可以使用亚马逊云科技管理控制台和 Amazon S3 API 为 Amazon S3 存储桶添加标签,以便您将成本分配到多个业务维度,包括成本中心、应用程序名称或拥有者。然后,您可以使用亚马逊云科技的成本分摊报告(其中显示了按标签统计的使用情况和成本)来查看成本的分布。有关为 S3 存储桶添加标签的更多信息,请参阅 Amazon S3 开发人员指南中的存储桶标记主题。
您可以使用 Amazon Direct Connect 将大量数据传输到 Amazon S3。Amazon Direct Connect 服务便于建立一个从本地设施到亚马逊云科技的专用网络连接。使用 Amazon Direct Connect,您可以在亚马逊云科技和数据中心、办公室或主机托管环境之间建立私有连接。在很多情况下,这样做可以降低网络成本、提高带宽吞吐量,并提供比基于 Internet 的连接更为一致的网络体验。
Amazon S3 事件通知可在响应对 Amazon S3 中上传或存储的对象采取措施时发送。通知消息可通过 Amazon SNS 或 Amazon SQS 发送,或直接传送到 Amazon Lambda 中以调用 Amazon Lambda 功能。
借助 Amazon S3 事件通知,您可以运行工作流程、发送提醒或执行其他用于响应 Amazon S3 中所存储对象更改的操作。您可以使用 Amazon S3 事件通知来设置触发器以执行各种操作,包括在上传媒体文件时转码,在数据文件可用时进行处理以及将 Amazon S3 对象与其他数据存储进行同步。您还可以根据对象名称前缀和后缀来设置事件通知。例如,您可以选择接收有关对象名称以“images/”开头的通知。
您可以在存储桶级设置 Amazon S3 事件通知,然后通过 Amazon S3 控制台、REST API 或使用 Amazon 开发工具包对其进行配置。
存储监控
除了这些管理功能之外,使用 Amazon S3 功能和其他亚马逊云科技服务来监控您的 S3 资源。将标签应用到 S3 存储桶,以便跨多个业务维度(例如成本中心、应用程序名称或所有者)分配成本,然后使用 Amazon 成本分配报告查看按存储桶标签汇总的使用情况和成本信息。您还可以使用 Amazon CloudWatch 跟踪亚马逊云科技资源的运行状况,并配置估算费用达到用户定义阈值时的账单提醒。使用 Amazon CloudTrail 跟踪和报告存储桶和对象级活动,并配置 S3 事件通知,以便在对 S3 资源进行特定更改时触发工作流并提醒或调用 Amazon Lambda。S3 事件通知可以在向 S3 上传媒体文件时自动转码文件、在数据文件可用时进行处理,并将对象与其他数据存储进行同步。此外,使用 GetObjectAttributes S3 API 或 S3 清单报告验证从 S3 传入和传输的数据的完整性并随时访问校验和信息。根据具体的应用程序需求,我们支持使用四种校验和算法(SHA-1、SHA-256、CRC32 或 CRC32C)来检查上传和下载请求的数据完整性,具体取决于您的应用程序需求。
详细了解 S3 监控 »
S3 Object Lambda
S3 Object Lambda 让您可以添加自己的代码来处理从 S3 检索的数据,然后再将其返回到应用程序。使用 S3 Object Lambda,您可以使用自定义代码修改标准 S3 GET、HEAD 和 LIST 请求返回的数据。这可用于筛选行、动态调整图像大小、修改或屏蔽机密信息、创建对象的自定义视图或修改 S3 返回的数据。由 Lambda 函数提供支持,所有请求和数据处理都在完全由亚马逊云科技管理的基础设施上运行。您的自定义代码按需执行,无需创建和存储数据的衍生副本,而且不需要对应用程序进行更改。
存储分析和洞察
S3 Storage Lens 让您可以了解整个组织内的对象存储使用情况和活动趋势,为您提供切实可行的建议来提高成本效益,并帮您应用数据保护最佳实践。S3 Storage Lens 是首个云存储分析解决方案,可跨组织中的数百甚至数千个账户提供对象存储使用情况和活动的单一视图,通过深入挖掘,生成账户、存储桶,甚至是前缀级别的见解。凭借在帮助客户优化存储方面超过 16 年的经验,S3 Storage Lens 可以分析整个组织范围内的指标以提供上下文建议,找到降低存储成本并应用数据保护最佳实践的方法。
借助存储类分析,您可以监控 S3 存储桶中对象的访问频率,以便将访问频率较低的存储转换到成本较低的存储类。存储类分析会观察使用模式以检测访问频率较低的存储,这有助于您将相应的对象转移到 S3 Standard-IA、S3 One Zone-IA、Amazon S3 Glacier Flexible Retrieval 和 Amazon S3 Glacier Deep Archive。您可以配置存储类分析策略来监控整个存储桶、前缀或对象标签。在存储类分析检测到应转移到 S3 Standard-IA、S3 One Zone-IA、Amazon S3 Glacier Flexible Retrieval 或 Amazon S3 Glacier Deep Archive 的数据后,您可以基于这些结果轻松创建新的生命周期策略。此外,该功能每天还会在指定的存储桶、前缀或标签级别详细分析存储使用情况,您可以将分析结果导出到 S3 存储桶。
您可以使用 S3 清单简化并加快业务工作流程和大数据作业,这可以有计划地取代 Amazon S3 的同步列表 API。S3 清单提供了一个您对象的 CSV(逗号分隔值)平面文件输出,以及它们 S3 存储桶或共享前缀每天或每周的对应元数据。
就地查询
Amazon S3 提供补充服务,无需将数据复制并加载到单独的分析平台或数据仓库中即可查询数据。这意味着,您可以直接针对 Amazon S3 中存储的数据运行数据分析。
Amazon S3 与亚马逊云科技分析服务 Amazon Athena 和 Amazon Redshift Spectrum 兼容。Amazon Athena 可以查询 Amazon S3 中的数据,而不需要将其提取并加载到单独的服务或平台。该服务使用标准 SQL 表达式来分析您的数据,可以在几秒内提交结果,经常用于临时数据发现。另外,Amazon Redshift Spectrum 直接对 Amazon S3 中的静态数据运行 SQL 查询,更适合用于复杂查询和大型数据集(高达 EB 级)。由于 Amazon Athena 和 Amazon Redshift 共享共同的数据目录和数据格式,因此您可以将这两项服务同时用于 Amazon S3 中的相同数据集。
性能
Amazon S3 提供行业领先的云对象存储性能。Amazon S3 支持并行请求,这意味着您可以根据计算集群的因素来扩展 S3 性能,而无需对应用程序进行任何自定义。性能按前缀扩展,因此您可以根据需要并行使用尽可能多的前缀,以达到所需的吞吐量。前缀数量没有限制。Amazon S3 性能支持每秒至少 3500 个添加数据的请求,以及每秒 5500 个检索数据的请求。每个 S3 前缀都可以支持这些请求率,从而可以轻松地显著提高性能。
要实现此 S3 请求率性能,您无需随机化对象前缀即可实现更快的性能。这意味着您可以在 S3 对象命名中使用逻辑或顺序命名模式,而不会对性能产生任何影响。有关 Amazon S3 性能优化的最新信息,请参阅 Amazon S3 性能指南和 Amazon S3 性能设计模式。
Amazon S3 针对任意存储请求为所有应用程序自动提供强大的写后读一致性,而无需更改性能或可用性,也不会影响应用程序的区域隔离,且无需支付额外费用。S3 具有强一致性,可加速和简化本地分析工作负载(如 Apache Spark 和 Apache Hadoop)的迁移,而无需对应用程序进行更改,并降低成本,而无需使用额外的基础设施来提供强一致性。
对 S3 存储的任何请求具有强一致性。成功写入新对象或覆盖现有对象后,任何顺序读取请求将立即收到对象的最新版本。S3 还为列表操作提供了强一致性,因此写入后,您可以立即列出存储桶中的对象,并反映所有更改。
用途和限制
使用本服务需遵循 亚马逊云科技客户协议 。