跳至主要内容

Amazon S3

Amazon S3 常见问题

S3 一般常见问题

全部打开

Amazon S3 是专为从任意位置存储和取回任意数量的数据而构建的对象存储。S3 是一种简单的存储服务,以极低的成本提供行业领先的耐久性、可用性、性能、安全性和几乎无限的可扩展性。

Amazon S3 提供一个简单的 Web 服务界面,使用该界面,您可以随时在任何位置存储和取回任意数量的数据。使用此服务,您可以轻松构建使用原生云存储的应用程序。由于 Amazon S3 具有高度可扩展性,且您只需为实际用量付费,您可以从较小用量起步,并根据需要扩展应用程序,而不影响性能或可靠性。Amazon S3 的设计还具有很高的灵活性。存储您需要的任意类型和任意数量的数据;读取相同数据一百万次,或者仅在紧急灾难恢复时读取;构建简单的 FTP 应用程序或复杂的 Web 应用程序,例如 Amazon.com 零售网站。Amazon S3 让您能够腾出时间专注于创新,而不是花时间考虑如何存储数据。

要注册 Amazon S3,请访问 S3 控制台。要访问此服务,您必须拥有 Amazon Web Services 账户。如果还没有账户,在您开始 Amazon S3 注册过程时,系统将会提示您创建账户。注册后,参考 Amazon S3 文档,查看 S3 入门资料,并在资源中心查看其他资源以开始使用 Amazon S3。

Amazon S3 让您可以充分利用 Amazon 自身的规模优势,而无需前期投资,也不会影响性能。通过使用 Amazon S3,可以经济、简单地确保您的数据可快速访问、始终可用且安全。

您几乎可以存储任何格式、任何类型的数据。请参阅 Amazon Web Services 许可协议,了解详细信息。

您可以在 Amazon S3 中存储的总数据容量和对象个数不受限制。各个 Amazon S3 对象的大小范围可以从最小 0 字节到最大 5TB。可在单个 PUT 中上传的最大数据对象为 5GB。对于大于 100MB 的对象,客户应该考虑使用分段上传功能。

通用存储桶是存储在 Amazon S3 中的对象的容器,您可以在存储桶中存储任意数量的对象。通用存储桶是原始 S3 存储桶类型,单一通用存储桶可以包含跨所有存储类(S3 Express One Zone 除外)的对象。对于大多数应用场景和访问模式,建议使用该存储桶。

目录存储桶是存储在 Amazon S3 中的对象的容器,您可以在存储桶中存储任意数量的对象。S3 目录存储桶仅允许存储在 S3 Express One Zone 存储类中的对象,该存储类可在单个可用区内实现更快的数据处理。对于低延迟应用场景,建议使用该存储桶。每个 S3 目录存储桶每秒最多支持 200 万个事务(TPS),这与存储桶内的目录数量无关。


表存储桶专门为使用 Apache Iceberg 格式存储表而构建。只需几个步骤,即可使用 Amazon S3 Tables 创建表存储桶并设置表级权限。S3 表存储桶专门针对分析和机器学习工作负载进行了优化。借助对 Apache Iceberg 的内置支持,您可以使用包括 Amazon Athena、Amazon Redshift 和 Apache Spark 在内的常用查询引擎在 S3 中查询表格数据。使用 S3 表存储桶,将每日购买交易、流式传感器数据或广告曝光量等表格数据在 Amazon S3 中存储为 Iceberg 表,然后使用分析功能与该数据进行交互。

向量存储桶是专为存储和查询向量而构建的。在向量存储桶内,不要使用 S3 对象 API,而是使用专用的向量 API 来编写向量数据,并根据语义和相似度来查询这些数据。您可以使用 Amazon S3 中的现有访问控制机制(包括存储桶和 IAM 策略)来控制对向量数据的访问权限。所有写入到向量存储桶的数据都具有强一致性,这意味着您可以立即访问最近添加的向量。随着您对向量的不断写入、更新和删除操作,S3 向量存储桶会自动优化其中存储的向量数据,以实现最佳的性价比,即便数据集在扩展和不断变化也是如此。

存储桶是存储在 Amazon S3 中的对象和表的容器,您可以在存储桶中存储任意数量的对象。通用存储桶是原始 S3 存储桶类型,单一通用存储桶可以包含跨所有存储类(S3 Express One Zone 除外)的对象。对于大多数应用场景和访问模式,建议使用该存储桶。S3 目录存储桶仅允许存储在 S3 Express One Zone 存储类中的对象,该存储类可在单个可用区内实现更快的数据处理。对于低延迟应用场景,建议使用该存储桶。 每个 S3 目录存储桶支持每秒多达 200 万个事务(TPS),这与存储桶内的目录数量无关。 S3 表存储桶专为在 S3 中存储表格数据而构建,例如每日购买交易、流式传感器数据或广告曝光量。使用表存储桶时,您的数据将作为 Iceberg 表存储在 S3 中,然后您可以使用行级交易、可查询表快照等分析功能与该数据进行交互,所有这些都由 S3 管理。此外,表存储桶会进行持续的表维护,即使数据湖不断扩展和演变,它也能随着时间的推移自动优化查询效率。 S3 向量存储桶是专为存储和查询向量而构建的。在向量存储桶内,您可以通过专用的向量 API 来编写向量数据,并根据语义和相似度来查询这些数据。您可以使用 Amazon S3 中的现有访问控制机制(包括存储桶和 IAM 策略)来控制对向量数据的访问权限。随着您对向量的不断写入、更新和删除操作,S3 向量存储桶会自动优化其中存储的向量数据,以实现最佳的性价比,即便数据集在扩展和不断变化也是如此。

Amazon 将存储您的数据,并跟踪其相关使用情况,用于账单用途。除非法律要求,Amazon 不会出于 Amazon S3 服务之外的任何目的访问您的数据。请参阅 Amazon Web Services 许可协议,了解详细信息。

可以。Amazon 内部的公司也将 Amazon S3 用于众多项目。其中很多项目都使用 Amazon S3 作为授权数据存储,并依赖它执行业务关键型操作。

Amazon S3 是基于密钥的简单数据对象存储。存储数据时,您应分配唯一数据对象密钥,此后可使用该密钥来提取数据。密钥可以是任何字符串,并且可以被构建为模拟分层属性。或者,您也可以使用 S3 对象标记来组织所有 S3 存储桶中的数据和/或前缀。

Amazon S3 提供基于标准的简单 REST Web 服务接口,该接口可用于任何互联网开发工具箱。我们特意对这些操作进行了简化,以便轻松添加新的分发协议和功能层。

Amazon S3 为您提供了一个快速、低成本、高度可扩展且高度可用的数据存储基础设施,Amazon 自己也使用该基础设施来运行其全球网站网络。S3 Standard 存储类的设计可实现 99.99% 的可用性,S3 Standard-IA 存储类、S3 Intelligent-Tiering 存储类和 S3 Glacier Instant Retrieval 存储类的设计可实现 99.9% 的可用性,S3 One Zone-IA 存储类的设计可实现 99.5% 的可用性,而 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 类的设计可实现 99.99% 的可用性和 99.9% 的 SLA。所有这些存储类别均受 Amazon S3 服务等级协议支持。

Amazon S3 从一开始就专为处理来自任何互联网应用程序的高流量而设计。即用即付定价模式以及无限制的容量,可以确保您的递增费用不会变化,而且您的服务也不会中断。Amazon S3 的庞大规模使得我们能够均衡地分布负载,任何应用程序都不会受到流量峰值的影响。

可以。如果客户的月度正常运行时间百分比在任何账单周期内低于我们的服务承诺,Amazon S3 SLA 将提供服务积分。

Amazon S3 自动提供强大的写入后读取一致性,无需更改性能或可用性,无需牺牲应用程序的区域隔离性,并且无需任何额外费用。成功写入新对象或覆盖现有对象后,任何后续读取请求都会立即收到该对象的最新版本。S3 还为列表操作提供强大的一致性,因此在写入之后,可以立即在存储桶中执行对象列表,并反映所有更改。

当您需要在写入后立即读取对象时,强大的写入后读取一致性可以提供帮助,例如,当您经常在写入对象后立即读取和列出这些对象时。高性能计算工作负载也会受益,因为对象被覆盖然后同时多次读取时,强大的写入后读取一致性可保证最新写入是跨全部读取的读取。这些应用程序自动且立即受益于强大的写入后读取一致性。S3 的强一致性还会降低成本,因为不再需要提供强一致性的额外基础设施。 

AWS 区域

全部打开

创建 Amazon S3 通用存储桶时,您可以指定一个 AWS 区域。对于 S3 Standard、S3 Standard-IA、S3 Intelligent-Tiering、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类,您的对象会自动存储在至少三个可用区(AZ)中的多个设备上。可用区与任何其他可用区都间隔一定距离,不过彼此都在 100 公里(60 英里)以内。存储在 S3 One Zone-IA 存储类中的对象将以冗余方式存储在您选择的 AWS 区域的单个可用区中。  创建目录存储桶时,您可以指定单个可用区或 AWS 专用本地区域。目录存储桶中的对象以冗余方式存储在单个可用区或单个本地区域中。为专用本地区域使用 S3 存储类时,除非您将对象转移到 AWS 区域,否则它们会保留在专用本地区域中。对于 S3 on Outposts,您的数据将存储在 Outpost 本地环境中,除非您手动选择将该数据传输到 AWS 区域。请参阅 AWS 区域性服务列表,了解 Amazon S3 服务在不同 AWS 区域的具体提供情况。

如果您有敏感数据和应用程序需要在物理上独立的基础设施上运行,这些基础设施供您专用,并置于指定的监管管辖区内,以满足安全性和合规性要求,则应使用适用于 AWS 专用本地区域的 S3 存储类别。例如,出于公共部门、医疗保健、石油和天然气以及其他高度监管行业中常见的监管、合同或信息安全原因,一些法规要求数据必须存储在特定的国家或州。AWS 与您合作,使用增强的安全和监管功能配置您自己的专用区域,以帮助您满足监管要求。

AWS 区域是世界各地的 AWS 集群数据中心的物理位置。  区域内的每组逻辑数据中心称为可用区(AZ)。每个 AWS 区域由一个地理区域内的至少三个隔离的且在物理上分隔的可用区组成。 与其他通常将区域定义为一个数据中心的云提供商不同的是,为每个 AWS 区域设计多个可用区可为客户提供优势。每个可用区都有独立的电力、冷却和物理安全性,并通过冗余的超低延迟网络连接。

可用区(AZ)是指 AWS 区域中一个或多个具有冗余电源、联网和连接的离散数据中心。可用区让客户能够运行在可用性、容错能力和可扩展性方面比单个数据中心更强的生产应用程序和数据库。一个 AWS 区域中的所有可用区都通过高带宽、低延迟网络与完全冗余的专用城域光纤互连,为可用区之间提供高吞吐量和低延迟的联网。Amazon S3 Standard、S3 Standard-Infrequent Access、S3 Intelligent-Tiering、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类在至少三个可用区中复制数据,以免整个可用区丢失。在公开提供的可用区不足 3 个的区域中,这种情况仍然存在。存储在这些存储类中的对象可从单个 AWS 区域的所有可用区进行访问。
Amazon S3 单区 – IA 存储类在单个可用区内复制数据。存储在 S3 One Zone-IA 中的数据对由于地震、火灾和洪水等灾难导致的可用区的物理损失不具有弹性。

需要基于您的特定应用程序考虑多个因素。例如,您可能希望将数据存储在靠近客户、数据中心或其他 AWS 资源的区域中,以减少数据访问延迟。您也可能希望将数据存储在远离其他运营的区域中,以实现地理位置冗余和灾难恢复目的。您还应该考虑可让您满足特定法律和法规要求和/或降低存储成本的区域 – 您可以选择价格较低的区域以节省开支。有关 S3 定价的信息,请访问 Amazon S3 定价页面

Amazon S3 在全球所有 AWS 区域中提供,无论您身处何地,都可以使用 Amazon S3。您只需决定要将 Amazon S3 数据存储在哪个 AWS 区域中即可。请参阅 AWS 区域服务列表,获取当前提供 S3 的 AWS 区域的列表。

计费

全部打开

使用 Amazon S3,您只需按实际用量付费。没有最低收费。您可以使用 AWS 定价计算器估算您的每月费用。对于成本较低的区域,AWS 的收费也比较低。有些价格因 Amazon S3 区域而异,具体账单价格取决于您的 S3 存储桶所在的位置。对于通过 COPY 请求在 Amazon S3 区域内部传输的数据,我们不收取数据传输费用。通过 COPY 请求在 AWS 区域间传输的数据按 Amazon S3 定价页面上指定的费率收费。对于在同一区域内的 Amazon EC2(或任何 AWS 服务)和 Amazon S3 之间传输的数据,或例如在美国东部(弗吉尼亚州北部)区域传输的数据,我们不收取数据传输费用。但是,在所有其他区域的 Amazon EC2(或任何 AWS 服务)和 Amazon S3 之间传输的数据按 Amazon S3 定价页面上指定的费率收费,例如,美国东部(弗吉尼亚州北部)的 Amazon EC2 和美国西部(北加利福尼亚)的 Amazon S3 之间传输的数据。 数据传输费用向源存储桶所有者计费。对于 S3 on Outposts 定价,请访问 Outposts 定价页面

开始使用 Amazon S3 时,没有安装费,也无需订立合约。每个月底将自动向您收取当月使用费。您可以随时查看当前账单周期的费用,只需登录您的 Amazon Web Services 账户,然后选择与您的控制台配置文件关联的“账单控制面板”。使用 AWS 免费使用套餐*,您可在除 AWS GovCloud 区域之外的所有区域免费开始使用 Amazon S3。注册后,新 AWS 客户将会获得 5GB 的 Amazon S3 Standard 存储、20000 个 Get 请求、2000 个 Put 请求以及一年内每月 100GB 的数据传出量(至 Internet、其他 AWS 区域或 Amazon CloudFront)。未使用的月度使用量不会结转至下月。Amazon S3 对以下类型的使用收费。请注意:以下计算假定没有使用 AWS Free Tier。

对于成本较低的区域,AWS 的收费也比较低。例如,我们在美国东部(弗吉尼亚州北部)区域的成本低于美国西部(北加利福尼亚)区域的成本。

正常 Amazon S3 费率适用于存储或请求的数据对象的每个版本。例如,我们以下列场景为例,说明使用版本控制时的存储费用(假定当月有 31 天):1) 当月第 1 天:您对存储桶中的 4GB(4294967296 字节)数据执行了 PUT 操作。
2) 当月第 16 天:您对同一存储桶中的 5GB(5368709120 字节)数据执行了 PUT 操作,使用与第 1 天的原始 PUT 操作相同的密钥。

分析上述操作的存储费用时,请注意,在第 15 天写入 5GB 数据对象时,第 1 天的 4GB 数据对象并未从存储桶删除。相反,这 4GB 数据对象作为旧版本保留,5GB 数据对象成为存储桶中的最近写入的数据对象版本。当月底:总字节小时使用量
[4294967296 字节 x 31 天 x(24 小时/天)] + [5368709120 字节 x 16 天 x(24 小时/天)] = 5257039970304 字节小时。转换为 GB 月:
5257039970304 字节-小时 x(1GB/1073741824 字节)x(1 月/744 小时)= 6.581GB 月成本。根据 Amazon S3 定价页面上列出的您所在区域的当前费率计算得出。

通过 AWS 管理控制台访问 Amazon S3 时,该服务的正常定价适用。为提供优化的体验,AWS 管理控制台可以主动执行请求。此外,某些交互操作可能导致对服务的多个请求。

当您使用其他 AWS 账户访问存储时,我们将按正常 Amazon S3 定价收费。或者,您也可以选择将存储桶配置为申请方付款存储桶,在这种情况下,将由申请方支付 Amazon S3 数据的相关申请和下载费用。有关申请方付款存储桶配置的更多信息,请参阅 Amazon S3 文档

除非另行说明,否则我们的价格不包含适用的税费和关税(包括增值税和适用的销售税)。使用日本账单地址的客户若要使用 AWS,则需缴纳日本消费税。详细了解 AWS 服务的税费信息 »

当符合条件的客户按照以下流程将所有数据移出 AWS 时,AWS 会为他们免费提供将数据传出到互联网的服务。

完成以下步骤:1) 如果您有专门的 AWS 账户团队,请先联系他们并告知他们您的计划。在某些情况下,如果您与 AWS 达成了协商承诺,则需要与 AWS 账户团队讨论您的选择。2) 查看本页描述的标准和流程。3) 联系 AWS 客户支持并表明您的请求是“通过免费数据传输将数据移出 AWS”。 AWS 客户支持将要求您提供信息,以便他们审核您的迁移计划、评估您是否有资格获得免费数据传输,并计算适当的抵扣金额。4) 如果 AWS 客户支持批准您的迁移,您将根据 AWS 计算时您在 AWS 服务中存储的所有数据量获得数据传出费用的临时抵扣。AWS 客户支持将在您获得批准后通知您,然后您将有 60 天的时间完成从 AWS 的数据迁出。抵扣金仅适用于数据转出使用量,不适用于其他服务使用量。停止使用 AWS 服务后,您必须在 60 天内删除 AWS 账户中的所有剩余数据和工作负载,或者可以关闭您的 AWS 账户。移动 IT 提供商的免费数据传输还需遵守以下标准:a) 只有拥有活跃 AWS 账户且信誉良好的客户才有资格享受免费数据传出。b) 如果您的 AWS 账户中存储的数据少于 100GB,您可以根据 AWS 现有的每月 100GB 数据传出免费套餐免费将此数据移出 AWS。AWS 账户中存储的数据少于 100GB 的客户没有资格获得额外服务抵扣金。c) 若您要将所有数据移出 AWS,AWS 将免费为您提供将数据传出到互联网的服务。如果您只想调整单项服务的总使用量,而不是所有服务的使用量,请联系 AWS 客户支持。d) 如果您的计划发生变化,或者您无法在 60 天内完成从 AWS 的数据迁出,则必须通知 AWS 客户支持。e) 不包括使用 AWS 服务的标准服务费。只有支持您从 AWS 移出数据的数据传出费用才有资格获得服务抵扣金。但是,不包括从专门的数据传输服务(例如 Amazon CloudFront、AWS Direct Connect、AWS Snowball 和 AWS Global Accelerator)传出的数据。f) AWS 可能会审查您的服务使用情况以验证是否符合这些要求。如果我们确定您使用数据传出的目的不是从 AWS 中移出数据,我们可能会向您收取已抵扣的数据传出费用。g) AWS 可以随时更改向互联网的免费数据传出服务。

AWS 客户每天进行数亿次数据传输,而我们通常不知道任何给定数据传输的原因。例如,客户可能会将数据传输给其应用程序的最终用户、其网站的访问者或出于备份目的传输到另一个云或本地环境。因此,只有您事先告知,我们才能知道您的数据传输是为了支持您从 AWS 移出数据。

S3 表类数据存储服务

全部打开

Amazon S3 表类数据存储服务提供专门针对分析工作负载进行了优化的 S3 存储,提高了查询性能,同时降低了成本。您可以通过 S3 表类数据存储服务与 Amazon SageMaker 智能湖仓的集成,访问高级 Iceberg 分析功能,并使用常用的 AWS 服务(如 Amazon Athena、Redshift 和 EMR)查询数据。此外,您可以使用与 Iceberg REST 兼容的第三方应用程序(如 Apache Spark、Apache Flink、Trino、DuckDB 和 PyIceberg)向 S3 表中读取和写入数据。您可以使用表存储桶,将每日购买交易、流式传感器数据或广告曝光量等表格数据在 Amazon S3 中存储为 Iceberg 表,然后使用行级交易、可查询表快照等分析功能与该数据进行交互,所有这些都由 Amazon S3 管理。此外,表存储桶会进行持续的表维护,即使数据湖不断扩展和演变,它也能随着时间的推移自动优化查询效率。

您应该使用 S3 表类数据存储服务,以简单、高性能且经济实惠的方式在 Amazon S3 中存储表格数据。S3 Tables 使您能够将结构化数据组织成表,然后使用标准 SQL 语句查询该数据,几乎无需设置。此外,S3 表类数据存储服务提供与 S3 本身相同的持久性、可用性、可扩展性和性能特征,并自动优化存储以最大限度地提高查询性能并最大限度地降低成本。

S3 表类数据存储服务提供专门构建的 S3 存储,用于以 Apache Parquet、Avro 和 ORC 格式存储结构化数据。在表存储桶中,您可以直接在 S3 中将表创建为一级资源。这些表可以使用在基于身份或资源的策略中定义的表级权限进行保护,并且可由支持 Apache Iceberg 标准的应用程序或工具进行访问。当您在表存储桶中创建表时,S3 中的基础数据将存储为 Parquet、Avro 或 ORC 文件。然后,S3 会使用 Apache Iceberg 标准来存储必要的元数据,使应用程序可以查询该数据。S3 表类数据存储服务包括一个客户端库,查询引擎使用该库来导航和更新表存储桶中表的 Iceberg 元数据。此库与用于表操作的更新的 S3 API 结合使用,允许多个客户端安全地读取和写入表中的数据。随着时间的推移,S3 会通过重写或“压缩”对象来自动优化基础 Parquet、Avro 或 ORC 数据。压缩可以优化 S3 上的数据,以提高查询性能。

只需几个简单步骤即可开始使用 S3 表类数据存储服务,无需在 S3 之外搭建任何基础设施。首先,在 S3 控制台中创建表存储桶。通过控制台创建您的第一个表存储桶的过程中,与 AWS 分析服务的集成会自动完成,这使得 S3 能够自动将您账户和区域中的所有表存储桶和表填充到 AWS Glue Data Catalog 中。此后,S3 表类数据存储服务可通过 Amazon Athena、EMR 和 Redshift 等 AWS 查询引擎访问。接下来,您可以在 S3 控制台中点击操作,利用 Amazon Athena 创建表格。进入 Athena 后,您就可以快速开始填充新的表格并对其进行查询。

或者,您可以通过 AWS Glue Data Catalog 使用 REST Catalog 端点访问 S3 表类数据存储服务,这使您能够发现整个数据资产,包括所有表资源。您还可以直接连接到单个表存储桶端点,以发现该存储桶中的所有 S3 表类数据存储服务资源。这使您能够将 S3 表类数据存储服务与支持 Apache Iceberg REST Catalog 规范的任何应用程序或查询引擎结合使用。

您可以使用 S3 中的 CreateTable API 在您的表存储桶中创建表。或者,您也可以使用查询引擎来创建表。您可以使用 S3 中的 DeleteTable API 从您的表存储桶中删除表。或者,您可以使用查询引擎删除表。如果这样做,您的查询引擎将无法再访问您的表。

S3 表类数据存储服务支持 Apache Iceberg 标准,Amazon Athena、Amazon Redshift 和 Apache Spark 等查询引擎可用于查询 Iceberg 表,可用于使用标准 SQL 查询表存储桶中的表。

与将 Iceberg 表存储在通用 Amazon S3 存储桶中相比,预计查询性能最多可高 3 倍,每秒事务数(TPS)最多可高 10 倍。这是因为表存储桶会自动压缩表的基础 Parquet、Avro 或 ORC 数据来优化查询性能,而专用存储在默认情况下最多支持 10 倍的 TPS。

不能。为了防止意外损害表的完整性或中断下游应用程序,表存储桶不允许手动覆盖或删除对象。表存储桶仅支持访问和更新 Iceberg 表所需的 S3 API 子集。不过,您可以在表上配置删除未引用的文件并设置快照到期时间以删除数据。

表存储桶使您能够将资源策略应用于整个存储桶或单个表。可以使用 PutTablePolicy 和 PutTableBucketPolicy API 来应用表存储桶策略。表级策略允许您根据与之关联的逻辑表管理对表存储桶中表的权限,而无需了解单个 Parquet、Avro 或 ORC 文件的物理位置。此外,S3 屏蔽公共访问权限始终应用于您的表存储桶。

可以。当有多个并发写入器时,表存储桶依赖 Iceberg 的快照功能来保持表的一致性。

表存储桶支持包含 Parquet、Avro 或 ORC 数据的 Apache Iceberg 表格式。

表存储桶提供三种维护操作:压缩、快照管理和删除未引用的文件。压缩会定期将较小的对象组合成更少、更大的对象,以提高查询性能。快照管理会过期并根据您的快照保留配置删除表快照。根据您的未引用文件删除策略,未引用的文件删除策略将删除任何表快照均未引用的对象,从而优化存储成本。

可以,S3 Tables 支持 AWS CloudTrail。您可以为表存储桶设置 CloudTrail 数据和管理事件 CloudTrail,就像使用通用 S3 存储桶一样。您的表存储桶的 CloudTrail 日志包括表和数据对象信息。 

是的,表格存储桶中的数据默认使用服务器端加密进行加密,从而确保对静态数据提供基本保护。为了增强安全性,您可以选择使用自己的加密密钥对 S3 表格中的数据进行加密。这些密钥通过 AWS Key Management Service(AWS KMS)在您的 AWS 账户内创建和管理。借助 KMS,对于 KMS 密钥的使用有单独的权限设置,增加了一层额外的控制和保护,防止未经授权访问存储在表格存储桶中的表格。此外,KMS 会生成详细的审计跟踪记录,使您能够使用密钥追踪谁在何时访问了哪些表格。KMS 还提供额外的安全控制,以支持您遵守诸如 PCI-DSS、HIPAA/HITECH 以及 FedRAMP 等行业要求。这种全面的加密和密钥管理方法提供了有效保护您敏感数据所需的安全性和灵活性。

使用 S3 表类数据存储服务,您需要支付存储空间、请求和存储在表存储桶中的每个对象的对象监控费用。表维护也需要额外付费。如需查看定价详细信息,请参阅 S3 定价页面

压缩会将较小的对象组合成更少、更大的对象,以提高 Iceberg 查询性能。Amazon S3 根据最适合您的数据访问模式的目标文件大小或您指定的值来压缩表。压缩后的文件将作为表的最新快照写入。默认情况下,所有 S3 表都支持压缩,默认目标文件大小为 512MB。可以使用 PutTableMaintenanceConfiguration API 将目标文件大小从 64MB 改为 512MB。 

快照管理会过期并根据快照保留配置删除表快照。快照管理根据 MinimumSnapshots(默认为 1)和 MaximumSnapshotAge(默认为 120 小时)确定表的活动快照数量。快照到期时,Amazon S3 会为该快照唯一引用的数据和元数据文件创建删除标记,并将这些文件标记为非最新文件。这些非当前文件将在未引用文件删除策略中的 NoncurrentDays 属性指定的天数后删除。可以使用 PutTableMaintenanceConfiguration API 更改快照的默认值。快照管理不支持您在 Iceberg metadata.json 文件中配置的保留值,包括基于分支或标签的留存。当您配置基于分支或标签的保留策略,或者在 metadata.json 文件上配置的保留策略长于通过 PutTableMaintenanceConfiguration API 配置的值时,S3 表类数据存储服务的快照管理将被禁用。 

删除未引用的文件可识别并删除任何表快照未引用的所有对象。根据未引用文件删除策略,您可以配置两个属性:ExpireDays(默认为 3 天)和 NoncurrentDays(默认为 10 天)。对于表中未引用且早于 ExpireDays 属性的任何对象,S3 将在 NoncurrentDays 属性指定的天数之后永久删除这些对象。您可以在表存储桶级别配置未引用的文件删除。可以使用 PutTableBucketMaintenanceConfiguration API 更改快照保留期的默认值。

S3 Vectors

全部打开

您可以通过四个简单步骤开始使用 S3 Vectors,无需在 Amazon S3 之外设置任何基础设施。首先,通过 CreateVectorBucket API 或在 S3 控制台中在特定 AWS 区域创建向量存储桶。其次,要在向量存储桶中组织向量数据,您可以使用 CreateIndex API 或在 S3 控制台中创建向量索引。创建向量索引时,需要指定距离指标(余弦或欧几里得)和向量应具有的维度数(最多 4092)。要获得最准确的结果,请选择您的嵌入模型推荐的距离指标。第三,使用 PutVectors API 将向量数据添加到向量索引中。您可以选择性地将元数据作为键值对附加到每个向量中以筛选查询。第四,使用 QueryVectors API 执行相似度查询,以指定要搜索的向量和要返回的最相似结果的数量。

您可以使用 S3 控制台或 CreateIndex API 创建向量索引。在创建索引时,您需指定向量存储桶、索引、距离标准、维度,以及(可选)您希望在相似性查询中排除在筛选之外的元数据字段列表。例如,如果您只是想存储与向量相关的数据以供参考,则可以将这些数据指定为不可筛选的元数据字段。创建后,会为每个索引分配一个唯一的 Amazon 资源名称(ARN)。随后,当您发出写入或查询请求时,您会将其定向至向量存储桶内的一个向量索引。

您可以使用 PutVectors API 将向量添加到向量 索引。每个向量都包含一个键,该键能够唯一地标识向量索引中的每个向量(例如,您可以通过编程方式生成一个 UUID)。为了最大限度地提高写入吞吐量,建议您一次性大量插入数据,最多可达到最大请求大小。此外,您还可以将元数据(例如年份、作者、流派和地点)作为键值对附加到每个向量中。当您包含元数据时,默认情况下,所有字段均可作为相似性查询中的筛选条件使用,除非在创建向量索引时将其指定为不可筛选的元数据。要为非结构化数据生成新的向量嵌入,您可以使用 Amazon Bedrock 的 InvokeModel API,以指定要使用的嵌入模型的模型 ID。

您可以使用 GetVectors API 来查找并返回以向量键标识的向量及其相关元数据。

您可以使用 QueryVectors API 运行相似度查询,以指定查询向量、要返回的相关结果数量(前 k 个最近的邻居)和索引 ARN。生成查询向量时,应使用与生成存储在向量索引中的初始向量相同的嵌入模型。例如,如果您在 Amazon Bedrock 中使用 Amazon Titan 文本嵌入 v2 来生成文档的嵌入,则建议您使用相同的模型将问题转换为向量。此外,您还可以在查询中使用元数据筛选条件来搜索与筛选条件匹配的向量。当您运行相似度查询时,默认情况下会返回向量键。您可以选择在响应中包含距离信息和元数据。

S3 Vectors 提供高度持久且可用的向量存储。写入 S3 Vectors 的数据存储在 S3 上,而 S3 专为实现 99.999999999%(11 个 9)的数据持久性而设计。S3 Vectors 旨在提供 99.99% 的可用性,可用性 SLA 为 99.9%。

S3 Vectors 提供亚秒级的查询延迟时间。它利用 Amazon S3 的弹性吞吐量来处理数百万个向量的搜索操作,非常适合处理不频繁的查询工作负载。

在对您的向量嵌入进行相似性查询时,有几个因素会影响平均召回率,包括嵌入模型、向量数据集的大小(向量和维度数量)以及查询的分布情况。对于大多数数据集,S3 Vectors 的平均召回率超过 90%。平均召回率衡量的是查询结果的质量:90% 意味着,该响应包含了 90% 的与查询向量最接近的真实基础向量(这些基础向量存储在索引中)。但是,由于实际性能可能会因您的特定应用场景而有所不同,我们建议您使用代表性数据和查询进行自行测试,以验证 S3 向量索引符合您的召回要求。

您可以使用 ListVectors API 在向量索引中查看向量列表,该 API 一次最多返回 1000 个向量,并会附带一个指示信息说明响应是否被截断。响应包括上次修改日期、向量键、向量数据和元数据。您还可以使用 ListVectors API 轻松地从指定的向量索引导出向量数据。ListVectors 操作具有强一致性。因此,在完成写入操作后,您就可以立即列出反映出所有更改的向量。

使用 S3 Vectors 时,您只需为存储以及任何适用的写入和读取请求(例如,插入向量以及在向量索引中执行查询操作)支付费用。如需查看定价详细信息,请参阅 S3 定价页面

可以。通过 Bedrock 控制台或 API 创建 Bedrock 知识库时,您可以将现有的 S3 向量索引配置为向量存储,以节省 RAG 应用场景的向量存储成本。如果您更愿意让 Bedrock 为您创建和管理向量索引,请在 Bedrock 控制台中使用快速创建工作流。此外,您还可以将新的 S3 向量索引配置为 Amazon SageMaker Unified Studio 融通式合作开发工作室中 RAG 工作流的向量存储。

可以。您可以通过两种方式将 S3 Vectors 与 Amazon OpenSearch Service 结合使用。首先,S3 客户可以使用 S3 或 OpenSearch 控制台将所有向量从 S3 向量索引导出到 OpenSearch Serverless,作为新的无服务器集合。如果您在 S3 Vectors 上进行本地构建,则能够有选择地将 OpenSearch Serverless 用于具有实时查询需求的工作负载,这将使您受益匪浅。其次,如果您是 OpenSearch 的托管客户,现在您可以选择使用 S3 Vectors 作为您的向量数据处理引擎,这样您便可以以亚秒级的延迟对这些数据进行查询。然后,OpenSearch 将自动使用 S3 Vectors 作为向量的底层引擎,您可以使用 OpenSearch API 更新和搜索向量数据。您将享受到 S3 Vectors 的成本优势,而无需对您的应用程序进行更改。

Amazon S3 和 IPv6

全部打开

连接到 Internet 的每个服务器和设备都必须具有一个唯一地址。Internet 协议版本 4 (IPv4) 是原始的 32 位寻址方案。但是,Internet 的持续发展意味着所有可用的 IPv4 地址都将随着时间而被用尽。Internet 协议版本 6(IPv6)是寻址机制,设计用以克服 IPv4 的全球地址限制。

使用适用于 Amazon S3 的 IPv6 支持,应用程序无需任何 IPv6 到 IPv4 转换软件或系统即可连接到 Amazon S3。您可以满足合规性要求,更轻松地与基于 IPv6 的现有本地应用程序集成,并且无需购买昂贵的联网设备来处理地址转换。您还可以借助 IPv6 地址利用 IAM 策略和存储桶策略中现有的源地址筛选功能,扩大您的选择范围以确保应用程序与 Amazon S3 安全交互。

首先,您可以将应用程序指向 Amazon S3 的“双堆栈”端点,该端点同时支持通过 IPv4 和 IPv6 访问。在大多数情况下,无需进一步配置即可通过 IPv6 进行访问,因为大多数网络客户端倾向于默认使用 IPv6 地址。 因使用 IPv6 受到影响的应用程序可以随时切换回仅支持 IPv4 的标准端点。支持在所有商业 AWS 区域将 IPv6 用于 Amazon S3,包括 AWS GovCloud(美国)区域、由光环新网运行的亚马逊云科技中国(北京)区域、由宁夏西云数据运行的亚马逊云科技中国(宁夏)区域。 

不会,不论是使用 IPv4 还是 IPv6,Amazon S3 的性能都相同。

S3 事件通知

全部打开

您可以使用 Amazon S3 事件通知功能在 S3 存储桶中发生某些事件时接收通知,例如 PUT、POST、COPY 和 DELETE 事件。您可以将通知发布到 Amazon EventBridgeAmazon SNSAmazon SQS,或直接发布到 AWS Lambda

Amazon S3 事件通知可让您运行工作流、发送提醒或执行其他操作来响应 S3 中存储对象的更改。您可以使用 S3 事件通知来设置触发器以执行各种操作,包括在上传媒体文件时对其执行转码、在数据文件可用时对其进行处理以及将 S3 对象与其他数据存储同步。您还可以根据对象名前缀和后缀来设置事件通知。例如,您可以选择接收以“images/”开头的对象名称的通知。

有关 Amazon S3 事件通知消息中包含的信息的详细说明,请参阅配置 Amazon S3 事件通知文档。 

关于如何配置事件通知的详细描述,请参阅配置 Amazon S3 事件通知文档。您可以在 Amazon SNS 文档Amazon SQS 文档中了解有关 AWS 消息收发服务的更多信息。

使用 Amazon S3 事件通知,无需支付额外费用。发送事件通知时,您只需为 Amazon SNS 或 Amazon SQS 的使用付费,或只需承担运行 AWS Lambda 函数的费用。要查看这些服务的定价详细信息,请访问 Amazon SNSAmazon SQSAWS Lambda 定价页面。

Amazon S3 Transfer Acceleration

全部打开

Amazon S3 Transfer Acceleration 可在客户与您的 Amazon S3 存储桶之间创建快速、轻松、安全的远距离文件传输。S3 Transfer Acceleration 利用了 Amazon CloudFront 遍布全球的 AWS 边缘站点。数据到达某个 AWS 边缘站点时,即被通过优化的网络路径路由至您的 Amazon S3 存储桶。

要开始使用 S3 Transfer Acceleration,请使用 Amazon S3 控制台、Amazon S3 API 或 AWS CLI 在 S3 存储桶上启用 S3 Transfer Acceleration。启用 S3 Transfer Acceleration 后,您可以将 Amazon S3 PUT 和 GET 请求指向 s3-accelerate 端点的域名。您的数据传输应用程序必须使用以下两种终端节点类型中的一种,以访问用于更快的数据传输的存储桶:“双堆栈”终端节点的 .s3-accelerate.amazonaws.com 或 .s3-accelerate.dualstack.amazonaws.com。如果您想要使用标准数据传输,可以继续使用常规终端节点。对于支持 S3 Transfer Acceleration 的存储桶有一定限制。有关详细信息,请参阅 Amazon S3 文档

S3 Transfer Acceleration 可帮助您充分利用带宽,最大限度地降低距离对吞吐量的影响。无论客户位于何方,S3 Transfer Acceleration 都能确保数据快速、稳定地传输到 Amazon S3。加速的幅度主要取决于您的可用带宽、源和目标之间的距离以及网络路径上的数据包丢失率。通常,源和目标之间的距离越远、可用带宽越多和/或对象大小越大,加速的幅度越大。一位客户的测量结果是:从分布在美国、欧洲和部分亚洲地区的全球用户群向亚太地区(悉尼)的存储桶摄入 300MB 的文件,平均传输时间可以缩短 50%。而另一位客户观察到,从东南亚和澳大利亚的用户向美国东部(弗吉尼亚州北部)的 S3 存储桶上传 250MB 文件(分成 50MB 大小的几个部分)时,性能提升超过 500%。访问 S3 Transfer Acceleration 速度比较工具,预览您所在位置能获得的性能提升!

S3 Transfer Acceleration 旨在优化从世界各地向 S3 存储桶传输数据的速度。如果您从多个分散的地点向一个集中的存储桶上传数据,或者如果您经常需要跨各大洲传输 GB 或 TB 级的数据,使用 S3 Transfer Acceleration 节约的数据传输时间可以达到数小时或者数天。

S3 Transfer Acceleration 的安全性与 Amazon S3 的常规传输相同。同样支持所有 Amazon S3 安全功能,例如基于客户端的 IP 地址来限制访问。S3 Transfer Acceleration 与客户端通过标准 TCP 通信,无需更改防火墙。AWS 边缘站点不会存储任何数据。

每当您使用 S3 Transfer Acceleration 上传对象时,我们都会检查 S3 Transfer Acceleration 的传输速度是否有可能比常规 Amazon S3 传输更快。在将同一对象传输到同一目标 AWS 区域时,如果我们确定 S3 Transfer Acceleration 的传输速度不会快于常规 Amazon S3,那么对于此次使用 S3 Transfer Acceleration 进行的传输,我们将不会收取任何费用,并且可能会绕过该次上传的 S3 Transfer Acceleration 系统。

可以,S3 Transfer Acceleration 支持所有存储桶级别的功能,包括分段上传。

S3 Transfer Acceleration 优化了 TCP 协议,并在客户端与 S3 存储桶之间添加了更多智能,因此如果需要更高的吞吐量,S3 Transfer Acceleration 就是更好的选择。如果您的对象小于 1GB,或者如果数据集小于 1GB,则应该考虑使用 Amazon CloudFront 的 PUT/POST 命令来优化性能。

如果客户拥有专用联网要求或者能访问 AWS Direct Connect 交换点,AWS Direct Connect 就是不错的选择。S3 Transfer Acceleration 最适合从分散的客户位置通过公共 Internet 提交数据,或者是由于网络条件不断变化而造成吞吐量较低的情况。有些 AWS Direct Connect 客户使用 S3 Transfer Acceleration 帮助远程办公室传输数据,因为远程办公室的 Internet 性能可能会比较差。

您可以受益于在第三方网关中配置存储桶目标以使用 S3 Transfer Acceleration 端点域。
请访问 Storage Gateway 常见问题的“文件”部分,详细了解 AWS 实施。

可以。直接连接到 Amazon S3 的软件包在将任务发送到 Amazon S3 时可以利用 S3 Transfer Acceleration。了解有关存储合作伙伴解决方案的更多信息 »

符合,AWS 已对其 HIPAA 合规性计划进行扩展,其中已将 S3 Transfer Acceleration 作为一项符合 HIPAA 要求的服务包括进来。如果您已与 AWS 签订商业合伙协议(BAA),则可以使用 S3 Transfer Acceleration 在您的客户端和 Amazon S3 存储桶之间快速、轻松且安全地远距离传输文件,包括受保护健康信息(PHI)。

安全性

全部打开

     Amazon S3 本身是非常安全的。 在创建时,只有您可以访问自己所创建的 Amazon S3 存储桶,而且您可以完全控制哪些人员拥有您的数据的访问权限。Amazon S3 支持用户身份验证,以控制对数据的访问。您可以使用各种访问控制机制,例如存储桶策略,选择性地向用户和用户组授予权限。Amazon S3 控制台会突出显示您可公开访问的存储桶,注明公开可访问性的来源,并且还会在您的存储桶策略或存储桶 ACL 发生的更改从而将使您的存储桶可公开访问时,向您发出警告。 您应该为不希望公开访问的所有账户和存储桶启用 Amazon S3 屏蔽公共访问权限。 默认情况下,所有新存储桶都开启了“屏蔽公共访问权限”。您可以使用 HTTPS 协议,通过 SSL 端点安全地向 Amazon S3 上传或从中下载数据。Amazon S3 会自动加密上传到您的存储桶的所有对象(截至 2023 年 1 月 5 日)。或者,您可以使用自己的加密库,在将数据存储到 Amazon S3 之前对数据进行加密。
有关 AWS 上的安全性的更多信息,请参阅 AWS 安全性页面,要了解 S3 安全性信息,请访问 S3 安全性页面S3 安全性最佳实践指南

客户可以使用一系列机制来控制对 Amazon S3 资源的访问,包括 AWS Identity and Access Management(IAM)策略、存储桶策略、接入点策略、访问控制列表(ACL)、查询字符串身份验证、Amazon Virtual Private Cloud(Amazon VPC)端点策略、AWS Organizations 中的服务控制策略(SCP)和 Amazon S3 屏蔽公共访问权限。

支持。客户可以选择配置 Amazon S3 存储桶,为所有针对该存储桶的请求创建访问日志记录。或者,需要在日志中捕获 IAM/用户身份信息的客户也可以配置 AWS CloudTrail 数据事件。这些访问日志记录可用于审计用途,其中包含有关请求的详细信息,例如请求类型、请求中指定的资源、处理请求的时间和日期。

Amazon S3 会加密上传到任何存储桶的所有新数据。Amazon S3 将 S3 托管的服务器端加密(SSE-S3)应用为所有对象上传的基本加密级别(截至 2023 年 1 月 5 日)。SSE-S3 提供了一种完全托管的解决方案,Amazon 通过其使用多个安全层处理密钥管理和密钥保护问题。如果您希望 Amazon 管理您的密钥,则应继续使用 SSE-S3。此外,您也可以选择使用 SSE-C、SSE-KMS、DSSE-KMS 或客户端库(例如 Amazon S3 加密客户端)对数据进行加密。 每个选项都可以将敏感的数据以静态方式存储在 Amazon S3 中。SSE-C 允许 Amazon S3 执行对象的加密和解密,同时让您保留对加密密钥的控制。借助 SSE-C,您无需实施或使用客户端库来对 Amazon S3 中储存的对象执行加密和解密,但是需要对您发送到 Amazon S3 中执行对象加密和解密操作的密钥进行管理。如果您希望保留自己的加密密钥而不想实施或使用客户端加密库时,请使用 SSE-C。SSE-KMS 允许 AWS Key Management Service(AWS KMS)管理您的加密密钥。使用 AWS KMS 管理您的密钥有几项额外的益处。利用 AWS KMS,会设置几个单独的 KMS 密钥使用权限,从而提供额外的控制层并防止 Amazon S3 中存储的对象遭到未授权访问。AWS KMS 提供审计跟踪记录,因此您能看到谁使用了您的密钥在何时访问了哪些对象,还能查看用户在没有解密数据的权限下所作的访问数据失败尝试次数。同时,AWS KMS 还提供额外的安全控制,从而支持客户努力符合 PCI-DSS、HIPAA/HITECH 和 FedRAMP 行业要求。DSSE-KMS 简化了对数据应用两层加密的过程,无需投资客户端加密所需的基础设施。每层加密都采用 256 位高级加密标准的不同实施结合 Galois Counter Mode(AES-GCM)算法,并且经过审查,可用于绝密工作负载。DSSE-KMS 使用 AWS KMS 生成数据密钥,并通过 AWS KMS 管理您的加密密钥。利用 AWS KMS,会设置几个单独的 KMS 密钥使用权限,从而提供额外的控制层并防止 Amazon S3 中存储的对象遭到未授权访问。AWS KMS 提供审计跟踪记录,因此您能看到谁使用了您的密钥在何时访问了哪些对象,还能查看用户在没有解密数据的权限下所作的访问数据失败尝试次数。同时,AWS KMS 还提供额外的安全控制,从而支持客户努力符合 PCI-DSS、HIPAA/HITECH 和 FedRAMP 行业要求。使用加密客户端库时,您保有对密钥的控制权并使用您选择的加密库对对象客户端进行加密和解密。一些客户倾向于对加密和解密对象拥有端到端的控制权;这样一来,只有经过加密的对象才会通过互联网传输到 Amazon S3。如果您想掌握对加密密钥的控制权,应该使用客户端库,这样便可实施或使用客户端加密库,同时在将对象传输到 Amazon S3 进行储存之前需要对其进行加密。有关使用 Amazon S3 SSE-S3、SSE-C 或 SSE-KMS 的更多信息,请参阅使用加密文档保护数据

客户可以选择使用欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(巴黎)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(伦敦)或欧洲(苏黎世)地区将所有数据存储在欧洲。您还可以使用 Amazon S3 on Outposts 将所有数据本地保留在 AWS Outpost,并且可以选择在 AWS Outposts 之间传输数据或将数据传输到 AWS 区域。您有责任确保自己遵守欧盟隐私法律。查看 AWS 通用数据保护条例(GDPR)中心AWS 数据隐私中心,了解更多信息。 如果有更具体的位置要求或者其他数据隐私法规要求您将数据保存在没有 AWS 区域的位置,您可以使用适用于 AWS 专用本地区域的 S3 存储类别或 S3 on Outposts。


默认情况下,您的对象数据和对象元数据保留在您放置对象的单个专用本地区域内。存储桶管理和遥测数据,包括存储桶名称、容量指标、CloudTrail 日志、CloudWatch 指标、来自 AWS Key Management Service(KMS)的客户托管密钥以及 Identity and Access Management(IAM)策略,都存储在父 AWS 区域中。或者,其他存储桶管理功能(如 S3 批量操作)将带有存储桶名称和对象名称的管理元数据存储在父 AWS 区域中。

Amazon S3 的 Amazon VPC 端点是 VPC 内的逻辑实体,允许通过 AWS 全局网络连接到 S3。S3 有两种类型的 VPC 端点 – 网关 VPC 端点和接口 VPC 端点。网关端点是您在路由表中指定的网关,用于通过 AWS 网络从 VPC 访问 S3。接口端点通过私有 IP 将请求从您的 VPC 内部、本地或其他 AWS 区域路由到 S3,从而扩展网关端点的功能。有关更多信息,请访问适用于 Amazon S3 的 AWS PrivateLink 文档

您可以使用 Amazon S3 存储桶策略,限制从特定 Amazon VPC 端点或一系列端点访问您的存储桶。S3 存储桶策略现在支持 aws:sourceVpce 条件,您可以利用此条件来限制访问。有关更多详细信息和示例策略,请参阅 S3 文档的网关端点。 


您可以使用 AWS VPC 管理控制台、AWS 命令行界面(AWS CLI)、AWS SDK 或 API 创建接口 VPC 端点。要了解更多信息,请访问文档

可以。如果您已经有网关 VPC 端点,请在 VPC 中创建接口 VPC 端点,并以 VPC 端点特定的端点名称更新客户端应用程序。例如,如果您接口端点的 VPC 端点 ID 在 us-east-1 区域中为 vpce-0fe5b17a0707d6abc-29p5708s,则特定于端点的 DNS 名称将为 vpce-0fe5b17a0707d6abc-29p5708s.s3.us-east-1.vpce.amazonaws.com。在这种情况下,仅针对 VPC 端点特定名称的请求将通过接口 VPC 端点路由到 S3,而所有其他请求将继续通过网关 VPC 端点路由。要了解更多信息,请访问文档

Amazon Macie 是一种支持 AI 技术的安全服务,可以帮助您通过自动发现、分类和保护存储在 Amazon S3 中的敏感数据来防止数据丢失。Amazon Macie 使用机器学习来识别敏感数据(例如,个人身份信息(PII)或知识产权),分配业务价值,提供此数据的存储位置信息及其在组织中的使用方式信息。Amazon Macie 可持续监控数据访问活动异常,并在检测到未经授权的访问或意外数据泄漏风险时发出警报。您可以使用 Amazon Macie 通过持续监控数据和账户凭证来防范安全威胁。Amazon Macie 为您提供一种自动化和低接触的方式来发现和分类业务数据。它通过模板化的 Lambda 函数进行控制,可在发现可疑行为或对实体或第三方应用程序进行未经授权的数据访问时撤销访问或触发密码重置策略。发出警报时,您可以使用 Amazon Macie 进行事件响应,并使用 Amazon CloudWatch Events 迅速采取行动,保护您的数据。有关更多信息,请访问 Amazon Macie 文档

Access Analyzer for S3 功能可帮助您在为 S3 存储桶和接入点设置、验证和优化策略时简化权限管理。 Access Analyzer for S3 可监控您的现有访问策略,以验证它们是否仅提供对 S3 资源的必要访问权限。Access Analyzer for S3 会评估您的存储桶访问策略,并帮助您发现并快速更改不需要访问的存储桶。 当您有一个存储桶配置为允许访问互联网上的任何人访问或与其他 AWS 账户共享时,Access Analyzer for S3 会向您发出警报。您可以获得有关公有或共享访问的来源和级别的结果。例如,如果通过访问控制列表或存储桶策略提供不必要的读取或写入访问权限,则 Access Analyzer for S3 会主动通知您。通过这些调查发现,您可以立即设置或还原所需的访问策略。在查看显示对存储桶的潜在共享访问权限的结果时,只需单击 S3 控制台,即可阻止对存储桶的公共访问。您还可以向下钻取到存储桶级别权限设置,以配置精细访问。 出于审核目的,您可将 Access Analyzer for S3 的结果下载为 CSV 报告。  此外,S3 控制台可以在您编写 S3 策略时报告 IAM Access Analyzer 中的安全警告、错误和建议。该控制台将会自动运行 100 多项策略检查,以验证您的策略。这些检查可以为您节约时间,指导您解决错误,并帮助您应用安全最佳实践。
有关更多信息,请访问 IAM Access Analyzer 文档

S3 访问授权

全部打开

Amazon S3 访问权限管控可以将 Active Directory 等目录中的身份或 AWS Identity and Access Management(IAM)主体映射到 S3 中的数据集。这可以帮助您根据最终用户的企业身份自动向其授予 S3 访问权限,从而大规模管理数据权限。此外,S3 Access Grants 会在 AWS CloudTrail 中记录最终用户身份和用于访问 S3 数据的应用程序。这有助于针对 S3 存储桶中的所有数据访问提供详细的审计历史记录,信息可以具体到最终用户身份。

如果您的 S3 数据由许多用户和应用程序共享和访问,而且他们的某些身份(例如 Okta 或 Entra ID)位于您的公司目录中,并且您需要一种可扩展、简单且可审核的方式来授予权限,则您应该使用 S3 访问授权来大规模访问这些 S3 数据集。

您可以通过四步开始使用 S3 访问授权。首先,配置 S3 访问授权实例。在此步骤中,如果您想对公司目录中的用户和群组使用 S3 访问授权,请启用 AWS Identity Center 并将 S3 访问授权连接到您的 Identity Center 实例。其次,使用 S3 访问授权注册一个位置。在此过程中,您将为 S3 访问授权提供一个 IAM 角色,该角色用于创建可供用户和应用程序访问 S3 的临时 S3 凭证。第三,定义权限授予,指定谁可以访问哪些内容。最后,在访问时,让您的应用程序向 S3 访问授权请求临时凭证,并使用访问授权提供的凭证来访问 S3。

S3 访问授权支持两种身份:来自 AWS Identity Center 的企业用户或群组身份,以及包括 IAM 用户和角色在内的 AWS IAM 主体。当您将 S3 访问授权与 AWS Identity Center 配合使用时,可以根据目录组成员身份定义数据权限。AWS Identity Center 是一项 AWS 服务,可连接到常用的身份提供程序,包括 Entra ID、Okta、Ping 等。除了通过 AWS Identity Center 支持目录身份之外,S3 访问授权还支持 AWS IAM 主体的权限规则,包括 IAM 用户和角色。这适用于以下使用案例:您不是通过 AWS Identity Center 而是通过 IAM 和 SAML 断言(示例实施)来管理自定义身份联合验证,或者基于 IAM 主体管理应用程序身份,但由于其可扩展性和可审计性而仍然希望使用 S3 访问授权。

S3 访问授权提供三种访问级别:READ、WRITE 和 READWRITE。READ 允许您查看和取回 S3 中的对象。WRITE 允许您对 S3 进行写入和删除。READWRITE 允许您执行读取和写入操作。

不可以。您只能使用 S3 访问授予提供的三个预定义访问级别(READ/WRITE/READWRITE)。

可以。每个 S3 访问授权实例最多可以创建 10 万个授权,每个 S3 访问授权实例最多可以创建 1000 个位置。

没有。从 S3 访问授权获取临时凭证的延迟与目前从 AWS STS 获取临时凭证的延迟相似。从 S3 访问授权获得凭证后,您可以在后续请求中重复使用未过期的凭证。对于这些后续请求,与其他方法相比,通过 S3 访问授权凭证进行身份验证的请求不会产生额外的延迟。

如果您打算对目录身份使用 S3 访问授权,则需要先设置 AWS IAM Identity Center。AWS IAM Identity Center 可帮助您创建或连接员工身份,无论这些身份是在 Identity Center 还是在外部第三方身份提供商中创建和存储。有关设置过程,请参阅 Identity Center 文档。设置 Identity Center 实例后,您可以将该实例连接到 S3 访问授权。此后,S3 访问授权依赖 Identity Center 取回用户属性(例如组成员身份)以评估请求并做出授权决策。

可以。如今,您使用与应用程序关联的 IAM 凭证(例如,EC2 的 IAM 角色凭证或 IAM Roles Anywhere;或使用长期 IAM 用户凭证)初始化 S3 客户端,而您的应用程序需要在初始化 S3 客户端之前先获取 S3 访问授权凭证。这些 S3 访问授权凭证将特定于您的应用程序中经过身份验证的用户。使用这些 S3 访问授权凭证初始化 S3 客户端后,它就可以照常使用这些凭证请求 S3 数据。

S3 访问授权目前已通过 S3A 连接器与 EMR 和开源 Spark 集成。此外,S3 访问授权还与 Immuta 和 Informatica 等第三方软件集成,因此您可以集中进行权限管理。最后,S3 访问授权支持 Terraform 和 CloudFormation,您可以通过编程方式配置 S3 访问授权。

S3 访问授权不可以取代 IAM,事实上,它可以与您现有的基于 IAM 的数据保护策略(加密、网络、数据边界规则)很好地配合。S3 访问授权基于 IAM 原语构建,使您能够大规模表达更细粒度的 S3 权限。

可以。要对使用 KMS 加密的对象使用 S3 访问授权,存储桶所有者需要将必要的 KMS 权限包含在 IAM 角色中,并在位置注册过程中将其授予 S3 访问授权。随后,S3 访问授权可以利用该 IAM 角色来访问存储桶中 KMS 加密的对象。

您可以使用 AWS 管理控制台中的 S3 访问授权控制台体验或开发工具包和 CLI API 来查看和管理您的 S3 访问授权权限。

不,您无法使用 S3 访问授权授予对数据的公开访问权限。

应用程序使用 S3 访问授权发起数据访问会话的请求将记录在 CloudTrail 中。CloudTrail 将区分发出请求的用户身份和代表用户访问数据的应用程序身份。这可以帮助您审核最终用户身份,了解谁在何时访问了哪些数据。

S3 访问授权根据 S3 访问授权请求的数量收费。请参阅定价页面了解详细信息。

AWS Lake Formation 适用于需要管理表数据(例如 Glue 表)访问的应用场景,在这些应用场景中,您可能希望强制执行行级和列级访问。S3 访问授权用于管理直接 S3 权限的访问,例如视频、图像、日志等非结构化数据。

不。S3 访问授权目前未与 IAM Access Analyzer 集成。您还无法使用 IAM Access Analyzer 来分析 S3 访问授权权限授予。客户可以通过转至 S3 控制台中的“S3 访问授权”页面直接审核 S3 访问授权,也可以通过编程方式使用 ListAccessGrants API 来进行审核。

S3 接入点

全部打开

Amazon S3 接入点是简化了使用 S3 的任何应用程序或 AWS 服务的数据访问管理的端点。S3 接入点可与 S3 存储桶和适用于 OpenZFS 的 Amazon FSx 文件系统配合使用。您可以通过创建具有为每个应用程序或用户量身定制的名称和权限的接入点,控制和简化不同应用程序或用户访问数据的方式。

将 S3 接入点与 S3 存储桶结合使用,您不再需要使用数以百计的需要编写、读取、跟踪和审计的不同权限规则来管理单个复杂的存储桶策略。相反,您可以为每个存储桶创建数百个接入点,每个接入点提供进入存储桶的自定义路径,具有唯一的主机名和访问策略,可对通过相应接入点发出的请求执行特定的权限和网络控制。

将 S3 接入点与适用于 OpenZFS 的 FSx 结合使用,您可以通过 S3 API 访问您的 FSx 数据,就好像数据在 S3 中一样。借助这项功能,您可以访问适用于 OpenZFS 的 FSx 中的文件数据,以便将其用于与 S3 配合使用的各种人工智能、机器学习、分析服务和应用程序,而您的文件数据会继续驻留在适用于 OpenZFS 的 FSx 文件系统上。

S3 接入点简化了对 S3 上的共享数据集的数据访问的管理过程。您不再需要使用数以百计的需要编写、读取、跟踪和审计的不同权限规则来管理单个复杂的存储桶策略。借助 S3 访问点,您可以创建访问点或将权限委托给受信任的账户,以在您的存储桶上创建跨账户访问点。这允许使用针对特定应用程序定制的策略访问共享数据集。使用访问点,您可以针对需要访问共享数据集的每个应用程序,将一个大型存储桶策略分解为多个单独的离散访问点策略。这样可以更轻松地集中精力为应用程序制定正确的访问策略,而不必担心打断共享数据集中任何其他应用程序正在执行的操作。您还可以创建服务控制策略(SCP),并要求将所有接入点都限制在虚拟私有云(VPC)中,从而通过防火墙将数据隔离在专用网络中。 

借助 S3 接入点,您可以使用 S3 API 访问适用于 OpenZFS 的 Amazon FSx 中的文件数据,而无需将数据移至 S3。附加到适用于 OpenZFS 的 FSx 文件系统的 S3 接入点的工作方式与附加到 S3 存储桶的 S3 接入点的工作方式类似,通过 S3 提供数据访问权限,并通过访问策略进行权限控制,而数据继续存储在适用于 OpenZFS 的 FSx 文件系统或 S3 存储桶中。例如,将 S3 接入点附加到适用于 OpenZFS 的 FSx 文件系统后,客户就可以将该接入点与生成式人工智能、机器学习和分析服务以及与 S3 配合使用的应用程序一起使用,以访问其适用于 OpenZFS 的 FSx 数据。

每个 S3 接入点都配置有特定于应用场景或应用程序的访问策略,一个存储桶可以有数千个接入点。例如,您可以为 S3 存储桶创建一个访问点,为数据湖的用户或应用程序组授予访问权限。访问点可以支持单个用户或应用程序,也可以支持账户内部或跨账户的一组用户或应用程序,因此可以对每个访问点进行单独管理。  此外,您可以将权限委托给受信任的账户,以在您的存储桶上创建跨账户访问点。在您获得存储桶拥有者的许可之前,跨账户访问点不会授予对数据的访问权限。  存储桶拥有者始终保留对数据的最终控制权,并且必须更新存储桶策略以授权来自跨账户访问点的请求。请访问用户指南以获取示例存储桶策略。每个访问点都与一个存储桶相关联,并包含一个网络源站控件和一个阻止公共访问控件。您可以创建带有网络源站控件的访问点,该控件仅允许从您的 Virtual Private Cloud(AWS 云的逻辑隔离部分)进行存储访问。您还可以创建一个访问点,将访问点策略配置为仅允许访问具有指定前缀的对象或具有特定标签的对象。您可以使用两种方式之一通过接入点访问共享存储桶中的数据。对于 S3 对象操作,您可以使用访问点 ARN 代替存储桶名称。对于要求存储桶名称使用标准 S3 存储桶名称格式的请求,您可以使用接入点别名。S3 访问点的别名是自动生成的,并且可以在您使用存储桶名称进行数据访问的任何位置与 S3 存储桶名称互换。每次为存储桶创建接入点时,S3 都会自动生成一个新的接入点别名。对于全套可兼容操作和 AWS 服务,请访问 S3 文档

默认情况下,您可以在账户和跨账户的存储桶上为每个账户的每个区域创建 10000 个 S3 接入点。每个 AWS 账户的 S3 接入点数量没有硬性限制。可访问服务配额申请提高此限额。

S3 接入点有其自己的 IAM 接入点策略。您可以使用访问点 ARN 作为资源,像编写存储桶策略一样编写访问点策略。访问点策略可以授权或限制访问通过访问点请求的 S3 数据。Amazon S3 会评估所有相关策略,包括关于用户、存储桶、接入点和 VPC 端点的策略,以及服务控制策略和访问控制列表,以决定是否要授权请求。

您可以使用策略文档中管理权限和接入点 ARN 的 IAM 规则编写接入点策略,就像编写存储桶策略一样。

您可以继续使用存储桶策略来限制对指定 VPC 的存储桶访问权限。访问点提供更简单可审核的方式,以便通过 API 控件将共享数据集中的全部数据或数据子集锁定到所在组织全部应用程序的仅限 VPC 流量。您可以使用 AWS Organizations 服务控制策略 (SCP) 强制将在您的组织中创建的任何访问点的“网络源站控件”API 参数值设置为 “vpc”。然后,任何创建的新访问点会自动将数据访问限制为仅限 VPC 流量。您无需其他访问策略来确保仅处理来自指定 VPC 的数据请求。

可以。要为组织内的所有访问点实施“无 Internet 数据访问”策略,您要确保所有访问点都仅支持 VPC 访问。要做到这一点,您将需要编写 AWS SCP,而且该 SCP 仅支持 create_access_point() API 中的“网络源站控件”参数的值为“vpc”。如果您在之前创建过任何面向 Internet 的访问点,它们可以被移除。您还需要在每个存储桶中修改存储桶策略,以便进一步限制 Internet 通过存储桶主机名直接访问您的存储桶。由于其他 AWS 服务可能直接访问您的存储桶,因此确保将访问权限设置为允许您想要的 AWS 服务,您可以通过修改策略,允许这些 AWS 服务进行访问。参阅 S3 文档以查看操作示例。

目前不可以,但您可以附加存储桶策略以拒绝并非通过接入点发出的请求。参阅 S3 文档以了解更多详细信息。

可以。如果您移除某个接入点,任何通过其他接入点和存储桶主机名对关联存储桶的访问都会被中断。

接入点和使用接入点的存储桶不会产生额外费用。一般的 Amazon S3 请求费率同样适用。

您可以通过 AWS 管理控制台、AWS 命令行界面(CLI)、应用程序编程接口(API)和 AWS 软件开发工具包(SDK)客户端,在新存储桶以及现有存储桶上创建 S3 接入点。要了解有关 S3 接入点的更多信息,请访问用户指南

持久性和数据保护

全部打开

Amazon S3 提供最持久的云端存储。基于其独特的架构,S3 设计为可提供 99.999999999%(11 个 9)的数据持久性。此外,默认情况下,S3 至少跨 3 个可用区(AZ)冗余存储数据,其内置弹性可应对大范围灾难。客户可以将数据存储在单个可用区中以最大限度地降低存储成本或延迟,也可以将数据存储在多个可用区中以防止整个数据中心永久丢失,或者将数据存储在多个 AWS 区域中以满足地理弹性要求。

Amazon S3 的持久性设计取决于存储设备故障率,以及 S3 检测故障并在这些设备上重新复制数据的速率。S3 会对每个对象上传进行端到端完整性检查,并验证所有数据均已正确、冗余地存储在多个存储设备上,然后才认为您的上传成功。将数据存储在 S3 中后,S3 会持续监控数据的持久性,并定期检查所有静态数据的完整性。S3 还会主动监控数据的冗余,以帮助验证您的对象是否能够容忍多个存储设备的并发故障。

当发生 AWS 可用区全部或部分丢失或损坏的极少数情况下,One Zone 存储类中的数据可能会丢失。例如,火灾和水灾等事件可能导致数据丢失。除了这些类型的事件外,One Zone 存储类使用与区域存储类别相似的工程设计来保护对象免受独立磁盘、主机和机架级故障的影响,并且每种类型都被设计为提供 99.999999999% 的数据持久性。

Amazon S3 拥有强大的持久性文化,我们的系统和软件在设计之初就融入了持久性最佳实践。与任何其他云提供商相比,AWS 在操作高持久性存储方面拥有更多的经验,我们利用这些经验来降低持久性风险,并将持久性保障措施纳入我们所做的一切工作中。

可以。Amazon S3 的持久性系统无法防止意外或恶意删除。S3 依靠客户自行决定要保留哪些数据、要删除哪些数据,以及需要哪些可选控制措施来防止意外或恶意的错误删除。当您告诉 Amazon S3 删除数据时,该数据会立即被删除,且 AWS 无法恢复。以这种方式处理删除请求是该服务的一个重要特征。

除了 S3 自动提供的持久性之外,您还可以使用 S3 对象版本控制、S3 复制和 S3 对象锁定等可选功能来增加额外的数据保护。此外,您还可以使用备份应用程序来备份 S3 存储桶中的全部或部分数据。


Amazon S3 结合使用 Content-MD5 校验和、安全哈希算法(SHA)和循环冗余检验(CRC)来验证数据完整性。Amazon S3 对静态数据执行这些校验和检测,并使用冗余数据修复任何不一致。此外,最新的 AWS SDK 会自动为所有上传计算基于 CRC 的有效校验和。 S3 会独立验证该校验和,并且仅在确认通过公共互联网传输的数据保持了数据完整性后才接受对象。如果使用不提供预先计算的校验和的 SDK 版本上传对象,S3 会计算整个对象基于 CRC 的校验和,即使是分段上传也不例外。校验和存储在对象元数据中,因此可随时用于验证数据完整性。您可以从五种受支持的校验和算法中进行选择,以便对您的上传和下载请求进行数据完整性检查。您可以选择 SHA-1、SHA-256、CRC32、CRC32C 或 CRC64NVME 校验和算法,具体取决于您的应用程序需求。您可以在存储或取回 S3 中的数据时自动计算和验证校验和,并且可以随时使用 HeadObject S3 API、GetObjectAttributes S3 API 或 S3 清单报告访问校验和信息。在您将数据流式传输到 S3 时计算校验和可以为您节省时间,因为您可以在一次操作中同时验证和传输数据,而无需执行两个连续的操作。在数据验证中使用校验和是检查数据持久性的最佳实践,这些功能提高了性能并降低了相应操作的成本。

通过版本控制,您可以保留、提取和恢复存储在 Amazon S3 存储桶中的每个数据对象的每个版本。一旦您为存储桶启用版本控制,Amazon S3 将在您每次执行 PUT、POST、COPY 或 DELETE 操作时保留现有数据对象。默认情况下,GET 请求将提取最近写入的版本。可通过在请求中指定版本,提取已覆盖数据对象或已删除数据对象的旧版本。

Amazon S3 为客户提供具有高持久性的存储基础设施。版本控制可在客户意外覆盖或删除数据对象的情况下提供一种恢复手段,从而提供另一层保护。这使您能够从无意用户操作或应用程序故障中轻松恢复。您还可将版本控制用于数据留存和存档。

您可以通过在 Amazon S3 存储桶上启用相应设置,来开始使用版本控制。有关如何启用版本控制的更多信息,请参阅 Amazon S3 文档

当用户对某个对象执行 DELETE 操作时,后续的简单(不受版本控制)请求将不再取回该对象。但是,该数据对象的所有版本将继续保留在您的 Amazon S3 存储桶中,可以提取或恢复。只有 Amazon S3 存储桶的拥有者才能永久删除某个版本。您可以设置生命周期规则来管理生命周期和存储对象的多个版本的成本。

您可以使用 Amazon S3 生命周期规则S3 版本控制来实施 S3 对象的回滚时段。例如,借助启用了版本控制的存储桶,您可以设置一条规则,将以前的所有版本归档到成本较低的 S3 Glacier Flexible Retrieval 存储类,并在 100 天后删除它们,从而给您 100 天的时间来回滚对数据的任何更改,同时降低存储成本。此外,您也可以通过在 5 天后以及至少有 2 个较新版本的对象时删除旧(非当前)版本的对象来节约成本。您可以根据成本优化需要更改天数或更新版本的数量。这使您可以在需要时保留其他版本的对象,但通过在一段时间后转换或删除它们来节约成本。

版本控制的多重身份验证(MFA)可使用删除功能来增添一层安全性。默认情况下,对您的 Amazon S3 存储桶的所有请求都需要您的 AWS 账户证书。如果您在 Amazon S3 存储桶上利用 MFA Delete 功能启用了版本控制,则需要以下两种形式的身份验证才能永久删除数据对象的某个版本:您的 AWS 账户凭证、来自您拥有的身份验证设备的有效六位代码和序列号。要了解有关利用“MFA 删除”功能启用版本控制的更多信息,包括如何购买和激活身份验证设备,请参阅 Amazon S3 文档

正常 Amazon S3 费率适用于存储或请求的数据对象的每个版本。例如,我们以下列场景为例,说明使用版本控制时的存储费用(假定当月有 31 天):1) 当月第 1 天:您对存储桶中的 4GB(4294967296 字节)数据执行了 PUT 操作。
2) 当月第 16 天:您对同一存储桶中的 5GB(5368709120 字节)数据执行了 PUT 操作,使用与第 1 天的原始 PUT 操作相同的密钥。

分析上述操作的存储费用时,请注意,在第 15 天写入 5GB 数据对象时,第 1 天的 4GB 数据对象并未从存储桶删除。相反,这 4GB 数据对象作为旧版本保留,5GB 数据对象成为存储桶中的最近写入的数据对象版本。当月底:总字节小时使用量
[4294967296 字节 x 31 天 x(24 小时/天)] + [5368709120 字节 x 16 天 x(24 小时/天)] = 5257039970304 字节小时。转换为 GB 月:
5257039970304 字节-小时 x(1GB/1073741824 字节)x(1 月/744 小时)= 6.581GB 月成本。根据 Amazon S3 定价页面上列出的您所在区域的当前费率计算得出。

Amazon S3 对象锁定是 Amazon S3 的一项功能,可以在固定的时间内或无限期地阻止删除或覆盖对象版本,让您能够通过实施保留策略来进一步保护数据或满足监管要求。您可将工作负载从现有的“一次写入,多次读取”(WORM) 系统迁移到 Amazon S3,并在对象级别或存储桶级别配置 S3 对象锁定,防止在预定义的保留到期日期或无限期(依法保留日期)之前删除对象版本。无论对象版本在哪个存储类中,S3 对象锁定保护都将保留,并且会在存储类之间的整个 S3 生命周期转换期间保留。  仅当法规要求规定您的数据必须能够防蠕虫时,或者您希望在 Amazon S3 中为数据额外添加一层保护时,才应使用 S3 对象锁定。S3 对象锁定可以帮助您满足规定数据应以不可变格式存储的法规要求,还可保护 Amazon S3 中的数据,使其免遭意外或恶意删除。
如需了解更多信息,请访问 S3 对象锁定用户指南

Amazon S3 对象锁定阻止在指定的保留期间内删除对象版本,或者无限期地删除对象版本,直到依法保留被移除。使用 S3 对象锁定,您能够确保对象版本在应用 WORM 保护期间保持不可变。可通过使用 AWS 开发工具包、CLI、REST API 或 S3 管理控制台为对象版本分配保留到期日期或依法保留日期来应用 WORM 保护。可在 PUT 请求内应用保留设置,或在创建对象后对现有对象应用这些设置。“保留到期日期”定义对象版本将保持不变的时间长度。为对象分配“保留到期日期”后,在保留到期日期之前将无法修改或删除该对象版本。如果用户在“保留到期日期”之前尝试删除对象,操作将被拒绝。或者,您也可以通过应用依法保留来使对象不可变。依法保留阻止对象版本被无限期地修改或删除,直到它被明确移除。为了施加和删除依法保留,您的 AWS 账户必须拥有 PutObjectLegalHold 操作的写入权限。依法保留可以应用于启用了 S3 对象锁定的存储桶中的任何对象,无论该对象当前是否在 WORM 保护的保留期内。
S3 对象锁定可以在两种模式之一中配置。在监管模式中部署时,具有特定 IAM 权限的 AWS 账户可以从对象版本上移除 WORM 保护。如果您需要更强的不变性以遵守法规,可以使用合规模式。在合规模式中,任何用户都不能移除 WORM 保护,包括根账户。



不能,启用 S3 对象锁定后,您将无法禁用存储桶的 S3 对象锁定或 S3 版本控制。


要开始使用 S3 复制从启用了 S3 对象锁定的存储桶复制对象,您可以通过在相同或不同的 AWS 区域以及相同或不同的 AWS 账户中指定目标存储桶,在源存储桶上添加复制配置。您可以选择在 S3 存储桶级别复制所有对象,也可以在共享前缀级别或使用 S3 对象标签的对象级别筛选对象。您还需要指定具有执行复制操作所需权限的 AWS Identity and Access Management(IAM)角色。您可以使用 S3 控制台、AWS API、AWS CLI、AWS SDK 或 AWS CloudFormation 来启用复制,并且必须为源存储桶和目标存储桶启用 S3 版本控制。此外,要从启用了 S3 对象锁定的存储桶复制对象,您的目标存储桶也必须启用 S3 对象锁定。有关更多信息,请参阅有关设置 S3 复制以及将 S3 对象锁定与 S3 复制结合使用的文档。 


是的,要从启用了 S3 对象锁定的存储桶复制对象,您需要在用于设置复制的 IAM 角色中的源存储桶上授予两个新权限:s3:GetObjectRetention 和 s3:GetObjectLegalHold。或者,如果 IAM 角色具有 s3:Get* 权限,则它满足要求。有关更多信息,请参阅有关将 S3 对象锁定与 S3 复制结合使用的文档


否,从 S3 对象锁定存储桶复制时,支持 S3 复制的所有功能,例如 S3 Same-Region Replication(S3 SRR)、S3 Cross-Region Replication(S3 CRR)、用于跟踪进度的 S3 复制指标S3 Replication Time Control(S3 RTC)S3 批量复制


您可以使用 S3 批量复制从启用了 S3 对象锁定的存储桶中复制现有对象。有关复制现有对象的更多信息,请参阅有关 S3 批量复制的文档。


存储类别

全部打开

Amazon S3 提供了一系列存储类别,您可以根据工作负载的数据访问、弹性和成本要求进行选择。S3 存储类专门用于为不同的访问模式提供最低成本的存储。S3 存储类几乎适用于任何用例,包括具有苛刻性能需求、数据驻留要求、未知或不断变化的访问模式或归档存储的用例。每个 S3 存储类都收取存储数据和访问数据的费用。在决定哪种 S3 存储类别最适合您的工作负载时,考虑数据的访问模式和保留时间,以便在您的数据的生命周期内优化最低总成本。


在决定哪种 S3 存储类别最适合您的工作负载时,考虑数据的访问模式和保留时间,以便在您的数据的生命周期内优化最低总成本。很多工作负载都有不断变化(用户生成内容)、不可预测(分析、数据湖),或未知的(新应用程序)访问模式,这是为什么应该选择 S3 Intelligent-Tiering 作为默认存储类以自动节省存储成本的原因。如果知道您的数据的访问模式,您可以遵循此指导。S3 Standard 存储类适用于经常访问的数据;如果您每个月访问数据超过一次,它便是您的最佳选择。S3 Standard-Infrequent Access 是保留至少一个月,而且每一两个月就要访问一次的数据的理想之选。Amazon S3 Glacier 存储类专为数据归档而构建,旨在为您提供具有最高性能、最大取回灵活性和最低成本的云归档存储。现在,您可以从针对不同访问模式和存储持续时间优化的三种归档存储类中进行选择。对于需要即时访问的归档数据,例如医学图像、新闻媒体资产或基因组学数据,请选择 S3 Glacier Instant Retrieval 存储类,这种归档存储类可提供最低的存储成本及毫秒级取回速度。对于不需要立即访问但需要灵活地免费取回大量数据的归档数据,例如备份或灾难恢复使用场景,请选择 S3 Glacier Flexible Retrieval,它可在几分钟内取回,也可以在 5-12 小时内进行免费批量取回。要使长期归档存储(例如合规性归档和数字媒体保留)实现更大的成本节省,请选择 S3 Glacier Deep Archive,这是成本最低的云存储,数据取回时间不超过 12 小时。所有这些存储类都通过以冗余方式将数据存储于一个 AWS 区域的多台设备和物理分隔的 AWS 可用区,提供多可用区 (AZ) 弹性。

对于具有较低弹性要求的数据,您可以通过选择单可用区存储类(如 S3 One Zone-Infrequent Access)来降低成本。如果现有 AWS 区域无法满足您的数据驻留或隔离要求,您可以使用适用于 AWS 专用本地区域的 S3 存储类别或 S3 on Outposts 机架将数据存储在特定边界内。

S3 Intelligent-Tiering

全部打开

S3 Intelligent-Tiering 是首个云存储,它可以根据访问频率自动将数据移至最经济实惠的访问层,从而自动在细粒度对象级别降低您的存储成本,并且不会产生性能影响、取回费用或运营开销。S3 Intelligent-Tiering 可以为频繁、不频繁和归档即时访问层中的频繁、不频繁以及很少访问的数据提供毫秒级延迟和提高吞吐量性能。每月只需支付少量的对象监控和自动化费用,S3 Intelligent-Tiering 即可监控访问模式并将对象从一个访问层自动移动到另一个访问层。S3 Intelligent-Tiering 没有任何取回费用,因此在访问模式发生变化时存储账单不会意外增加。现在,您可以通过虚拟方式将 S3 Intelligent-Tiering 用作任何工作负载(尤其是数据湖、数据分析、机器学习、新应用程序和用户生成的内容)的默认存储类别。

Amazon S3 Intelligent-Tiering 存储类别旨在当访问模式改变时,通过自动将数据移动到最具成本效益的访问层来优化存储成本。每月只需支付少量的对象监控和自动化费用,S3 Intelligent-Tiering 即可监控访问模式并自动将连续 30 天未被访问的对象移动到不频繁访问层,最多可节省 40% 的存储成本。在连续 90 天未访问以后,对象会被移动到归档即时访问层以最多节省 68% 的存储成本。性能不会受到影响,而且 S3 Intelligent-Tiering 没有取回费用。如果之后访问了不频繁访问层或归档即时访问层中的对象,则其会被自动移回频繁访问层。要为可异步访问的数据实现最低存储成本,您可以选择激活其他归档功能。在您启用一个或两个异步归档访问层后,S3 Intelligent-Tiering 会将至少 90 天未被访问的对象移动到归档访问层,以节省高达 71% 的成本,然后在 180 天无访问后,将其移动到深度归档访问层,以便为很少访问的对象实现高达 95% 的节省。如果可选归档或深度访问层当中的对象在之后被还原,它将被移回到频繁访问层,而且在可以取回前,您必须先使用 RestoreObject 还原该对象。有关恢复归档对象的信息,请参阅恢复归档对象。S3 Intelligent-Tiering 没有取回费用。在 S3 Intelligent-Tiering 存储类中的访问层之间移动对象时,不会产生额外的分层或生命周期费用。

S3 Intelligent-Tiering 没有最小对象大小,但小于 128KB 的对象没有资格进行自动分层。这些较小的对象可以存储在 S3 Intelligent-Tiering 中,但将始终按频繁访问层费率收费,不收取监控和自动化费用。如果您想要将 S3 Intelligent-Tiering 标准化为新创建数据的默认存储类,则可以通过在 S3 PUT API 请求标头上指定 INTELLIGENT-TIERING 来修改应用程序。S3 Intelligent-Tiering 旨在提供 99.9% 的可用性和 99.999999999% 的持久性,并自动提供与 S3 Standard 相同的低延迟和高吞吐量性能。您可以使用 AWS Cost Explorer 成本管理服务来评估使用归档即时访问层所能实现的节省。

现在,您可以通过虚拟方式将 S3 Intelligent-Tiering 用作任何工作负载(尤其是数据湖、数据分析、机器学习、新应用程序和用户生成的内容)的默认存储类别。S3 Intelligent-Tiering 是首个云存储,它可以根据访问频率自动将数据移至最经济实惠的访问层,从而自动在细粒度对象级别降低您的存储成本,并且不会产生性能影响、取回费用或运营开销。如果您有访问模式未知或不断变化的数据,包括数据湖、数据分析和新应用程序,我们建议使用 S3 Intelligent-Tiering。如果您有不需要立即取回的数据,我们建议激活深度归档访问层,因此您只需要为可能长时间很少访问的数据支付每 TB 每月 1 USD。S3 Intelligent-Tiering 适用于访问模式未知或不断变化的数据。在使用 S3 Intelligent-Tiering 存储类别时不会产生取回费用。

S3 Intelligent-Tiering 会自动优化您的存储成本,而不会影响您的性能。S3 Intelligent-Tiering 的频繁、不频繁和归档即时访问层提供毫秒级延迟和高吞吐量性能。

针对可异步访问的数据,可选归档访问层具有与 S3 Glacier Flexible Retrieval 相同的性能,而深度归档访问层具有与 S3 Glacier Deep Archive 存储类别相同的性能。若您的应用程序可以等待几分钟至数小时,您应该只激活异步归档功能。如果您取回的对象存储在归档或深度归档访问层中,您必须先使用 RestoreObject 恢复对象后才能取回对象。有关恢复归档对象的信息,请参阅恢复归档对象。归档访问层中的对象将在 3-5 小时内移至频繁访问层,如果它们在深度归档访问层中,则在 12 小时内移至频繁访问层。如果需要更快地访问存档访问层中的对象,则可以使用控制台选择加快的取回速度选项,为更快的取回速度付费。

与 S3 Standard 存储类别相同,S3 Intelligent-Tiering 专为 99.999999999% 的持久性而设计。S3 Intelligent-Tiering 设计用于提供 99.9% 的可用性,并附带服务等级协议,当在任意账单周期内的可用性低于我们的服务承诺时,还可提供服务积分。

有两种方式可以将数据存入 S3 Intelligent-Tiering。可以通过指定 x-amz-存储类标头中的 INTELLIGENT_TIERING 来直接放入 S3 Intelligent-Tiering 中,也可以设置生命周期策略以将对象从 S3 Standard 或 S3 Standard-IA 转换到 S3 INTELLIGENT_TIERING。

S3 Intelligent-Tiering 会向您收取月度存储费用、请求和数据传输费用,还会对每个对象的监控和自动化向您收取很少的月服务费。S3 Intelligent-Tiering 存储类自动将对象存储在三个访问层中:按 S3 Standard 存储费率定价的频繁访问层、按 S3 Standard-Infrequent Access 存储费率定价的不频繁访问层,以及按 S3 Glacier Instant Retrieval 存储费率定价的归档即时访问层。S3 Intelligent-Tiering 还有两个专为异步访问设计的可选归档层,按 S3 Glacier Flexible Retrieval 存储费率定价的归档访问层和按 S3 Glacier Deep Archive 存储费率定价的深层归档访问层。

对于小额监控和自动化费用,S3 Intelligent-Tiering 会监控访问模式并自动移动对象到低延迟、高吞吐量访问层,以及两个可选异步归档访问层,客户可以借此在云中为可异步访问的数据实现最低存储成本。

S3 Intelligent-Tiering 没有最小可计费对象大小,但小于 128KB 的对象没有资格进行自动分层。 这些小型对象将不受监控,并将始终按频繁访问层费率收费,没有监控和自动化费用。对于在 S3 Intelligent-Tiering 中归档到归档访问层或深度归档访问层的每个对象,Amazon S3 为对象名称和其他元数据使用 8KB 的存储空间(按 S3 Standard 存储费率计费),为索引和相关元数据使用 32KB 的存储空间(按 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储费率计费)。

否。S3 Intelligent-Tiering 没有取回费用。S3 Intelligent-Tiering 会监控您的数据的访问模式,而且如果您访问不频繁访问、归档即时访问或异步归档层中的对象,S3 Intelligent-Tiering 会自动移动该对象到频繁访问层。


要访问存档或深度存档访问层中的对象,您需要发出“还原”请求,该对象将开始移回到频繁访问层,所有对象都存储在 S3 Intelligent-Tiering 存储类别中。存档访问层中的对象将在 3-5 小时内移至频繁访问层,深度存档访问层中的对象将 12 小时内移至频繁访问层。一旦对象位于频繁访问层中,您就可以发出 GET 请求以取回对象。

您可以使用 Amazon S3 清单来针对存储在 S3 Intelligent-Tiering 存储类别中的对象的访问层生成报告。Amazon S3 清单提供 CSV、ORC 或 Parquet 输出文件,从而每日或每周为 S3 存储桶或共享前缀列出您的对象及其相应的元数据。您还可以对您的对象提出 HEAD 请求,以报告 S3 Intelligent-Tiering 归档访问层。

可以。您可以将对象的生命周期从 S3 Intelligent-Tiering 频繁访问、不频繁和归档即时访问层转换到 S3 One-Zone Infrequent Access、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。此外,您可以将对象的生命周期从 S3 Intelligent-Tiering 可选归档访问层转换到 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive,从 S3 Intelligent-Tiering 深度归档访问层转换到 S3 Glacier Deep Archive。

没有。S3 Intelligent-Tiering 存储类别没有最短存储期限。

不会。S3 Intelligent-Tiering 存储类别没有最小可计费对象大小,但小于 128KB 的对象没有资格进行自动分层。这些较小的对象将始终按频繁访问层费率收费,没有监控和自动化费用。对于在 S3 Intelligent-Tiering 中归档到可选的归档访问层或深度归档访问层的每个对象,Amazon S3 为对象名称和其他元数据使用 8KB 的存储空间(按 S3 Standard 存储费率计费),为索引和相关元数据使用 32KB 的存储空间(按 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储费率计费)。如需更多详细信息,请访问 Amazon S3 定价页面。 

S3 Standard

全部打开

Amazon S3 Standard 为频繁访问的数据(通常每个月一次以上)提供具有毫秒级访问延迟和高吞吐量性能的持久性存储。S3 Standard 专为性能敏感型使用案例而设计,如数据湖、云原生应用程序、动态网站、内容分发、移动和游戏应用程序、分析和机器学习模型。S3 Standard 的设计可以在指定年度内跨多个可用区实现 99.99% 的数据可用性和 99.999999999% 的对象持久性。您可以使用 S3 生命周期策略来控制数据在 S3 Standard 和较低成本存储类别之间转移的具体时间,而不对应用程序做任何更改。

S3 Standard 非常适用于最频繁访问或修改的数据,这些数据要求以毫秒级且高吞吐量性能进行访问。由于不会产生取回费用,因此 S3 Standard 是经常读取或写入数据的理想选择。S3 Standard 针对各种应用场景进行了优化,包括数据湖、云原生应用程序、动态网站、内容分发、移动和游戏应用程序以及分析。

S3 Express One Zone

全部打开

Amazon S3 Express One Zone 存储类是一款高性能的专用单可用区 Amazon S3 存储类,可为客户对延迟最敏感的应用程序提供稳定的毫秒级数据访问性能。Amazon S3 Express One Zone 存储类是现有的延迟最低的云对象存储类,与 Amazon S3 Standard 相比,数据访问速度最多可提高 10 倍,请求成本最多可降低 80%。 借助 S3 Express One Zone,您可以在 AWS 区域内选择特定的 AWS 可用区来存储您的数据。您可以选择将存储和计算资源放在同一可用区中,以进一步优化性能。

S3 Express One Zone 是需要为延迟敏感型应用提供最快的数据访问速度和最高性能的应用程序的理想存储类别。S3 Express One Zone 是适合请求密集型操作(例如机器学习(ML)训练和推理、交互式分析以及媒体内容创建)的最佳存储类别。

您可以先在所选 AWS 可用区(AZ)中创建一个 S3 目录存储桶。您可以选择将存储和计算资源放在同一可用区中,以进一步优化性能。 默认情况下,目录存储桶已开启“S3 屏蔽公共访问权限”。创建目录存储桶后,您可以直接将对象上传到 S3 Express One Zone 存储类,或者将对象从现有 S3 存储类复制到 S3 Express One Zone。您还可以通过在 AWS 管理控制台中单击一下,将数据导入到 S3 Express One Zone 中,或使用 S3 批量操作将整个存储桶、前缀或数据子集从现有 S3 存储类别复制到 S3 Express One Zone 中。

创建目录存储桶后,您可以使用“导入”选项,通过 S3 控制台将同一 AWS 区域内的数据导入到 S3 Express One Zone 存储类中。导入功能让您可以选择要从中导入数据的前缀或存储桶,而无需指定要单独复制的所有对象,从而简化了将数据复制到 S3 目录存储桶的过程。S3 批量操作会复制所选前缀或通用存储桶中的对象,您可以通过 S3 批量操作作业详细信息页面监控导入复制作业的进度。

S3 Express One Zone 对象存储在您选择的单个 AWS 可用区(AZ)中。将对象存储在一个区域中,您就可以将数据存储在计算本地,从而最大限度地减少延迟。尽管这会增加延迟,但您可以跨可用区访问数据。

S3 Express One Zone 提供与其他 S3 存储类别相似的性能弹性,但具有稳定的毫秒级第一字节读取和写入延迟请求延迟,最多比现有 S3 存储类别快 10 倍。借助 S3 Express One Zone,客户无需提前规划或预置容量或吞吐量需求,即可立即受益于提高一个数量级的请求完成速度。S3 Express One Zone 非常适合存储延迟可加快作业完成速度并降低总体 TCO 的分析作业。同时,它也非常适合视频编辑等交互式工作负载,在这些工作负载中,创意专业人士需要以最快的响应速度访问其 S3 数据。

S3 Express One Zone 使用独特的架构,可优化性能并提供稳定的低请求延迟。S3 Express One Zone 将数据存储在高性能硬件上,其对象协议已得到增强,可简化身份验证和元数据开销。此外,为了进一步提高访问速度并支持每秒多达 200 万个请求,数据存储在新的存储桶类型(Amazon S3 目录存储桶)中。 借助 S3 Express One Zone,您可以在 AWS 区域内选择特定的 AWS 可用区来存储您的数据。您可以选择将存储和计算资源放在同一可用区中,以进一步优化性能。

每个 S3 目录存储桶每秒最多可支持 200 万次读取和 20 万次写入,这与存储桶内的目录数量无关。 默认情况下,每个 S3 目录存储桶每秒最多支持 20 万次读取和 10 万次写入。如果您的工作负载需要高于默认的 TPS 限制,您可以通过 AWS Support 申请提高限制。

在至少 3 个月内没有请求活动的 S3 目录存储桶将过渡到非活动状态。处于非活动状态的目录存储桶暂时无法进行读取和写入。非活动存储桶将保留所有存储、对象元数据和存储分区元数据。现有的存储费用将适用于非活动存储桶。非活动存储桶收到访问请求时,通常会在几分钟内过渡到活动状态。在此过渡期间,读取和写入操作将返回 503 SlowDown 错误代码。

S3 Express One Zone 提供与其他 Amazon S3 存储类别类似的高弹性吞吐量。S3 Express One Zone 的设计从一开始就允许个人客户将吞吐量提升到非常高的聚合水平。例如,机器学习模型训练应用程序可以针对数百万个对象和 PB 级数据进行训练。您可以通过将这些请求分散到单独的连接上以最大化可访问的带宽来实现最高性能。

借助 S3 Express One Zone,您可以通过一种新的基于会话的机制(S3 CreateSession)来对请求进行身份验证和授权,该机制经过优化,可提供最低的延迟。您可以使用 CreateSession 请求临时凭证,以实现对存储桶的低延迟访问。这些临时凭证的范围仅限于特定的 S3 目录存储桶。有关此基于会话的模型的更多信息,请参阅开发人员指南中的 S3 创建会话

S3 Express One Zone 旨在在单个可用区内提供 99.95% 的可用性,可用性 SLA 为 99.9%。

借助 S3 Express One Zone,您的数据可以在单个可用区内的多个设备上冗余存储。S3 Express One Zone 旨在通过快速检测和修复任何丢失冗余,从而抵御同时发生的设备故障。这意味着,如果现有设备遇到故障,S3 Express One Zone 会自动将请求转移到可用区内的新设备。这种冗余可以实现对可用区内数据的不间断访问。

开始使用 S3 Express One Zone 时,没有安装费,也无需订立合约。S3 Express One Zone 向您收取存储和请求费用。每月计费的存储量是根据每小时使用的总存储量累积的,以每月千兆字节计(即 GB-月)。您还需要根据请求类型(例如 PUT 和 GET)支付每次访问请求的费用。您还需要按数据量(GB)为数据上传和检索额外付费。示例 1:
假设您在 S3 Express One Zone 中存储 10GB 的数据,持续 30 天,总共进行了 100 万次写入和 900 万次读取,使用 Athena 进行访问,请求大小为 10KB。然后,您将在 30 天结束时删除 100 万个文件。假定您的存储桶位于美国东部(弗吉尼亚州北部)区域,则存储和请求费用按以下方式计算:存储费用
总字节小时使用量 = 10GB-月
总存储成本 = 每月 10GB x 0.11 美元 = 1.10 美元的请求费用
100 万个 PUT 请求:100 万个请求 x 0.00113 美元/1000 = 1.13 美元
900 万个 GET 请求:900 万个请求 x 0.00003 美元/1000 = 0.27 美元
100 万个删除请求 = 100 万个请求 x 0.00 美元(免费)= 0 美元数据上传费用:10KB/1048576 x 1000000 x 0.0032 美元 = 0.03 美元
数据检索费用:10 KB / 1048576 × 900 万 × 0.0006 美元 = 0.05 美元
总费用 = 1.10 美元 + 1.13 美元 + 0.27 美元 + 0.03 美元 + 0.05 美元 = 2.58 美元。示例 2:
假设您每天为 8 小时的工作负载存储 10TB 的机器学习训练数据,然后将其删除。在 8 小时的工作负载期间,您以 2MB 的请求大小进行了 5242880 次写入和 10485760 次读取。假设您这样持续操作了 30 天(一个月)。存储费用
总字节小时使用量 = [10995116277760 字节 x 30 天 x(8 小时/天)] = 2638827906662400 字节小时 = 3303.77GB-月
总存储成本 = 3303.77GB x 0.11 美元 = 363.41 美元的请求费用
每天 524.288 万个 PUT 请求:524.288 万个请求 x 30 x 0.00113 美元/1000 = 177.73 美元
每天 1048.576 万个 GET 请求:1048.576 万个请求 x 30 天 x 0.00003 美元/1000 = 9.44 美元
每天 524.288 万个删除请求:524.288 万个请求 x 0.00 美元(免费)= 0 美元数据上传费用:2MB/1024 x 5242880 x 30 x 0.0032 美元 = 983.04 美元
数据检索费用:2MB/1024 × 1048.576 万 × 30 × 0.0006 美元 = 368.64 美元
总费用 = 363.41 美元 + 177.73 美元 + 9.44 美元 + 983.04 美元 + 368.64 美元 = 1902.26 美元

访问 S3 Express One Zone 中数据的请求费用包括在某个区域的 AWS 网络内传输数据的费用,对于在同一区域内的 Amazon EC2(或任何 AWS 服务)和 S3 Express One 区域之间传输的数据,例如在美国东部(弗吉尼亚州北部)区域内传输的数据,不收取额外的数据传输费用。

访问 S3 Express One Zone 中的数据的请求费用包括使用网关 VPC 端点的成本,并且在 S3 Express One Zone 中使用网关端点无需额外付费。

S3 Standard-Infrequent Access(S3 Standard-IA)

全部打开

Amazon S3 Standard-Infrequent Access(S3 Standard-IA)是一种 Amazon S3 存储类别,用于不常访问但在需要时要求快速访问的数据。S3 Standard-IA 提供了 Amazon S3 Standard 存储类的高持久性、高吞吐量和低延迟,每 GB 存储价格和每 GB 取回费用都比较低。成本较低且性能出色使得 S3 Standard-IA 成为长期存储和备份的理想选择,也非常适用于灾难恢复的数据存储。S3 Standard-IA 存储类别是在对象级别进行设置的,并且可以与 S3 Standard 或 S3 One Zone-IA 存储类别存在于同一个存储桶中,从而让您可以使用 S3 生命周期策略在存储类别之间自动转移对象,而无需更改任何应用程序。

S3 Standard-IA 适用于不常访问但在需要时要求快速访问的数据。S3 Standard-IA 非常适合长期文件存储、较旧的同步和共享存储以及其他老化数据。

S3 Standard-IA 提供与 S3 Standard 存储类别相同的延迟和高吞吐量性能。 

有两种方式可以将数据存入 S3 Standard-IA。通过在 x-amz-storage-class 标头中指定 STANDARD_IA,您可以通过 PUT 操作直接将数据放入 S3 Standard-IA。您还可以设置生命周期策略,将对象从 S3 Standard 转移到 S3 Standard-IA 存储类别。

S3 Standard(目标存储类别)COPY 请求和 S3 Standard-IA(源存储类别)数据取回将产生费用。有关更多信息,请访问 Amazon S3 定价页面

S3 Standard-IA 专为长时间运行但不经常访问的数据(已保留了数月或数年)而设计。在 30 天内从 S3 Standard-IA 删除的数据将按完整的 30 天收费。请参阅 Amazon S3 定价页面,获取有关 S3 Standard-IA 定价的信息。

S3 Standard-IA 专为较大的对象而设计,其最小对象存储大小为 128KB。小于 128KB 的对象将产生存储费用,并按 128KB 计费。比如,S3 Standard-IA 存储类中 6KB 的对象将产生 6KB 的 S3 Standard-IA 存储费用,而剩下的最小对象大小(等于 122KB)将按照 S3 Standard-IA 存储价格收取。请参阅 Amazon S3 定价页面,获取有关 S3 Standard-IA 定价的信息。

可以。除了使用生命周期策略将对象从 S3 Standard 迁移到 S3 Standard-IA 之外,您还可以将生命周期策略设置为将 S3 Standard-IA 的对象分层到 S3 One Zone-IA、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类别。

S3 One Zone-Infrequent Access(S3 One Zone-IA)

全部打开

S3 One Zone-IA 存储类别是一个 Amazon S3 存储类别,让客户可以选择将对象存储在单个可用区中。S3 One Zone-IA 存储以冗余方式将数据存储在单个可用区内,这种存储的成本比地理上冗余的 S3 Standard-IA 存储的成本低 20%,而后者是以冗余方式将数据存储在多个地理上分离的可用区内。S3 One Zone-IA 提供 99% 的可用性 SLA,并且在可用区内的持久性还能够达到 99.999999999%。然而,S3 One Zone-IA 存储类中的数据对整个可用区的物理损失不具有弹性。S3 One Zone-IA 存储提供与 S3 Standard 和 S3 Standard-IA 相同的 Amazon S3 功能,用户可以通过 Amazon S3 API、CLI 和控制台使用这种存储类。S3 One Zone-IA 存储类是在对象级别进行设置的,并且可以和 S3 Standard 和 S3 Standard-IA 标准存储类存在于同一个存储桶中。您可以使用 S3 生命周期策略在存储类别之间自动转移对象,而无需更改任何应用程序。

客户可以将 S3 One Zone-IA 用于访问频率较低的存储,如备份副本、灾难恢复副本或其他易于重新创建的数据。

S3 One Zone-IA 存储类别可提供与 S3 Standard 和 S3 Standard-Infrequent Access 存储类别的相同的延迟和吞吐量性能。

S3 One Zone-IA 存储类别在一个可用区内的持久性可达到 99.999999999%。然而,S3 One Zone-IA 存储类中的数据对可用区的可用性损失或物理损失不具有弹性。相比之下,S3 Standard、S3 Intelligent-Tiering、S3 Standard-Infrequent Access 和 S3 Glacier 存储类能够承受住可用性下降或可用区毁坏的情况。S3 One Zone-IA 可以提供与大多数现代物理数据中心相当或更高的持久性和可用性,同时还提供存储弹性和 Amazon S3 功能集的额外优势。

可以。每个 AWS 区域都是一个独立的地理区域。每个区域都有多个相互隔离的位置,称为可用区。Amazon S3 One Zone-IA 存储类使用区域内的单个 AWS 可用区。

每个可用区均使用冗余电源和联网。在 AWS 区域内,可用区位于不同的冲积平原和地震断裂带,并且在地理位置上是分离的,以避免受到火灾的影响。S3 Standard 和 S3 Standard-IA 存储类通过以冗余方式将数据存储在多个可用区来避免受到这类灾难的影响。S3 单区 – IA 对可用区内的设备故障提供保护,但数据对于因地震和洪水等灾难造成的可用区物理损失不具有弹性。使用 S3 One Zone-IA、S3 Standard 和 S3 Standard-IA 选项,您可以选择最符合您的存储持久性和可用性要求的存储类别。

Amazon S3 Glacier Instant Retrieval 存储类别

全部打开

S3 Glacier Instant Retrieval 存储类别为很少访问且需要毫秒级取回速度的长期数据提供最低成本的存储。S3 Glacier Instant Retrieval 可提供对归档存储的最快访问,并且与 S3 Standard 和 S3 Standard-IA 存储类具有相同的吞吐量和毫秒级访问速度。通过跨至少三个物理分离的 AWS 可用区冗余存储数据,S3 Glacier Instant Retrieval 旨在实现 99.999999999%(11 个 9)的数据持久性和 99.9% 的可用性。

如果您有很少访问的数据,而且要求毫秒级延迟,则 S3 Glacier Instant Retrieval 是您的理想选择。若您想要和 S3 Standard-IA 相同的低延迟和高吞吐量性能,但存储数据的访问频率低于 S3 Standard-IA,那么它就非常适合您,因为它的存储价格降低,而数据访问成本稍高。

S3 Glacier Instant Retrieval 专为实现与 S3 Standard-IA 相同的 99.999999999%(11 个 9)持久性和 99.9% 可用性而设计,它具有服务等级协议,可在任何计费周期内的可用性低于 99% 时提供服务积分。

S3 Glacier Instant Retrieval 提供与 S3 Standard 和 S3 Standard-IA 存储类别相同的毫秒级延迟和高吞吐量性能。有别于专为异步访问设计的 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类别,您不需要在访问存储于 S3 Glacier Instant Retrieval 的对象前发出 Restore 请求。

将数据存入 S3 Glacier Instant Retrieval 的方式有两种。您可以通过指定 x-amz-storage-class 标头中的 GLACIER_IR 来直接放入 S3 Glacier Instant Retrieval 中,也可以设置 S3 生命周期策略以将对象从 S3 Standard 或 S3 Standard-IA 转移到 S3 Glacier Instant Retrieval。

S3 Glacier Instant Retrieval 的设计适用于长期但很少访问的数据(已保留了数月或数年)。归档到 S3 Glacier Instant Retrieval 中的对象最短可存储 90 天,同时未满 90 天就被删除、覆盖或转移的对象所产生的按比例支付的费用等于按剩余天数支付的存储费用。请查看 Amazon S3 定价页面,获取有关 Amazon S3 Glacier Instant Retrieval 定价的信息。

S3 Glacier Instant Retrieval 专为较大的对象而设计,其最小对象存储大小为 128KB。小于 128KB 的对象将产生存储费用,并按 128KB 计费。比如,S3 Glacier Instant Retrieval 中 6KB 的对象将产生 6KB 的 S3 Glacier Instant Retrieval 存储费用,而额外的最低对象大小费用(等于 122KB)将按照 S3 Glacier Instant Retrieval 存储价格收取。请查看 Amazon S3 定价页面,获取有关 Amazon S3 Glacier Instant Retrieval 定价的信息。

S3 Glacier Instant Retrieval 会根据请求类型和数据取回向您收取每月存储和请求费用。每月计费的存储容量基于全月内使用的平均存储量,以每月千兆字节计(即:GB 月)。您将按照请求类型(如 PUT、COPY 和 GET)支付请求费用。您还要为返回给您的每 GB 数据支付每 GB 费用。 

Amazon S3 Glacier Flexible Retrieval 存储类别

全部打开

S3 Glacier Flexible Retrieval 存储类别为每年访问 1-2 次且异步取回的归档数据提供低成本存储,成本最多降低 10%(相比 S3 Glacier Instant Retrieval),以及免费批量取回。对于不需要立即访问,但需要灵活地免费取回大量数据的归档数据,例如备份或灾难恢复使用案例,S3 Glacier Flexible Retrieval 是理想的存储类。S3 Glacier Flexible Retrieval 提供最灵活的取回选项,可以平衡成本与访问时间(从几分钟到几小时不等),并且可批量取回。它是备份、灾难恢复、离线数据存储需求的理想解决方案,并且还非常适合于偶尔需要在几分中内取回部分数据而您不想担心成本的情况。通过跨多个物理分离的 AWS 可用区冗余存储数据,S3 Glacier Flexible Retrieval 旨在实现 99.999999999%(11 个 9)的数据持久性和 99.99% 的可用性。

对于不需要立即访问,但需要灵活地免费取回大量数据的归档数据,例如备份或灾难恢复应用场景,S3 Glacier Flexible Retrieval 是理想的存储类别。S3 Glacier Flexible Retrieval 提供最灵活的取回选项,可以平衡成本与访问时间(从几分钟到几小时不等),并且可批量取回。它是备份、灾难恢复、离线数据存储需求的理想解决方案,并且还非常适合于偶尔需要在几分中内取回部分数据而您不想担心数据取回成本的情况。

将数据存入 S3 Glacier Flexible Retrieval 的方式有两种。通过在 x-amz-storage-class 标头中指定 GLACIER,您可以直接将数据放入 S3 Glacier Flexible Retrieval。您还可以使用 S3 生命周期规则基于对象的使用年限在适用于活动数据的任何 S3 存储类(S3 Standard、S3 Intelligent-Tiering、S3 Standard-IA、S3 One Zone-IA 和 S3 Glacier Instant Retrieval)与 Amazon S3 Glacier Flexible Retrieval 之间传输数据。使用 Amazon S3 管理控制台、AWS 开发工具包或 Amazon S3 API 来直接放入 Amazon S3 Glacier 或定义归档规则。

注:S3 Glacier Flexible Retrieval 还可以通过原始直接 Glacier API 和 Amazon S3 Glacier 管理控制台提供。为了获取增强体验和完整 S3 功能集的访问权限,包括生命周期管理、S3 复制、S3 Storage Lens 存储统计管理工具等,我们建议通过 S3 API 和 S3 管理控制台来使用 S3 Glacier 功能。

归档在 S3 Glacier Flexible Retrieval 中的对象可以异步访问。要取回存储在 S3 Glacier Flexible Retrieval 中的数据,您需要使用 Amazon S3 API 或 Amazon S3 控制台启动取回请求。取回请求会在 S3 Standard 存储类中创建数据的临时副本,同时已归档数据将原封不动地保留在 S3 Glacier Flexible Retrieval 中。您可以以天为单位指定将临时副本存储在 Amazon S3 上的时间。然后,可以通过 Amazon S3 GET 从 S3 中请求访问已归档对象的临时副本。 在低冗余存储价格低于 S3 Standard 价格的 AWS 区域,临时可用的数据按低冗余存储计费。但是,低冗余计费存储类并不能反映数据的存储方式。通过还原通知,您现在可在从 S3 Glacier Flexible Retrieval 成功还原对象并且临时副本可供您使用时使用 S3 事件通知通知您。存储桶拥有者(或 IAM 策略允许的其他人)可以安排将通知发送到 Amazon Simple Queue Service(SQS)Amazon Simple Notification Service(SNS)。通知也可传送到 AWS Lambda,由 Lambda 函数进行处理。

处理取回任务时,Amazon S3 首先从 S3 Glacier Flexible Retrieval 取回请求的数据,然后在 Amazon S3 中创建所请求数据的临时副本。这通常需要几分钟时间。请求的访问时间取决于您选择的取回选项:加急、标准或批量取回。除了最大的对象 (250MB+) 以外,对于使用加急取回方式访问的所有数据,通常在 1-5 分钟内即可使用。使用标准取回方式取回的对象通常在 3-5 小时内完成。使用 S3 批量操作启动时,标准取回通常可在几分钟内开始。批量取回通常在 5-12 小时内完成,而且是免费的。有关 S3 Glacier Flexible Retrieval 选项的更多信息,请参阅《S3 用户指南》中的恢复归档的对象
使用 S3 Glacier 存储类预置容量单位,您可以为给定月份支付固定的预付费用,以确保获得从 S3 Glacier Flexible Retrieval 进行加急取回所需的取回容量。您每月可以购买 2 个预置容量单位,从而增加可以取回的数据量。每单位容量可确保每 5 分钟内至少可执行 3 次加急取回,并提供最高达 150MB/s 的取回吞吐量。如果您的工作负载需要在几分钟内对数据子集进行高度可靠且可预测的访问,那么您应该购买预置取回容量。如果没有预置容量,在高需求期间,可能不会接受加快取回。如果您在任何情况下需要访问加速取回,我们建议您购买预置的取回容量。
您可以使用 Amazon S3 控制台、购买预置容量 REST API、AWS 开发工具包或 AWS CLI 购买预置容量。预置容量单位从购买日期和时间(即开始日期)开始,持续一个月。单位在到期日期时过期,该日期恰好是开始日期后的一个月,精确到秒钟。有关预置容量定价信息,请参阅 Amazon S3 定价

每月计费的存储容量基于全月内使用的平均存储量,以每月千兆字节计(即:GB 月)。Amazon S3 计算对象大小的方式为:您存储的数据大小,加上额外 32KB 的 S3 Glacier 数据,再加上额外 8KB 的 Amazon S3 Standard 存储类数据。对于每个对象,S3 Glacier Flexible Retrieval 需要额外 32KB 的数据用于 S3 Glacier 的索引和元数据,以便您能够识别和取回数据。Amazon S3 需要 8KB 存储空间来存储和维护已归档到 S3 Glacier Flexible Retrieval 的对象的用户定义名称和元数据。这样一来,您便可以使用 Amazon S3 LIST API 或 S3 清单报告实时获取所有 Amazon S3 对象的列表,包括使用 S3 Glacier Flexible Retrieval 存储的对象。例如,如果您归档了 100000 个数据对象且每个数据对象均为 1GB,那么您的可计费存储应为:
每个对象 1.000032GB x 100000 个对象 = 100003.2GB S3 Glacier 存储。
每个数据对象 0.000008 GB 字节 x 100000 个数据对象 = 0.8GB S3 Standard 存储。
费用根据 Amazon S3 定价页面上您所在 AWS 区域的当前费率计算得出。有关其他 Amazon S3 定价示例,请前往 S3 账单常见问题或使用 AWS 定价计算器

归档到 S3 Glacier Flexible Retrieval 的对象的最短存储时长为 90 天。如果对象存储未满 90 天即被删除、覆盖或转换,还需按比例支付一定的费用,金额为剩余天数将产生的存储费用。

S3 Glacier Flexible Retrieval 还需要额外为每个存储对象提供 40 KB 元数据,其中包括按 S3 Glacier Flexible Retrieval 费率收费的识别和取回数据所需的 32 KB 元数据。另外 8 KB 数据按 S3 Standard 费率收费,这是维护归档到 S3 Glacier Flexible Retrieval 的对象的自定义名称和元数据所必需的数据。这让您可以使用 S3 LIST API 或 S3 清单报告获取所有 S3 对象的实时列表。请参阅 Amazon S3 定价页面,获取有关 Amazon S3 Glacier Flexible Retrieval 定价的信息。 

从 S3 Glacier Flexible Retrieval 取回数据的方式有三种:加急、标准和批量取回。加急和标准方式具有不同的每 GB 取回费和每请求费(即,您需要为针对 Amazon S3 对象的请求付费)。从 S3 Glacier Flexible Retrieval 进行批量取回是免费的。有关不同 AWS 区域的 S3 Glacier 定价的详细信息,请访问 Amazon S3 定价页面

Amazon S3 Glacier 存储类别专为数据归档而构建,旨在为您提供具有最高性能、最大取回灵活性和最低成本的云归档存储。现在,您可以从针对不同访问模式和存储持续时间优化的三种归档存储类中进行选择。对于需要即时访问的归档数据,例如医学图像、新闻媒体资产或基因组学数据,请选择 S3 Glacier Instant Retrieval 存储类,这种归档存储类可提供最低的存储成本及毫秒级取回速度。对于不需要立即访问但需要灵活地免费取回大量数据的归档数据,例如备份或灾难恢复使用场景,请选择 S3 Glacier Flexible Retrieval,它可在几分钟内取回,也可以在 5-12 小时内进行免费批量取回。要使长期归档存储(例如合规性归档和数字媒体保留)实现更大的成本节省,请选择 S3 Glacier Deep Archive,这是成本最低的云存储,数据取回时间不超过 12 小时。

我们更倾向于关注客户在性能、持久性、可用性和安全性方面的结果。但是,我们的客户经常会提出这个问题。我们使用各种不同技术,让我们可以将我们的价格报给客户。我们的服务是使用常见数据存储技术构建的,这些技术使用 AWS 开发的软件专门组装到特别定制、成本优化的系统中。我们能够优化输入和输出次序,因此 S3 Glacier 存储类别可最大限度地提高访问底层存储的效率。

Amazon S3 Glacier Deep Archive

全部打开

S3 Glacier Deep Archive 是一种 Amazon S3 存储类别,这为长期保存每年访问一两次的数据提供了安全、持久的对象存储。S3 Glacier Deep Archive 的云存储成本最低,每月每 GB 仅 0.00099 美元(不到 0.1 美分,或每月每 TB 约 1 美元)起,远低于存储和维护本地磁带库或异地归档数据的价格。

S3 Glacier Deep Archive 是一种理想的存储类别,可以为公司最重要的数据资产提供离线保护,或者在根据公司政策、合同或监管合规性要求需要长期保留数据时提供离线保护。客户发现 S3 Glacier Deep Archive 是一个非常有吸引力的选择,可用来保护核心知识产权、金融和医疗记录、研究结果、法律文件、地震勘探研究和长期备份的,特别是在金融服务、医疗、石油和天然气以及公共部门等监管严格的行业。此外,还有一些企业希望保留核心知识产权的备份副本,比如媒体和娱乐公司。通常,使用 S3 Glacier Deep Archive 的客户可以减少或停止使用本地磁带库和本地之外的磁带归档服务。

S3 Glacier Deep Archive 扩充了我们的数据归档产品,使您能够根据存储和取回成本以及取回时间选择最佳的存储类别。当需要以毫秒级延迟访问低成本归档数据时,您可以选择 S3 Glacier Instant Retrieval 存储类。对于不需要立即访问但需要灵活地免费取回大量数据的归档数据,例如备份或灾难恢复使用场景,请选择 S3 Glacier Flexible Retrieval,它可在几分钟内取回,也可以在 5-12 小时内进行免费批量取回。相比之下,S3 Glacier Deep Archive 专门用于不太可能访问但仍然需要长期持久存储的较冷数据。S3 Glacier Deep Archive 的费用比 S3 Glacier Flexible Retrieval 低多达 75%,而且使用标准取回层可在 12 小时进行取回。使用 S3 批量操作启动时,标准取回通常可在 9 小时内开始。您还可以通过选择批量取回来降低取回成本,批量取回将在 48 小时内返回数据。

在 S3 Glacier Deep Archive 中存储数据的最简单方法是使用 S3 API 直接上传数据。只需指定“S3 Glacier Deep Archive”作为存储类。您可以利用 AWS 管理控制台、S3 REST API、AWS 开发工具包或 AWS 命令行界面来完成该指定操作。您还可以通过使用 S3 Lifecycle 来创建迁移数据的策略,以此开始使用 S3 Glacier Deep Archive,S3 Lifecycle 提供了定义对象生命周期和降低存储成本的能力。可以设置这些策略,以便根据对象的使用年限将对象迁移到 S3 Glacier Deep Archive 上。您可以为 S3 存储桶或特定前缀指定策略。生命周期转换按 S3 Glacier Deep Archive 上传价格计费。磁带网关是 AWS Storage Gateway 的一个基于云的虚拟磁带库功能,现与 S3 Glacier Deep Archive 结合在一起,使您可以将基于虚拟磁带的长期备份和归档存储在 S3 Glacier Deep Archive 中,从而为云中的这些数据提供最低的存储成本。首先,使用 AWS Storage Gateway 控制台或 API 创建一个新的虚拟磁带,并将归档存储目标设置为 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive。当备份应用程序弹出磁带时,磁带将归档到选定的存储目标中。

有多种方法可以将数据从现有磁带存档迁移到 S3 Glacier Deep Archive。您可以使用 AWS Tape Gateway,以便通过虚拟磁带库 (VTL) 接口与现有备份应用程序集成。此接口可以将虚拟磁带提供给备份应用程序。以上操作可以立即将数据存储在 Amazon S3、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。
您还可以使用 AWS Snowball 来迁移数据。Snowball 可使用能确保传输安全的物理存储设备,加快 TB 到 PB 级数据迁入和迁出 AWS 的速度。使用 Snowball 有助于解决进行大规模数据传输时会遇到的难题,包括网络费用高、传输时间长和安全问题。最后,您可以使用 AWS Direct Connect 来建立从本地到 AWS 的专用网络连接。在许多情况下,Direct Connect 可以降低网络成本,增加带宽吞吐量,并提供比基于互联网的连接更一致的网络体验。

要取回存储在 S3 Glacier Deep Archive 中的数据,请使用 Amazon S3 API 或 Amazon S3 管理控制台提出“恢复”请求。“还原”会在 S3 Standard 存储类中创建数据的临时副本,同时使 S3 Glacier Deep Archive 中的已归档数据保持完整。您可以以天为单位指定将临时副本存储在 S3 上的时间。然后,可以通过 Amazon S3 GET 从 S3 中请求访问已归档对象的临时副本。恢复存档对象时,您可以在请求正文的层级元素中指定以下选项之一:标准是默认层级,允许您在 12 小时内访问任何存档对象,使用 S3 批量操作启动时,取回通常在 9 小时内开始。批处理允许您以低廉的价格取回大量数据,甚至是 PB 级数据,而且通常在 48 小时内完成。

S3 Glacier Deep Archive 存储的定价基于您所存储数据的 GB 量、PUT/生命周期转换请求数、取回的 GB 数以及恢复请求数。该定价模型类似于 S3 Glacier Flexible Retrieval。请参阅 Amazon S3 定价页面,获取有关 S3 Glacier Deep Archive 定价的信息。

S3 Glacier Deep Archive 使用情况和成本将在您的每月 AWS 账单上显示为一个独立的服务行项目,与 Amazon S3 使用情况和成本分开。但是,如果您正在使用 AWS 成本管理工具,S3 Glacier Deep Archive 使用情况和成本将包括在您的每月详细开支报表中的 Amazon S3 使用情况和成本下,并且不会细分为单独的服务行项目。

归档到 S3 Glacier Deep Archive 的对象的最短存储时长为 180 天。如果对象存储未满 180 天即被删除、覆盖或转换,还需按比例支付一定的费用,金额为剩余天数将产生的存储费用。 S3 Glacier Deep Archive 还需要额外为每个存储对象提供 40 KB 元数据,其中包括按 S3 Glacier Deep Archive 费率收费的识别和取回数据所需的 32 KB 元数据。另外 8 KB 数据按 S3 Standard 费率收费,这是维护归档到 S3 Glacier Deep Archive 的对象的自定义名称和元数据所必需的数据。这让您可以使用 S3 LIST API 或 S3 清单报告获取所有 S3 对象的实时列表。请查看 Amazon S3 定价页面,获取有关 S3 Glacier Deep Archive 定价的信息。

S3 Glacier Deep Archive 集成了 Amazon S3 功能,包括 S3 对象标记、S3 生命周期策略、S3 对象锁定和 S3 复制。通过 S3 存储管理功能,您可以使用单个 Amazon S3 存储桶存储 S3 Glacier Deep Archive、S3 Standard、S3 Standard-IA、S3 One Zone-IA 和 S3 Glacier Flexible Retrieval 数据的混合体。这让存储管理员可以基于数据和数据访问模式的性质做出决策。客户可以使用 Amazon S3 生命周期策略将老化的数据自动迁移到成本较低的存储类,也可以使用 S3 跨区域复制或同区域复制策略将数据复制到同一区域或其他区域。AWS Storage Gateway 服务可将磁带网关与 S3 Glacier Deep Archive 存储类集成,这样您就可以将虚拟磁带存储在成本最低的 Amazon S3 存储类中,从而将在云中存储长期数据的每月成本降低 75%。使用此功能,磁带网关支持将您的新虚拟磁带直接归档到 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive,从而帮助您满足备份、归档和恢复要求。磁带网关可帮助您将基于磁带的备份移动到 AWS,而无需对现有备份工作流程进行任何更改。磁带网关支持大多数领先的备份应用程序,例如 Veritas、Veeam、Commvault、Dell EMC NetWorker、IBM Spectrum Protect(在 Windows OS 上)和 Microsoft Data Protection Manager。

S3 on Outposts

全部打开

Amazon S3 on Outposts 使用 S3 API 和您目前在 AWS 中使用的功能在您的本地环境中提供对象存储。AWS Outposts 是一项完全托管式服务,可将 AWS 基础设施、AWS 服务、API 和工具扩展到几乎任何数据中心、主机托管空间或本地设施。使用 S3 on Outposts,您可以在将数据移动到 AWS 区域之前安全地处理和存储在本地生成的客户数据,针对在本地运行的应用程序在本地访问数据,或者对于所处位置有数据驻留要求的公司或监管行业公司将数据存储在 Outpost 中。要了解有关 S3 on Outposts 的更多信息,请访问概览页面
 

存储管理

全部打开

S3 对象标签是应用于 S3 对象的键/值对,在该对象的生命周期内可以随时创建、更新或删除。借助这些标签,您将能够创建 AWS Identity and Access Management(IAM)策略,设置 Amazon S3 生命周期策略以及自定义存储指标。然后,可以使用这些对象级标签管理后台中存储类别与过期对象之间的转换。上传新对象时,您可以向其添加标签,也可以向现有对象添加标签。每个 S3 对象最多可添加 10 个标签,您可以使用 AWS 管理控制台、REST API、AWS CLI 或 AWS SDK 添加对象标签。
如需了解更多信息,请访问 S3 对象标签用户指南

借助对象标签这一工具,您可以简化 S3 存储的管理。使用此工具能够在对象的生命周期内随时创建、更新和删除标签,从而使您的存储能够满足您业务的需求。借助这些标签,您可以控制对标记有特殊键值对的对象的访问,从而能够进一步保护机密数据,使之仅供选定组或用户访问。对象标签也可用于标记属于特定项目或业务单元的对象,它可与 S3 生命周期策略结合使用来管理到其他存储类别(S3 Standard-IA、S3 One Zone-IA、Amazon S3 Glacier Instant Retrieval、Amazon S3 Glacier Flexible Retrieval 和 Amazon S3 Glacier Deep Archive)的转移或与 S3 复制功能结合使用来选择性地复制 AWS 区域之间的数据。

在 S3 对象的生命周期内,您可以随时更改对象标签,您可以使用 AWS 管理控制台、REST API、AWS CLI 或 AWS 开发工具包更改对象标签。请注意,在 AWS 管理控制台之外进行的所有更改均是对整个标签集合进行的更改。如果某个特定对象关联了 5 个标签,您要为其添加第 6 个标签,那么您需要在该请求中包括最初的 5 个标签。

对象标签根据标签的数量和添加标签的请求费用定价。添加和更新对象标签的相关请求的价格与现有请求的价格相同。有关更多信息,请访问 Amazon S3 定价页面

您可以使用 AWS 管理控制台或 S3 PUT 存储桶分析 API 配置存储类分析策略,以识别不频繁访问的存储,这些存储可转换到 S3 Standard-IA 或 S3 One Zone-IA 存储类别或归档到 S3 Glacier 存储类别。您可以导航至 S3 控制台中的“管理”选项卡来管理存储类别分析、S3 清单和 CloudWatch 指标。

如果您想使用 SQL 查询有关 S3 对象的信息以为生成式人工智能、分析和其他应用场景快速识别特定数据集,则应使用 Amazon S3 Metadata。S3 Metadata 能够近乎实时地更新元数据,因此您可以使用任何与 Iceberg 兼容的客户端来运行 SQL 查询,以便根据对象元数据查找对象。例如,您可以使用 SQL 查询来返回符合特定筛选条件的对象列表,比如在过去 30 天内添加到任何存储桶中的对象。

S3 Metadata 旨在自动生成元数据,这些元数据可提供上传至存储桶中的对象的相关额外信息,并使该元数据能够在只读表中进行查询。这些元数据表存储在基于 Apache Iceberg 构建的 Amazon S3 表类数据存储服务中,并为在 S3 中存储和查询表格数据提供一种托管方式。S3 Metadata 在对象上传期间创建并维护系统级元数据(例如对象大小)、自定义元数据(例如标签和用户定义的元数据)以及事件元数据(例如发送请求的 IP 地址)。随着存储桶中的数据发生更改,S3 Metadata 可以近乎实时地更新以反映最新更改。然后,您可以使用与 Iceberg 兼容的各种 AWS 分析服务和开源工具,包括 Amazon Athena、Amazon QuickSight 和 Apache Spark 来查询元数据表。

只需在 S3 管理控制台中单击几次,您就可以开始使用 S3 控制台。只需选择您想要在其中启用 S3 Metadata 的通用 S3 存储桶,S3 将会分析您的存储桶中的数据,并构建一个其中包含您所有对象的元数据的完全托管式 Apache Iceberg 表。几分钟内,您就可以开始使用任何支持 Apache Iceberg 的查询引擎或工具来查询元数据。

您的 S3 Metadata 表存储在您名为 aws-s3 的 AWS 账户中的 AWS 托管表存储桶中。您的表将是只读表,只有 S3 有权进行写入、更新或删除元数据的操作。 

S3 Metadata 将元数据存储在您账户的两个托管表中:日志表和实时清单表。 

S3 Metadata 日志表提供存储桶内所做更改的视图。在向您的通用 S3 存储桶进行对象添加、更新和移除操作时,相应的更改将近乎实时地反映在日志表中。日志表有助于您了解应用程序的运行情况,并能帮助您识别对数据集所做的任何更改。例如,您可以为日志表编写 SQL 查询,以查找与筛选条件相匹配的 S3 对象,例如过去 30 天添加的对象、活动请求者添加的对象或上周发生元数据更改的对象。

S3 Metadata 实时清单表包含存储桶中所有对象的完整列表。实时清单表每小时更新一次,其中包含了 S3 所掌握的关于您的对象的所有信息。实时清单表有助于根据对象元数据中生成的特征来发现或识别您存储桶中的数据集。例如,您可以使用实时清单表来识别用于机器学习的训练数据集,将其用于存储成本优化练习,或者借此帮助实施治理控制措施。

当您向存储桶添加新对象时,您在几分钟内就能在日志表中看到相关条目,而下一小时刷新时您会在实时清单表中看到这些条目。当您在现有存储桶上启用 S3 元数据时,S3 将自动启动回填操作,以为您的所有现有对象生成元数据。这一回填操作通常在几分钟内完成,但如果您的现有数据集包含数百万或数十亿个 S3 对象,则可能需要几个小时。

可以。您可以在包含自定义元数据的表存储桶中创建自己的 Iceberg 表,然后使用简单的 SQL 查询将它们与 S3 Metadata 生成的表联接。

S3 清单报告可为 Amazon S3 的同步列表 API 提供预定的替代方案。您可以通过配置 S3 清单,针对 S3 存储桶或前缀每日或每周提供一次您的对象及其对应元数据的 CSV、ORC 或 Parquet 文件输出。您可以使用 S3 清单简化并加快业务工作流和大数据作业。您还可以使用 S3 清单验证对象的加密和复制状态是否符合业务、合规性和法规要求。 通过 Amazon S3 清单用户指南了解更多信息

您可以使用 AWS 管理控制台或 PUT Bucket Inventory Configuration API,为您 S3 存储桶中的所有对象或某个共享前缀下的对象子集配置每日或每周清单报告。在配置过程中,您可以指定 S3 清单报告的目标 S3 存储桶、输出文件的格式(CSV、ORC 或 Parquet)以及您的业务应用程序所需的具体对象元数据,例如:对象名称、大小、上次修改日期、存储类、版本 ID、删除标记、非当前版本标记、分段上传标记、复制状态或加密状态。 您可以将 S3 清单用作应用程序工作流或大数据任务的直接输入。您还可以使用 Amazon Athena、Amazon Redshift Spectrum 及其他工具(例如,Presto、Hive 和 Spark)通过标准 SQL 语言查询 S3 清单。通过 Amazon S3 清单用户指南了解更多信息。

请参阅 Amazon S3 定价页面,了解 S3 清单定价的信息。配置 SSE-KMS 加密后,将产生 KMS 加密费用,请参阅 KMS 定价页面了解详细信息。

Amazon S3 表类数据存储服务提供专门针对分析工作负载进行了优化的 S3 存储,提高了查询性能,同时降低了成本。您可以通过 S3 表类数据存储服务与 Amazon SageMaker 智能湖仓的集成,访问高级 Iceberg 分析功能,并使用常用的 AWS 服务(如 Amazon Athena、Redshift 和 EMR)查询数据。此外,您可以使用与 Iceberg REST 兼容的第三方应用程序(如 Apache Spark、Apache Flink、Trino、DuckDB 和 PyIceberg)向 S3 表中读取和写入数据。您可以使用表存储桶,将每日购买交易、流式传感器数据或广告曝光量等表格数据在 Amazon S3 中存储为 Iceberg 表,然后使用行级交易、可查询表快照等分析功能与该数据进行交互,所有这些都由 Amazon S3 管理。此外,表存储桶会进行持续的表维护,即使数据湖不断扩展和演变,它也能随着时间的推移自动优化查询效率。

您应该使用 S3 表类数据存储服务,以简单、高性能且经济实惠的方式在 Amazon S3 中存储表格数据。S3 Tables 使您能够将结构化数据组织成表,然后使用标准 SQL 语句查询该数据,几乎无需设置。此外,S3 表类数据存储服务提供与 S3 本身相同的持久性、可用性、可扩展性和性能特征,并自动优化存储以最大限度地提高查询性能并最大限度地降低成本。

S3 表类数据存储服务提供专门构建的 S3 存储,用于以 Apache Parquet、Avro 和 ORC 格式存储结构化数据。在表存储桶中,您可以直接在 S3 中将表创建为一级资源。这些表可以使用在基于身份或资源的策略中定义的表级权限进行保护,并且可由支持 Apache Iceberg 标准的应用程序或工具进行访问。当您在表存储桶中创建表时,S3 中的基础数据将存储为 Parquet、Avro 或 ORC 文件。然后,S3 会使用 Apache Iceberg 标准来存储必要的元数据,使应用程序可以查询该数据。S3 表类数据存储服务包括一个客户端库,查询引擎使用该库来导航和更新表存储桶中表的 Iceberg 元数据。此库与用于表操作的更新的 S3 API 结合使用,允许多个客户端安全地读取和写入表中的数据。随着时间的推移,S3 会通过重写或“压缩”对象来自动优化基础 Parquet、Avro 或 ORC 数据。压缩可以优化 S3 上的数据,以提高查询性能。

只需几个简单步骤即可开始使用 S3 表类数据存储服务,无需在 S3 之外搭建任何基础设施。首先,在 S3 控制台中创建表存储桶。通过控制台创建您的第一个表存储桶的过程中,与 AWS 分析服务的集成会自动完成,这使得 S3 能够自动将您账户和区域中的所有表存储桶和表填充到 AWS Glue Data Catalog 中。此后,S3 表类数据存储服务可通过 Amazon Athena、EMR 和 Redshift 等 AWS 查询引擎访问。接下来,您可以在 S3 控制台中点击操作,利用 Amazon Athena 创建表格。进入 Athena 后,您就可以快速开始填充新的表格并对其进行查询。

或者,您可以通过 AWS Glue Data Catalog 使用 REST Catalog 端点访问 S3 表类数据存储服务,这使您能够发现整个数据资产,包括所有表资源。您还可以直接连接到单个表存储桶端点,以发现该存储桶中的所有 S3 表类数据存储服务资源。这使您能够将 S3 表类数据存储服务与支持 Apache Iceberg REST Catalog 规范的任何应用程序或查询引擎结合使用。

您可以使用 S3 中的 CreateTable API 在您的表存储桶中创建表。或者,您也可以使用查询引擎来创建表。您可以使用 S3 中的 DeleteTable API 从您的表存储桶中删除表。或者,您可以使用查询引擎删除表。如果这样做,您的查询引擎将无法再访问您的表。

S3 表类数据存储服务支持 Apache Iceberg 标准,Amazon Athena、Amazon Redshift 和 Apache Spark 等查询引擎可用于查询 Iceberg 表,可用于使用标准 SQL 查询表存储桶中的表。

与将 Iceberg 表存储在通用 Amazon S3 存储桶中相比,预计查询性能最多可高 3 倍,每秒事务数(TPS)最多可高 10 倍。这是因为表存储桶会自动压缩表的基础 Parquet、Avro 或 ORC 数据来优化查询性能,而专用存储在默认情况下最多支持 10 倍的 TPS。

不能。为了防止意外损害表的完整性或中断下游应用程序,表存储桶不允许手动覆盖或删除对象。表存储桶仅支持访问和更新 Iceberg 表所需的 S3 API 子集。不过,您可以在表上配置删除未引用的文件并设置快照到期时间以删除数据。

表存储桶使您能够将资源策略应用于整个存储桶或单个表。可以使用 PutTablePolicy 和 PutTableBucketPolicy API 来应用表存储桶策略。表级策略允许您根据与之关联的逻辑表管理对表存储桶中表的权限,而无需了解单个 Parquet、Avro 或 ORC 文件的物理位置。此外,S3 屏蔽公共访问权限始终应用于您的表存储桶。

可以。当有多个并发写入器时,表存储桶依赖 Iceberg 的快照功能来保持表的一致性。

表存储桶支持包含 Parquet、Avro 或 ORC 数据的 Apache Iceberg 表格式。

表存储桶提供三种维护操作:压缩、快照管理和删除未引用的文件。压缩会定期将较小的对象组合成更少、更大的对象,以提高查询性能。快照管理会过期并根据您的快照保留配置删除表快照。根据您的未引用文件删除策略,未引用的文件删除策略将删除任何表快照均未引用的对象,从而优化存储成本。

可以,S3 Tables 支持 AWS CloudTrail。您可以为表存储桶设置 CloudTrail 数据和管理事件 CloudTrail,就像使用通用 S3 存储桶一样。您的表存储桶的 CloudTrail 日志包括表和数据对象信息。 

是的,表格存储桶中的数据默认使用服务器端加密进行加密,从而确保对静态数据提供基本保护。为了增强安全性,您可以选择使用自己的加密密钥对 S3 表格中的数据进行加密。这些密钥通过 AWS Key Management Service(AWS KMS)在您的 AWS 账户内创建和管理。借助 KMS,对于 KMS 密钥的使用有单独的权限设置,增加了一层额外的控制和保护,防止未经授权访问存储在表格存储桶中的表格。此外,KMS 会生成详细的审计跟踪记录,使您能够使用密钥追踪谁在何时访问了哪些表格。KMS 还提供额外的安全控制,以支持您遵守诸如 PCI-DSS、HIPAA/HITECH 以及 FedRAMP 等行业要求。这种全面的加密和密钥管理方法提供了有效保护您敏感数据所需的安全性和灵活性。

使用 S3 表类数据存储服务,您需要支付存储空间、请求和存储在表存储桶中的每个对象的对象监控费用。表维护也需要额外付费。如需查看定价详细信息,请参阅 S3 定价页面

压缩会将较小的对象组合成更少、更大的对象,以提高 Iceberg 查询性能。Amazon S3 根据最适合您的数据访问模式的目标文件大小或您指定的值来压缩表。压缩后的文件将作为表的最新快照写入。默认情况下,所有 S3 表都支持压缩,默认目标文件大小为 512MB。可以使用 PutTableMaintenanceConfiguration API 将目标文件大小从 64MB 改为 512MB。 

快照管理会过期并根据快照保留配置删除表快照。快照管理根据 MinimumSnapshots(默认为 1)和 MaximumSnapshotAge(默认为 120 小时)确定表的活动快照数量。快照到期时,Amazon S3 会为该快照唯一引用的数据和元数据文件创建删除标记,并将这些文件标记为非最新文件。这些非当前文件将在未引用文件删除策略中的 NoncurrentDays 属性指定的天数后删除。可以使用 PutTableMaintenanceConfiguration API 更改快照的默认值。快照管理不支持您在 Iceberg metadata.json 文件中配置的保留值,包括基于分支或标签的留存。当您配置基于分支或标签的保留策略,或者在 metadata.json 文件上配置的保留策略长于通过 PutTableMaintenanceConfiguration API 配置的值时,S3 表类数据存储服务的快照管理将被禁用。 

删除未引用的文件可识别并删除任何表快照未引用的所有对象。根据未引用文件删除策略,您可以配置两个属性:ExpireDays(默认为 3 天)和 NoncurrentDays(默认为 10 天)。对于表中未引用且早于 ExpireDays 属性的任何对象,S3 将在 NoncurrentDays 属性指定的天数之后永久删除这些对象。您可以在表存储桶级别配置未引用的文件删除。可以使用 PutTableBucketMaintenanceConfiguration API 更改快照保留期的默认值。

S3 批量操作是一种功能,您可以使用该功能跨多个对象自动执行单个操作(如复制对象或执行 AWS Lambda 函数)。使用 S3 批量操作,只需在 S3 控制台中单击几次或使用单个 API 请求,即可更改数十亿个对象,而不必为存储管理应用程序编写自定义应用程序代码或运行计算集群。S3 批量操作不仅跨许多对象管理存储操作,还管理重试、显示进度、提供通知、提供完成报告并将在您的目标对象上执行的所有操作的事件发送到 AWS CloudTrail。可从 S3 控制台或通过 AWS CLI 和开发工具包来使用 S3 批量操作。  要了解更多信息,请访问 S3 批量操作页面用户指南

您可以通过进入 Amazon S3 控制台或使用 AWS CLI 或开发工具包来开始使用 S3 批量操作创建第一个 S3 批量操作任务。S3 批量操作任务包括要处理的对象的列表和要执行的操作的类型(请参阅可用操作的完整列表)。首先选择 S3 清单报告或提供您自己的、S3 批量操作要处理的对象的自定义列表。S3 清单报告是列出了 S3 存储桶或前缀中存储的所有对象的文件。接下来,从 S3 批量操作支持的一组 S3 操作中进行选择,例如替换标签集、更改 ACL、将存储从一个存储桶复制到另一个存储桶或启动从 S3 Glacier Flexible Retrieval 到 S3 Standard 存储类的还原。然后,您可以使用特定参数自定义 S3 批量操作任务,例如标签值、ACL 被授权者和还原持续时间。为了进一步自定义存储操作,您可以编写自己的 Lambda 函数并用 S3 批量操作调用该代码。创建 S3 批量操作作业后,它将处理对象列表,并在需要时将作业发送到“等待确认”状态。确认作业详细信息后,S3 批量操作将开始执行您指定的操作。您可以通过编程方式或通过 S3 控制台查看任务进度、接收完成通知并查看列出已对存储所做更改明细的完成报告。
如果您有兴趣了解有关 S3 批量操作的更多信息,请观看教程视频查看此文档

对于金融服务行业中的客户,S3 对象锁定为必须以不可删除且不可重写的格式保留记录以满足 SEC Rule 17a-4(f)、FINRA Rule 4511 或 CFTC Regulation 1.31 的法规要求的证券经纪商提供了附加支持。您可以轻松地指定记录保留时间范围来以原始形式将法规存档保留所需的一段时间,还可以实施依法保留以无限期地保留数据,直到撤销保留。

在使用 Amazon S3 进行电子存储之前,向监管机构或所选的“指定审查机关(DEA)”发送通知,同时提供一份 Cohasset 评测副本。针对这些要求,AWS 不可作为指定的第三方 (D3P)。请务必选择 D3P,并将此信息添加到发送给 DEA 的通知中。

使用 AWS 管理控制台,可在 1 分钟内为您的 S3 存储桶生成 CloudWatch 请求指标,或使用前缀或对象标签配置指标的筛选条件,或接入点。此外,还可以通过调用 S3 PUT Bucket Metrics API 来启用 S3 存储指标的发布并对其进行配置。 CloudWatch 请求指标在启用后的 15 分钟内即可在 CloudWatch 中使用。CloudWatch 存储指标默认情况下针对所有存储桶启用,且每天报告一次。了解有关 Amazon S3 的 CloudWatch 指标的更多信息。

您可以使用 CloudWatch 对任何存储指标数量、计时器或等级设置阈值,当值达到此阈值时,就触发相应操作。例如,您对 4xx 错误响应的百分比设置一个阈值,当值超出此阈值至少 3 个数据点时,就触发 CloudWatch 警报以提醒 DevOps 工程师。

CloudWatch 存储指标免费提供。CloudWatch 请求指标根据 Amazon CloudWatch 的自定义指标定价。请参阅 Amazon CloudWatch 定价页面,获取有关 S3 CloudWatch 指标定价的一般信息。

S3 生命周期管理可以通过预定义的策略定义对象的生命周期,并降低您的存储成本。您可以设置生命周期转换策略,以根据数据的使用年限自动将存储在 S3 Standard 存储类中的对象迁移到 S3 Standard-IA、S3 One Zone-IA 和/或 S3 Glacier 存储类。基于对象的使用年限,您还可以设置生命周期过期策略,将对象自动移除。您可以设置分段上传过期策略,根据上传的存储时间,使未完成的分段上传过期。如需了解更多信息,请访问 S3 生命周期用户指南

您可以在 AWS 管理控制台、S3 REST API、AWS 开发工具包或 AWS 命令行界面(CLI)中设置和管理生命周期策略。您可以在前缀或存储桶级别指定策略。

利用 Amazon S3 生命周期策略,您可以将对象配置为从 S3 Standard 存储类别迁移到 S3 Standard-IA 或 S3 One Zone-IA 并/或归档到 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类别。

您还可以指定一个 S3 生命周期策略,在特定时间段后删除对象。您可以利用此策略驱动的自动化操作来快速而轻松地降低存储成本并节省时间。在每个规则中,您都可以指定前缀、时间段、转移到 S3 Standard-IA、S3 One Zone-IA、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive 和/或过期日期。例如,您可以创建一个规则,规定将带有常见前缀 “logs/” 且创建后已有 30 天的所有对象归档到 S3 Glacier Flexible Retrieval,并且这些对象将于创建之日起的 365 天后失效。

您还可以创建单独的规则,规定仅带有前缀 “backups/” 且已创建 90 天的所有对象将失效。S3 生命周期策略对现有的和新的 S3 对象都适用,可帮助您针对 S3 中存储的所有当前数据和任何新数据优化存储、最大限度地节省成本,而无需耗时的手动数据检查和迁移。

在生命周期规则内,前缀字段用于识别服从该规则的数据对象。要将规则应用于单个数据对象,请指定键名称。要将规则应用于一组数据对象,请指定它们的共同前缀(例如“logs/”)。您可以指定迁移操作和过期操作以存档或删除数据对象。关于时间期限,您可以指定一个创建日期(如 2015 年 1 月 31 日)或自创建之日算起的天数(如 30 天),以便在此日期或超过此天数后将数据对象存档或删除。您可为不同前缀创建多条规则。

生命周期策略的制定和应用无需额外费用。根据生命周期规则,当对象符合转移条件时,每个对象的转移请求都需付费。有关定价信息,请参阅 Amazon S3 定价页面

使用 S3 生命周期策略让未完成的分段上传过期,可通过限制未完成的分段上传的存储时间,帮助您节省成本。例如,如果您的应用程序上传了若干分段对象部分,但从未提交,那么您仍然需要为其存储付费。此策略可在预定义的天数后自动移除未完成的分段上传及其相关存储,从而降低您的 S3 存储费用。了解有关使用 S3 生命周期让未完成的分段上传过期的更多信息 »

是,您可以设置 Amazon S3 事件通知,以便在 S3 生命周期转移对象或使对象过期时通知您。例如,您可以在 S3 生命周期移动对象到不同 S3 存储类别或使对象过期时发送 S3 事件通知到 Amazon SNS 主题、Amazon SQS 队列或 AWS Lambda 函数。

存储分析和见解

全部打开

S3 Storage Lens 存储统计管理工具提供了对对象存储使用情况和活动趋势的组织范围可见性,并提出了可行的建议,以优化成本并应用数据保护最佳实践。S3 存储类分析使您可以跨对象监控访问模式,以帮助您决定何时将数据转换为正确的存储类,从而优化成本。然后,您可以使用此信息来配置进行数据传输的 S3 生命周期策略。Amazon S3 清单针对 S3 存储桶或前缀每日或每周提供一次对象及其对应元数据的报告。该报告通过验证对象的加密和复制状态,来帮助满足业务、合规和监管需求。

Amazon S3 Storage Lens 存储统计管理工具提供了对对象存储使用量和活动趋势的组织范围可见性,以及可行的建议,以优化成本并应用数据保护的最佳实践。Storage Lens 提供了一个交互式控制面板,其中包含组织中数十或数百个账户的对象存储使用情况和活动的单一视图,并可以通过向下钻取在多个聚合级别生成见解。这包含字节、对象计数、请求等指标,以及详细描述 S3 功能使用率的指标,例如加密对象计数和 S3 生命周期规则计数。S3 Storage Lens 还提供符合实际情况的建议,以找到降低存储成本的方法,并在数十个或数百个账户和存储桶之间应用数据保护方面的最佳实践。S3 Storage Lens 免费指标默认为所有 Amazon S3 用户启用。如果您想充分利用 S3 Storage Lens,则可以激活高级指标和建议。如需了解更多信息,请访问 S3 Storage Lens 存储统计管理工具用户指南

S3 Storage Lens 存储统计管理工具每日汇总您的存储使用情况和活动指标,在 S3 Storage Lens 存储统计管理工具交互式控制面板上可视化显示,或以 CSV 或 Parquet 文件格式导出指标。在账户级别自动为您创建一个默认控制面板,您可以选择创建其他自定义控制面板。S3 Storage Lens 存储统计管理工具控制面板的范围可以限定为您的 AWS 组织或特定账户、区域、存储桶,甚至前缀级别(适用于 S3 Storage Lens 高级指标)。您还可以使用 S3 Storage Lens 存储统计管理工具组,通过基于对象标签、大小和年龄等对象元数据的自定义筛选器来聚合指标。配置控制面板时,您可以使用默认指标选择,或升级以接收 35 个额外指标和前缀级聚合(需额外付费)。此外,S3 Storage Lens 存储统计管理工具还会根据控制面板中的存储指标情况提供建议,以便您可以采取行动以根据指标优化存储。


S3 Storage Lens 存储统计管理工具控制面板围绕四种主要类型的问题进行组织,这些问题可以回答有关您的存储的问题。使用“摘要”筛选器,可以探索与总体存储使用情况和活动趋势相关的最高级别问题。例如,“我的总体字节计数和请求计数是如何随时间快速增长的?” 通过“成本优化”筛选器,您可以探索与降低存储成本相关的问题,例如,“我是否可以通过保留较少的非当前版本来节省资金?” 通过“数据保护”和“访问管理”筛选器,您可以回答有关保护数据的问题,例如,“我的存储是否受到保护,不会被意外或故意删除?” 最后,通过“性能”和“事件”筛选器,您可以探索提高工作流性能的方法。这些问题中的每一个都代表可能导致向下钻取分析的第一层查询。

S3 Storage Lens 存储统计管理工具包含 60 多个指标,分为免费指标和高级指标(需额外付费)。在免费指标中,您会收到用于分析使用情况的指标(基于对象的每日快照),这些指标分为成本优化、数据保护、访问管理、性能和事件类别。在高级指标中,您会收到与活动相关的指标(例如请求计数)、更深入的成本优化(例如 S3 生命周期规则计数)、额外的数据保护(例如 S3 复制规则计数)和详细的状态代码(例如 403 授权错误)。此外,还可以通过组合任何基本指标来提供派生指标。例如,“取回率”是通过将“下载字节数”除以“总存储量”计算得出的指标。 若要查看指标的完整列表,请访问 S3 Storage Lens 存储统计管理工具文档


为您的整个账户提供自动配置的默认控制面板,您可以选择创建其他自定义控制面板,限于您的 AWS 组织、特定区域或账户中的存储桶。您可以设置多个自定义控制面板,如果您需要在存储分析中进行一些逻辑分离,例如对存储桶进行分段以代表各种内部团队,这将非常有用。默认情况下,您的控制面板会接收 S3 Storage Lens 存储统计管理工具免费指标,但您可以选择升级接收 S3 Storage Lens 高级指标和建议(需额外付费)。S3 Storage Lens 存储统计管理工具高级指标有 7 个不同的选项:活动指标、高级成本优化指标、高级数据保护指标、详细状态代码指标、前缀聚合、CloudWatch 发布和 Storage Lens 存储统计管理工具组聚合。此外,您可以为每个控制面板启用指标导出,还可以选择指定目标存储桶和加密类型。

对于交互式控制面板中显示的指标,Storage Lens 存储统计管理工具的免费指标保留 14 天的历史数据,Storage Lens 存储统计管理工具的高级指标(额外收费)则保留 15 个月的历史数据。对于可选的指标导出,您可以配置您想要的任何保留期,并且将按标准 S3 存储收费。


S3 Storage Lens 存储统计管理工具在两个指标套餐中可用。免费指标默认启用,所有 S3 客户均可免费使用。S3 Storage Lens 高级指标和建议定价详细信息可参考 S3 定价页面。使用 S3 Storage Lens 存储统计管理工具免费指标,您会收到 28 个存储桶级别的指标,并且可以在控制面板中访问 14 天的历史数据。借助 S3 Storage Lens 存储统计管理工具高级指标和建议,您会收到 35 个额外的指标、前缀级聚合、CloudWatch 指标支持、使用 S3 Storage Lens 存储统计管理工具组筛选的自定义对象元数据,并且可以在控制面板中访问 15 个月的历史数据。

S3 清单针对 S3 存储桶或共享前缀提供对象及其相应元数据的列表,可用于执行存储的对象级分析。S3 Storage Lens 存储统计管理工具提供可按组织、账户、区域、存储类别、存储桶、前缀和 S3 Storage Lens 存储统计管理工具组级别聚合的指标,可以使组织范围内的存储可见性得到改善。

根据前 30-90 天内的单个存储桶/前缀/标签范围内的对象级访问模式,S3 存储类别分析通过创建对象年龄组提供最佳存储类别的建议。S3 Storage Lens 存储统计管理工具提供有关提高成本效率和应用数据保护最佳实践的方法的日常组织级建议,以及按账户、区域、存储类、存储桶、S3 Storage Lens 存储统计管理工具组或前缀(可用于 S3 Storage Lens 存储统计管理工具高级指标)的额外细化建议。您还可以将自定义筛选器与 S3 Storage Lens 存储统计管理工具组结合使用,根据对象年龄可视化您的存储并告知您的存储归档策略。

使用存储类别分析,您可以分析存储访问模式,以确定适合您的存储的最佳存储类别。这一 S3 功能可自动识别不频繁访问模式,从而帮助您将存储转换为 S3 Standard-IA。您可以配置存储类分析策略来监视整个存储桶、前缀或对象标签。在观察到不频繁访问模式后,您可以根据结果轻松地创建新的 S3 生命周期策略。存储类分析还以可视化方式在 AWS 管理控制台上提供您每天的存储使用情况,您还可以将报告导出至 S3 存储桶,以便使用所选的 Amazon QuickSight 等商业智能工具进行分析。要想了解更多信息并开始使用,请访问 S3 存储类别分析用户指南

存储类别分析在 S3 管理控制台中每天更新,但对存储类别转换的最初建议在 30 天后提供。

随时查询

全部打开

Amazon S3 允许客户对存储数据运行复杂的查询,无需将数据移动到独立的分析平台。随时查询 Amazon S3 数据的功能可以大大提升性能,降低利用 S3 作为数据湖的分析解决方案的成本。S3 提供多种随时查询选项,包括 Amazon Athena 和 Amazon Redshift Spectrum,使您能够从中选择最适合您的应用场景的选项。

有多种方法可以在 S3 中查询数据,您可以根据具体应用场景进行选择。使用客户端筛选将 Amazon S3 对象下载到您的 AWS 计算,然后使用客户端应用程序上的数据分析库来筛选内容。例如,在查询 Amazon S3 中的 Parquet 对象的 Python 应用程序中,您可以使用 Amazon S3 GET API 下载对象并使用“Pandas”库筛选内容。使用 Amazon Athena 在单个查询中处理多个 S3 对象,甚至使用联接操作和窗口函数来查询您的 S3 对象。使用 S3 Object Lambda,将您自己的代码添加到 S3 GET 请求中,以在数据返回给应用程序时对其进行筛选。如果您想在筛选数据时添加转换,则应该使用 S3 Object Lambda。阅读 博客文章,详细了解在 Amazon S3 中查询数据的方法。

Amazon Athena 是一项交互式查询服务,让您能够轻松使用标准 SQL 查询分析 Amazon S3 中的数据。Athena 是无服务器式服务,因此您无需设置或管理基础设施即可马上开始分析数据。您甚至无需将数据加载到 Athena 中,因为它可以直接处理所有 S3 存储类中存储的数据。要开始使用,您只需登录到 Athena 管理控制台,定义架构,然后开始查询即可。Amazon Athena 使用 Presto 并为标准 SQL 提供了完整的支持,可处理 CSV、JSON、ORC、Apache Parquet 和 Avro 等各种标准数据格式。Athena 不仅是快速、临时查询的理想选择,可与 Amazon QuickSight 集成轻松实现可视化,而且还能处理复杂的分析,包括大型联接、窗口函数和数组。

Amazon Redshift Spectrum 是 Amazon Redshift 的一项功能,借助这项功能,您可以对 Amazon S3 中的 EB 级非结构化数据运行查询,而无需执行加载或 ETL 操作。当您发布查询时,查询会进入 Amazon Redshift SQL 终端节点,该终端节点会生成查询方案并对其进行优化。Amazon Redshift 会确定哪些数据存储在本地以及哪些数据存储在 Amazon S3 中,然后生成一种方案来尽可能减少需要读取的 Amazon S3 数据量,从共享资源池中请求 Redshift Spectrum 工作线程来读取和处理 Amazon S3 中的数据。Redshift Spectrum 可根据需要扩展到数千个实例,因此,无论数据大小如何,查询都会快速运行。而且,您可以像现在针对 Amazon Redshift 查询所做的一样,针对 Amazon S3 数据使用完全相同的 SQL,并可使用相同的商业智能工具连接到同一 Amazon Redshift 终端节点。Redshift Spectrum 可以实现单独的存储和计算,从而让您能够逐一单独扩展。您可以根据需要设置多个 Amazon Redshift 群集来查询 Amazon S3 数据湖,从而提供高可用性和无限制的并发度。借助 Redshift Spectrum,您可以灵活地将数据以您想要的格式存储在您想要的位置,并在需要时即时用于处理。

复制

全部打开

Amazon S3 复制支持跨 Amazon S3 存储桶自动以异步方式复制对象。配置为用于对象复制的存储桶可以由相同的 AWS 账户拥有,也可以由不同的 AWS 账户拥有。您可以将写入存储桶的新对象复制到不同 AWS 区域之间(S3 跨区域复制)或同一 AWS 区域内(S3 同区域复制)的一个或多个目标存储桶。您还可以复制现有存储桶内容(S3 批量复制),包括现有对象、之前复制失败的对象以及从其他源复制的对象。要了解更多信息,请访问 S3 复制用户指南

CRR 是 Amazon S3 的一项功能,可在不同 AWS 区域的存储桶之间自动复制数据。利用 CRR,您可以使用 S3 对象标签设置存储桶级别、共享前缀级别或对象级别的复制。您可以使用 CRR 在不同的地理区域中提供低延迟的数据访问。如果您需要遵循将数据副本存储在相距数百公里的不同地点的合规性要求,CRR 还可以帮助您达成这一目标。您可以使用 CRR 更改复制对象的账户所有权,以防数据意外删除。 要了解更多信息,请访问 S3 CRR 用户指南

SRR 是 Amazon S3 的一项功能,可在同一 AWS 区域内的存储桶之间自动复制数据。利用 SRR,您可以使用 S3 对象标签设置存储桶级别、共享前缀级别或对象级别的复制。您可以使用 SRR 在相同 AWS 区域内创建数据的一个或多个副本。SRR 可在原始数据所在的区域内将数据副本保存在单独的 AWS 账户中,从而帮助您获得数据主权并满足合规性要求。您可以使用 SRR 更改复制对象的账户所有权,以防数据意外删除。您也可以使用 SRR 轻松汇总来自不同 S3 存储桶的日志以进行区域内处理,或配置测试环境与开发环境之间的实时复制。要了解更多信息,请访问 S3 SRR 用户指南

Amazon S3 批量复制可在存储桶之间复制现有数据。您可以利用 S3 批量复制来回填新创建的存储桶,重试原先无法复制的对象,在账户之间迁移数据,或者向数据湖添加新的存储桶。只需在 S3 控制台上进行数次单击,或者通过单个 API 请求,即可开始使用 S3 批量复制。要了解更多信息,请访问 S3 批量复制用户指南

您可以使用 S3 对象标签在 S3 存储桶级别、共享前缀级别或对象级别配置 Amazon S3 复制(CRR 和 SRR)功能。在同一或不同 AWS 区域中指定目标存储桶用于复制,这样就可以在源存储桶上添加复制配置。您可以使用 S3 控制台、API、AWS CLI、AWS SDK 或 AWS CloudFormation 来启用复制。要启用复制功能,必须对源存储桶和目标存储桶都启用版本控制功能。要了解更多信息,请访问 Amazon S3 文档中的S3 复制功能设置概览

您首先需要在存储桶级别启用 S3 复制。请参考上一个问题以了解如何执行此操作。然后,您可以在创建新的复制配置、从复制配置页面或从 S3 Batch Operations Create Job(S3 批量操作创建作业)页面更改复制规则中的复制目标后,在 S3 控制台中启动 S3 批量复制作业。或者,您可以通过 AWS CLI 或 SDK 启动 S3 批量复制作业。要了解更多信息,请访问 Amazon S3 文档中的 S3 复制

借助 S3 复制功能,您可以制定复制规则,将对象复制到同一区域或其他区域中的另一个存储类别中。您无法复制生命周期操作,如果您希望对源存储桶和目标存储桶应用相同的生命周期配置,那么请在两个存储桶上启用相同的生命周期配置。  例如,您可以配置生命周期规则,将数据从 S3 Standard 存储类迁移到 S3 Standard-IA 或 S3 One Zone-IA 存储类,或将数据归档到目标存储桶上的 S3 Glacier 存储类。如果您为目标存储桶配置了 S3 生命周期,我们建议在批量复制作业处于活跃状态时禁用生命周期规则,以保持源存储桶和目标存储桶中对象的非当前版本和当前版本之间的奇偶校验。

有关生命周期配置的更多信息,请参阅
S3 复制文档


可以。S3 复制可让客户在相同或不同 AWS 区域中将数据复制到多个目标存储桶。设置时,您只需在现有复制配置中指定新目标存储桶即可,或用多个目标存储桶创建新的复制配置。对于指定的每个新目标,您可以灵活选择目标存储桶的存储级、加密类型、复制指标和通知、复制时间控制 (RTC) 和其他属性。

问:我可以使用 S3 复制在 S3 存储桶之间设置双向复制吗?

是的,对于 CRR 和 SRR,您可以跨 AWS 账户设置复制功能,将复制的数据存储在目标区域的不同账户中。您可以在复制配置中使用所有权覆盖来维护源和目标之间的不同所有权堆栈,并将目标账户所有权授予复制的存储。

使用跨区域复制可以跨 AWS 区域复制对象标签。已启用跨区域复制的用户需要具有新的权限才能复制标签。有关设置跨区域复制的更多信息,请访问 Amazon S3 文档中的如何设置跨区域复制

可以,如果在复制配置中启用了删除标记复制,则可以将删除标记从源位置复制到目标位置。复制删除标记时,Amazon S3 将表现为在两个存储桶中都删除了对象。您可以为新的或现有的复制规则启用删除标记复制。您可以使用基于前缀的复制规则将删除标记复制应用于整个存储桶或具有特定前缀的 Amazon S3 对象。Amazon S3 复制不支持基于对象标签的复制规则的删除标记复制。要了解有关启用删除标记复制的更多信息,请参阅将删除标记从一个存储桶复制到另一个存储桶

不能,目前不支持在 AWS 中国区域和中国之外的 AWS 区域使用 Amazon S3 复制。您只能在中国区域内复制。

可以。您可以使用 S3 复制,以在存储桶之间复制现有数据。要了解详情,请访问 S3 用户指南

可以。您可以使用 S3 批量复制来重新复制最初无法复制的对象。要了解详情,请访问 S3 用户指南

S3 复制支持 S3 提供的所有加密类型。S3 提供服务器端加密和客户端加密 — 前者要求 S3 为您加密对象,后者时用于在数据上传到 S3 之前在客户端对数据进行加密。对于服务器端加密,S3 提供了三种加密方式:使用 Amazon S3 托管密钥的服务器端加密(SSE-S3),使用存储在 AWS 密钥管理服务的 KMS 密钥的服务器端加密(SSE-KMS),以及使用客户提供的密钥的服务器端加密(SSE-C)。关于这些加密类型及其工作原理的详细信息,请访问详细说明加密使用的 S3 文档。

借助 S3 复制,您可以配置源存储桶和目标存储桶归不同 AWS 账户所有的跨账户复制。不包括 S3 存储和适用的取回费用,在使用 S3 复制时,客户需要支付复制 PUT 请求和从 S3 到目标区域的区域间数据传出费用。如果您在复制规则上启用了 S3 复制时间控制 (S3 RTC),您将看到与 S3 RTC 特定相关的不同数据传出和复制 PUT 请求费用。对于跨账户复制,源账户支付所有数据传输(S3 RTC 和 S3 CRR)的费用,目标账户支付复制 PUT 请求的费用。数据传输费仅适用于 S3 跨区域复制(S3 CRR)和 S3 复制时间控制(S3 RTC),S3 同区域复制(S3 SRR)不产生数据传输费。  如果您使用 S3 批量复制跨账户复制对象,除了复制 PUT 请求和数据传输 OUT 费用外,您还将产生 S3 分批操作费用(请注意,S3 RTC 不适用于批量复制)。分批操作费用包括作业和对象费用,分别基于作业数量和处理的对象数量。此外,如果您选择使用 Amazon S3 生成的清单,您将根据源存储桶中的对象数量产生清单费用。

访问
Amazon S3 定价页面了解关于 S3 复制定价的更多详细信息。

Amazon S3 复制时间控制提供可预测的复制性能,并帮助您满足合规或业务需求。S3 复制时间控制旨在实现数秒内复制大多数对象,15 分钟内复制 99.99% 的对象。S3 复制时间控制由服务等级协议(SLA)承诺提供支持,在任何计费月份中,对于每个复制区域,99.9% 的对象将在 15 分钟内复制。复制时间适用于所有 S3 复制功能。要了解更多信息,请访问复制文档

Amazon S3 复制时间控制作为每个复制规则的一个选项启用。您可以使用 S3 复制时间控制创建新的 S3 复制策略,或者在现有策略上启用该功能。您可以使用 S3 控制台、API、AWS CLI、AWS SDK 或 AWS CloudFormation 来配置复制。要了解更多信息,请访问《Amazon S3 开发人员指南》中的设置复制功能概述

是的,您可以启用 Amazon S3 复制时间控制,在 AWS 中国(宁夏)和中国(北京)区域内部和其之间进行数据复制。

Amazon S3 复制在 Amazon S3 控制台和 Amazon CloudWatch 中提供了四个详细指标:待处理操作、待处理字节、复制延迟和操作复制失败。您可以使用这些指标监控待复制操作总数和待复制对象的大小、源存储段和目标存储段之间的复制延迟以及每条复制规则中未成功复制的操作数。此外,您可以设置 s3:Replication 类型的 Amazon S3 事件通知,以获取有关复制失败的对象和失败原因的更多信息。我们建议使用 Amazon S3 复制失败原因快速诊断错误并进行修复,然后使用 S3 批量复制重新复制失败的对象。最后,如果您启用了 S3 Replication Time Control(S3 RTC),您将在复制一个对象的时间超过 15 分钟时收到 S3 事件通知,并在该对象成功复制到其目的地时收到另一条通知。

可以为每个新的复制规则或现有复制规则启用 Amazon S3 复制指标和事件,默认情况下,已为 S3 复制时间控制启用的规则启用它们。您可以通过 Amazon S3 控制台和 Amazon CloudWatch 访问 S3 复制指标。与其他 Amazon S3 事件一样,S3 复制事件可以通过 Amazon Simple Queue Service (Amazon SQS)、Amazon Simple Notification Service (Amazon SNS) 或 AWS Lambda 获得。要了解更多信息,请访问《Amazon S3 开发人员指南》中的使用复制指标监控进度和 Amazon S3 事件通知

您无法使用待处理字节、待处理操作和复制延迟等指标来跟踪 S3 批量复制进度。但是,您可以使用失败操作复制指标来监控无法通过 S3 批量复制成功复制的现有对象。此外,您还可以使用 S3 批量操作完成报告来跟踪通过 S3 批量复制的对象。

Amazon S3 复制时间控制旨在实现 15 分钟内复制 99.99% 的对象,由服务等级协议提供支持。如果在每月计费周期中,每个复制区域对 15 分钟内复制的对象少于 99.9%,那么 S3 RTC SLA 将针对任何复制时间超过 15 分钟的对象提供服务积分。服务积分包括与不符合 SLA 的对象相关的所有相关复制费用百分比,包括 RTC 费用、复制带宽和请求费用,以及在受影响的每月计费周期中与将副本存储在目标区域相关的成本。要了解更多信息,请阅读 S3 复制时间控制 SLA

对于 S3 复制(跨区域复制和同区域复制),您需要为所选目标 S3 存储类别中的存储支付 S3 费用,还要支付主副本、复制 PUT 请求的存储费用以及适用的不频繁访问存储取回费用。对于 CRR,您还需要支付从 S3 到目标区域的区域间数据传出费用。 S3 复制指标的费率与 Amazon CloudWatch 自定义指标费率相同。此外,当您使用 S3 复制时间控制时,您还需要支付复制时间控制数据传输费。有关更多信息,请访问 Amazon S3 定价页面。如果源对象是通过分段上传功能上传的,则使用相同数量的段和段大小进行复制。例如,通过分段上传功能上传的 100GB 对象(800 个段,每段 128MB)在复制时会产生与 802 个请求(800 个上传段请求 + 1 个初始分段上传请求 + 1 个完成分段上传请求)关联的请求成本。您会产生 0.00401 USD(802 个请求 x 0.005 USD/1000 个请求)的请求费用和(如果在不同的 AWS 区域之间进行复制)2.00 USD(0.020 USD/GB 传输 x 100GB)的区域间数据传输费用。复制后,该 100GB 数据会产生基于目标区域的存储费用。

在访问跨多个 AWS 区域复制的数据集时,Amazon S3 多区域接入点可将性能最多提高 60%。基于 AWS Global Accelerator,S3 多区域接入点会考虑网络拥塞和请求应用程序的位置等因素,通过 AWS 网络将您的请求动态路由到数据的最低延迟副本。这种自动路由允许您利用 AWS 的全球基础设施,同时保持简单的应用程序架构。

S3 多区域接入点可加速并简化多区域应用程序的存储。通过将 S3 请求动态路由到复制数据集,S3 多区域访问点减少了请求延迟,使应用程序运行速度提高 60%。S3 多区域访问点还可以帮助您构建弹性多区域和多账户应用程序,这些应用程序可以更好地防范意外或未经授权的数据删除。借助 S3 多区域接入点,您还可利用 AWS 的全球基础设施,同时为应用程序保持与区域无关的简单架构。

多区域接入点将客户端请求动态路由到一个或多个底层 S3 存储桶。您可以将多区域接入点配置为每个 AWS 区域(最多 17 个 AWS 区域)跨一个存储桶进行路由。创建多区域接入点时,S3 会自动生成与 DNS 兼容的名称。此名称将用作客户端可以使用的全局端点。当客户端向该端点发出请求时,S3 会将这些请求动态路由到多区域访问点配置中指定的一个底层存储桶。 基于互联网的请求被载入 AWS 全球网络,以避免互联网上的网段拥塞,从而减少网络延迟和抖动,同时提高性能。基于 AWS Global Accelerator,通过互联网访问 S3 的应用程序可以通过 S3 多区域访问点将性能进一步提高多达 60%。 要直接控制此路由,您可以在主动-主动或主动-被动配置中运行 S3 多区域访问点。在主动-被动配置中,您可以使用 S3 多区域访问点失效转移控制来启动失效转移,以在几分钟内将 S3 数据访问请求流量转移到所选的备用 AWS 区域和账户。
在主动-主动配置中,S3 多区域访问点会考虑网络拥塞和请求应用程序的位置等因素,通过 AWS 网络将您的请求动态路由到最近的数据副本。S3 多区域访问点会将您的请求路由到离您的客户端最近的 AWS 位置,然后通过全球私有 AWS 网络路由到 S3。在任何一种配置中,S3 多区域接入点都允许您利用 AWS 的全球基础设施,同时保持简单的应用程序架构。


S3 CRR 和 S3 多区域接入点的功能互补,协同工作,可以跨 AWS 区域复制数据,然后以最低的延迟自动将请求路由到复制副本。S3 多区域访问点可帮助您管理跨 AWS 区域的请求,而 CRR 允许您跨 AWS 区域移动数据以创建独立的副本。您可以将 S3 多区域接入点和 CRR 结合使用,以创建可由单个全球端点寻址的复制多区域数据集。


使用 S3 多区域接入点在 AWS 内路由请求时,每处理 1GB 将支付少量的每 GB 数据路由费用,以及 S3 请求、存储、数据传输和复制的标准费用。如果应用程序在 AWS 之外运行,并通过互联网访问 S3,S3 多区域访问点会根据访问延迟,通过 AWS 边缘站点,通过全球私有 AWS 网络,将请求自动路由到最近的数据副本,从而提高性能。要加快通过互联网发出的请求时,需要支付数据路由费和互联网加速费。S3 多区域访问点互联网加速定价根据源客户端与目标 AWS 区域位于同一位置还是位于不同位置而有所不同,也是标准 S3 数据传输定价之外的费用。 要使用 S3 多区域访问点失效转移控制,您只需支付标准 S3 API 费用即可查看每个区域的当前路由控制状态,并提交任何路由控制更改以启动失效转移。有关更多定价信息,请参阅 Amazon S3 定价页面和数据传输选项卡。



是的,您可以将 S3 多区域接入点的底层存储桶配置为 Requester Pays 存储桶。使用 Requester Pays,请求者支付与端点使用相关的所有费用,包括请求费用以及与存储桶和多区域访问点相关的数据传输成本。通常,如果您希望共享数据,但不产生与其他人访问数据相关的费用,则需要将您的存储桶配置为 Requester Pays 存储桶。 通常,存储桶所有者为与其存储桶关联的所有 Amazon S3 存储空间付费。要了解更多信息,请访问 S3 Requester Pays

S3 多区域接入点和 S3 Transfer Acceleration 提供类似的性能优势。 您可以使用 S3 Transfer Acceleration 来加速使用 AWS 全球网络与 Amazon S3 之间的内容传输。S3 Transfer Accelerator 可以帮助加速较大对象与单个 Amazon S3 存储桶之间的远距离传输。借助 S3 多区域访问点,您可以使用 AWS 全球网络执行类似的加速传输,但跨多个 AWS 区域中的许多 S3 存储桶,以处理进出 S3 的基于互联网、基于 VPC 和本地的请求。 当您将 S3 多区域接入点与 S3 Cross Replication 结合使用时,您将为 S3 多区域接入点提供将您的请求动态路由到来自多个位置的客户端的应用程序的最低延迟数据副本的功能。


S3 控制台提供了一个简单的引导式工作流,只需三个简单的步骤即可快速设置在 S3 上运行多区域存储所需的一切。首先,创建一个 Amazon S3 多区域访问点端点并指定您要在其间进行复制和失效转移的 AWS 区域。通过输入创建时拥有多个 AWS 账户的账户 ID,您可以将多个 AWS 账户中的存储桶添加到新的 S3 多区域访问点。其次,对于 S3 多区域访问点端点后面的每个 AWS 区域和 S3 存储桶,指定它们的路由状态是主动还是被动,其中主动 AWS 区域可以接受 S3 数据请求流量,被动区域在您启动失效转移之前不会被路由。第三,配置您的 S3 Cross-Region Replication 规则来同步你在不同区域和/或账户之间的 S3然后,您可以随时在 AWS 区域之间启动失效转移,以转移您的 S3 数据请求并监控您的 S3 流量转移到 Amazon CloudWatch 中的新活动 AWS 区域。或者,您也可以使用 AWS CloudFormation 自动配置多区域存储。CloudFormation 支持在 S3 上设置多区域存储所需的所有构建数据块,包括 S3 多区域接入点,允许您在 S3 控制台之外自动执行可重复的设置过程。

数据处理

全部打开

借助 S3 Object Lambda,您能够将自己的代码添加到 S3 GET、LIST 和 HEAD 请求中,以便在数据返回到应用程序时修改和处理数据。您可以使用自定义代码来修改 S3 GET 请求返回的数据,以便实施筛选行、动态调整图像大小、隐去机密数据等操作。您还可以使用 S3 Object Lambda 来修改 S3 LIST 请求的输出,以创建存储桶中对象的自定义视图,并使用 S3 HEAD 请求修改对象元数据(如对象名称和大小)。S3 Object Lambda 可以帮助您轻松满足任何应用程序的独特数据格式要求,而无需构建和运行额外的基础设施(例如代理层),也不必创建和维护数据的多个衍生副本。S3 Object Lambda 使用 AWS Lambda 函数自动处理标准 S3 GET、LIST 或 HEAD 请求的输出。AWS Lambda 是一种无服务器计算服务,无需管理底层计算资源,即可运行客户定义的代码。  只需在 AWS 管理控制台中单击几下,即可配置 Lambda 函数并将其附加到 S3 Object Lambda 服务访问点。此后,S3 将自动调用 Lambda 函数来处理通过 S3 Object Lambda 端点取回的任何数据,并将转换后的结果返回应用程序。您可以编写和执行自己的自定义 Lambda 函数,根据您的特定应用场景定制 S3 Object Lambda 的数据转换。 可以通过 S3 管理控制台、开发工具包或 API 来开始使用 S3 Object Lambda。如需了解更多信息,请访问 S3 Object Lambda 页面,或 S3 Object Lambda 用户指南

如果您想通过 S3 GET、LIST 或 HEAD 请求内联处理数据,则应使用 S3 Object Lambda。您可以使用 S3 Object Lambda 在多个应用程序间共享数据的单个副本,这样既无需构建和运行自定义处理基础设施,也无需存储数据的衍生副本。例如,使用 S3 Object Lambda 处理 S3 GET 请求后,您可以对敏感数据设置掩码以满足合规性要求、重组原始数据以便其与机器学习应用程序兼容、筛选数据以限制对 S3 对象中特定内容的访问,或满足各种其他使用案例需求。您可以使用 S3 Object Lambda 来丰富对象列表,方法是查询包含额外对象元数据的外部索引,筛选和屏蔽对象列表以只包含具有特定对象标签的对象,或者向对象列表中的所有对象名称添加文件扩展名。例如,如果您有一个包含多个离散数据集的 S3桶,您可以使用 S3 Object Lambda 来根据请求者筛选 S3 LIST 响应。  只需在 Amazon S3 管理控制台中单击几下即可设置 S3 Object Lambda。请参阅用户指南,了解更多信息。

S3 Object Lambda 使用您指定的 Lambda 函数来处理 GET、LIST 和 HEAD 请求的输出。对某个 Lambda 函数进行定义(以处理请求的数据)后,可以将该函数附加到 S3 Object Lambda 访问点。通过 S3 Object Lambda 访问点发出的 S3 GET、LIST 和 HEAD 请求现在将调用指定的 Lambda 函数。然后,Lambda 将获取客户端请求的 S3 对象并处理该对象。处理完成后,Lambda 会将处理过的对象流式传输回调用客户端。请参阅 S3 Object Lambda 用户指南,了解更多信息

S3 Object Lambda 可以通过多种方式进行设置。您可以通过导航到 Object Lambda Access Point(Object Lambda 访问点)选项卡,在 S3 控制台中设置 S3 Object Lambda。接下来,创建一个 S3 Object Lambda 访问点(您想要 S3 针对 GET、LIST 和 HEAD 请求执行的 Lambda 函数)和一个支持的 S3 访问点。向所有资源授予与 Object Lambda 交互的权限。最后,更新您的开发工具包和应用程序,以便通过新的 S3 Object Lambda 访问点使用您选择的语言开发工具包从 S3 取回数据。 在发出请求时,您可以使用 S3 对象 Lambda 访问点的别名。S3 对象 Lambda 访问点的别名将自动生成,而且对于通过 S3 对象 Lambda 访问的数据,这些别名可以与 S3 存储桶名称互换。对于现有的 S3 对象 Lambda 访问点,别名将自动分配并随时可供使用。AWS 文档中提供了 Lambda 函数实施的示例,可以帮助您开始使用。 您还可以使用 AWS CloudFormation 来自动化您的 S3 Object Lambda 配置。使用 AWS CloudFormation 模板时,账户中部署的 Lambda 函数会将 S3 对象传回请求客户端或应用程序,而不需要进行任何更改。您可以添加自定义代码,以便在数据返回到应用程序时修改和处理数据。要了解更多信息,请访问《S3 Object Lambda 用户指南》。

可以使用 S3 Object Lambda 执行 Lambda 函数中支持的任何操作。这为您处理请求提供了各种可用选项。您可以使用自己的 Lambda 函数来针对 GET、LIST 和 HEAD 请求运行自定义计算,从而根据应用程序的需要灵活处理数据。Lambda 处理时间最多不得超过 60 秒。有关更多详细信息,请参阅 S3 Object Lambda 文档

S3 Object Lambda 支持 GET、LIST 和 HEAD 请求。对 S3 Object Lambda 访问点发出的任何其他 S3 API 调用都将返回标准 S3 API 响应。如需了解有关 S3 Object Lambda 的更多信息,请参阅用户指南

S3 Object Lambda 函数失败时,您将收到请求响应,响应中会说明失败详情。与 Lambda 函数的其他调用一样,AWS 还可以代表您自动监控函数,通过 Amazon CloudWatch 报告指标。为了帮助您排查失败问题,Lambda 会记录函数处理的所有请求,并将由代码生成的日志自动存储在 Amazon CloudWatch Logs 中。有关访问 AWS Lambda 的 CloudWatch 日志的更多信息,请访问 CloudWatch 文档

S3 Object Lambda 可以连接 Amazon S3、AWS Lambda,也可以连接您选择的其他 AWS 服务,以交付与请求应用程序相关的对象。与 S3 Object Lambda 结合使用的所有 AWS 服务将继续受其各自服务等级协议 (SLA) 的管控。例如,如有任何 AWS 服务不遵守其服务承诺,您将有资格获得该服务的 SLA 中记录的服务积分。创建 S3 Object Lambda 访问点不会影响对象的持久性。不过,S3 Object Lambda 会调用您指定的 AWS Lambda 函数,而且您必须确保指定的 Lambda 函数正确并适用。请在此处查看最新的 Amazon S3 SLA

使用 S3 Object Lambda 时,对于通过 S3 Object Lambda 返回的每 GB 数据,您需按 GB 支付费用。您还需要为基于请求类型(GET、LIST 和 HEAD 请求)的请求付费,并在您指定的函数运行以处理请求的数据时收取 AWS Lambda 计算费用。要查看定价详细信息和示例,请参阅 S3 定价页面

数据访问

全部打开

适用于 Amazon S3 的 Mountpoint 是一个开源文件客户端,您可以使用它在计算实例上挂载 S3 存储桶,并将其作为本地文件系统进行访问。适用于 Amazon S3 的 Mountpoint 可将本地文件系统操作转换为对存储在 Amazon S3 中的对象的 REST API 调用。借助适用于 Amazon S3 的 Mountpoint,您可以实现较高的单实例吞吐量,从而更快地完成任务。适用于 Amazon S3 的 mountpoint 由 AWS 支持提供支持。获得 AWS Enterprise Support 访问权限的客户可以获得 Amazon 支持工程师提供的全天候技术支持以及针对其应用场景提供的架构指导。适用于 Amazon S3 的 Mountpoint 可与 Linux 操作系统和 AWS 计算服务(如 Amazon Elastic Compute Cloud [EC2])配合使用。要了解更多信息,请参阅适用于 Amazon S3 的 Mountpoint 页面用户指南

适用于 Amazon S3 的 Mountpoint 非常适合读取密集型数据湖工作负载,这些工作负载使用对现有文件进行随机和顺序读取操作以及用于创建新文件的顺序写入操作来处理 PB 级数据。这些工作负载从单个节点写入,不会修改 Amazon S3 中的现有数据。常见应用场景包括 PB 级自动驾驶汽车模拟、机器学习训练、基因组学分析和图像渲染。这些工作负载可以快速纵向扩展和缩减,同时依靠 Amazon S3 的弹性来最大限度地减少未充分利用的容量并避免过度配置吞吐量的成本。借助适用于 Amazon S3 的 Mountpoint,您可以高效利用计算实例的网络带宽,从而节省计算成本,并且可以可靠地扩展到数千个计算实例,以处理 PB 级数据湖工作负载。

适用于 Amazon S3 的 Mountpoint 支持基本的文件系统操作,例如读取大小不超过 5TB 的文件、写入新文件、列出现有文件以及创建和列出目录。适用于 Amazon S3 的 Mountpoint 不支持修改现有文件或删除现有目录。凭借这些操作,适用于 Amazon S3 的 Mountpoint 成为在 Amazon S3 数据湖中以高吞吐量读取和写入数据的应用程序的理想之选。它不适用于需要跨多个计算实例或用户进行协作和协调的应用程序。这些应用程序通常需要共享文件系统功能,例如附加到现有文件和文件锁定。您可以将适用于 Lustre 的 Amazon FSx 用于需要 POSIX 语义和共享文件系统功能的数据湖应用程序。

您可以按照文档中提供的说明在计算实例的本地目录中安装 S3 存储桶,以开始使用适用于 Amazon S3 的 Mountpoint。将 S3 存储桶安装到本地目录后,您的应用程序就可以将 S3 对象作为其计算实例上本地提供的文件进行访问。适用于 Amazon S3 的 Mountpoint 支持对现有 Amazon S3 对象进行顺序和随机读取操作,并支持对新对象进行顺序写入。您应该阅读适用于 Amazon S3 的 Mountpoint 的语义文档,了解有关受支持的文件系统操作的更多详细信息。您可以使用适用于 Amazon S3 的 Mountpoint 来访问所有 S3 存储类别中的对象,不包括 S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive 中的对象以及 S3 智能分层中的存档访问层和深度存档访问层中的对象。

使用适用于 Amazon S3 的 Mountpoint 不收取额外费用。在运行文件读取、文件写入和目录列出操作等文件系统操作时,您需要为适用于 Amazon S3 的 Mountpoint 发出的 S3 API 请求(例如 GET、PUT 和 LIST 请求)付费。有关 S3 请求定价的信息,请访问定价页面

适用于 Amazon S3 的 Mountpoint 提供的性能与 AWS 开发工具包相同。这意味着数据湖应用程序可以实现较高的单实例传输速率,从而有效利用其 Amazon EC2 实例上的可用网络带宽。为了实现更高的吞吐量,这些应用程序可以聚合多个实例的吞吐量,以获得更大的带宽(Tb/s)。

使用适用于 Amazon S3 的 Mountpoint 时,您可以使用 Amazon S3 现有的访问控制机制(包括存储桶策略和 AWS 身份和访问管理(IAM)策略)来控制对数据的访问。适用于 Amazon S3 的 Mountpoint 会将文件系统操作(例如读取和写入)转换为对您的 S3 存储桶的对象 API 请求。之后,Amazon S3 会评估所有相关策略,例如针对用户和存储桶的策略,以决定是否批准请求。适用于 Amazon S3 的 Mountpoint 没有引入新的访问控制机制。

适用于 Amazon S3 的 Mountpoint 不支持读取或写入 POSIX 样式的元数据,例如用户 ID、组 ID 和权限字段。可以将适用于 Lustre 的 Amazon FSx 与 Amazon S3 或 AWS DataSync 配合使用,为 S3 对象存储 POSIX 样式的元数据。

是的,适用于 Amazon S3 的 Mountpoint 支持通过网关 VPC 端点进行访问。建议您使用基于 AWS PrivateLink 的接口 VPC 端点从本地或其他 AWS 区域的 VPC 访问 S3。对于从与 S3 存储桶位于同一 AWS 区域的 VPC 访问 S3 的资源,我们建议使用网关 VPC 端点,因为它们不会被收取费用。

可以,您可以使用 AWS SDK 和 AWS CLI 从 Amazon EKS 访问 Amazon S3。对于使用文件系统接口读取和写入数据的应用程序,您可以使用适用于 Amazon S3 的 Mountpoint 容器存储接口(CSI)驱动程序。使用适用于 Amazon S3 的 Mountpoint CSI 驱动程序,您可以实现高水平的聚合吞吐量(最高可达每秒数 TB),而无需更改任何一行应用程序代码或权限模型。与适用于 Amazon S3 的 Mountpoint 类似,S3 CSI 驱动程序也支持对现有文件执行顺序和随机读取操作,还支持执行顺序写入操作以创建新文件。有关支持的文件系统操作的详细信息,请参阅 适用于 Amazon S3 的 Mountpoint 文件系统行为。只需在 EKS 控制台、AWS CLI、EKS API 或 AWS CloudFormation 中点击几下,即可安装、配置和更新适用于 Amazon S3 的 Mountpoint CSI 驱动程序。要了解更多信息,请访问适用于 Amazon S3 的 Mountpoint CSI 驱动程序 GitHub 页面

适用于 Amazon S3 的存储浏览器是一个开源组件,您可以将其添加到 Web 应用程序中,为最终用户(如客户、合作伙伴和员工)提供存储在 S3 中的数据的简单界面。借助适用于 S3 的存储浏览器,您可以为获得授权的最终用户提供访问权限,让他们能直接从您自己的应用程序轻松浏览、下载、上传、复制和删除 S3 中的数据。

如果您想添加一个专为浏览、下载 S3 数据并将其上传到应用程序而构建的简单用户界面,而不必自己编写代码来支持这种用户体验,则应使用存储浏览器。存储浏览器代表您向 S3 进行 API 调用,您可以自定义界面来匹配现有应用程序的设计和品牌。 

只需三个步骤即可将存储浏览器添加到您的应用程序中。首先,在您的 Web 应用程序中添加一个引用,以便在加载特定页面时调用存储浏览器。为此,您可以导入存储浏览器的 NPM 包并按照 S3 用户指南的定义向应用程序添加代码。其次,通过配置存储浏览器来设置授权,使其与 IAM Identity Center、Amazon Cognito 或您自己的自定义授权服务配合使用。第三,按照 S3 用户指南中的定义,在要在存储浏览器中向用户提供的存储桶上配置跨源资源共享规则和内容安全策略。此时,访问您选择启动存储浏览器的应用程序页面且经过身份验证的最终用户将能够使用他们有权访问的 S3 中的数据。

要使用 AWS 托管授权,您首先必须配置 IAM Identity Center,并在 S3 访问授权中为您的用户和群组设置权限授予,如 S3 用户指南中有关设置存储浏览器的定义。然后,将您的应用程序连接到 Identity Center,并将您的应用程序配置为将来自外部身份提供商的身份令牌与 Identity Center 中的身份令牌交换。最后,将应用程序配置为当用户在您的应用程序中打开页面以访问您在 S3 中的数据时,向存储浏览器提供 Identity Center 令牌。Identity Center 的备选方案是,当最终用户打开您选择向您的 S3 数据提供接口的页面时,您可以使用 Amazon Cognito 向存储浏览器提供访问凭证。要使用 Cognito,您需要在 Cognito 中设置身份存储,将其与 Amplify 中的身份验证资源关联,在 Amplify 中部署资源,然后按照 AWS Amplify 文档中的定义将您的应用程序代码连接到您的身份验证资源。然后,将存储浏览器添加到应用程序后,它将根据您选择的授权方法代表您授权最终用户访问数据。

要应用自定义授权,您需要将应用程序配置为向存储浏览器提供 STS 令牌,授权用户使用允许他们访问的 S3 数据集。在每个 STS 令牌的会话策略中,必须包括最终用户有权访问的每个 S3 数据集的访问级别。

可以使用 AWS CloudTrail 日志记录通过存储浏览器对您的数据进行的任何访问。只需在 AWS 管理控制台中单击几下,您就可以为存储浏览器使用的存储桶启用这些日志。当您使用 S3 访问授权时,S3 会将访问您的数据的最终用户的身份记录到 CloudTrail 日志中。

使用存储浏览器,您的最终用户可以浏览存储桶和前缀,按对象元数据排序,以及按名称搜索前缀和对象。最终用户还可以在 S3 中上传、下载、复制和删除对象。访问存储浏览器路线图,了解我们正在评估的功能列表。

否。存储浏览器不支持前缀或对象重命名。

可以。您可以添加自定义徽标并自定义存储浏览器界面的原色、边距、对齐方式、语言和其他方面,以匹配应用程序的设计和品牌。请访问 AWS Amplify 用户指南,了解您可以自定义的元素的完整列表。

适用于 Amazon S3 的存储浏览器

全部打开

适用于 Amazon S3 的存储浏览器是一个开源组件,您可以将其添加到 Web 应用程序中,为最终用户(如客户、合作伙伴和员工)提供存储在 S3 中的数据的简单界面。借助适用于 S3 的存储浏览器,您可以为获得授权的最终用户提供访问权限,让他们能直接从您自己的应用程序轻松浏览、下载、上传、复制和删除 S3 中的数据。

如果您想添加一个专为浏览、下载 S3 数据并将其上传到应用程序而构建的简单用户界面,而不必自己编写代码来支持这种用户体验,则应使用存储浏览器。存储浏览器代表您向 S3 进行 API 调用,您可以自定义界面来匹配现有应用程序的设计和品牌。 

只需三个步骤即可将存储浏览器添加到您的应用程序中。首先,在您的 Web 应用程序中添加一个引用,以便在加载特定页面时调用存储浏览器。为此,您可以导入存储浏览器的 NPM 包并按照 S3 用户指南的定义向应用程序添加代码。其次,通过配置存储浏览器来设置授权,使其与 IAM Identity Center、Amazon Cognito 或您自己的自定义授权服务配合使用。第三,按照 S3 用户指南中的定义,在要在存储浏览器中向用户提供的存储桶上配置跨源资源共享规则和内容安全策略。此时,访问您选择启动存储浏览器的应用程序页面且经过身份验证的最终用户将能够使用他们有权访问的 S3 中的数据。

要使用 AWS 托管授权,您首先必须配置 IAM Identity Center,并在 S3 访问授权中为您的用户和群组设置权限授予,如 S3 用户指南中有关设置存储浏览器的定义。然后,将您的应用程序连接到 Identity Center,并将您的应用程序配置为将来自外部身份提供商的身份令牌与 Identity Center 中的身份令牌交换。最后,将应用程序配置为当用户在您的应用程序中打开页面以访问您在 S3 中的数据时,向存储浏览器提供 Identity Center 令牌。Identity Center 的备选方案是,当最终用户打开您选择向您的 S3 数据提供接口的页面时,您可以使用 Amazon Cognito 向存储浏览器提供访问凭证。要使用 Cognito,您需要在 Cognito 中设置身份存储,将其与 Amplify 中的身份验证资源关联,在 Amplify 中部署资源,然后按照 AWS Amplify 文档中的定义将您的应用程序代码连接到您的身份验证资源。然后,将存储浏览器添加到应用程序后,它将根据您选择的授权方法代表您授权最终用户访问数据。

要应用自定义授权,您需要将应用程序配置为向存储浏览器提供 STS 令牌,授权用户使用允许他们访问的 S3 数据集。在每个 STS 令牌的会话策略中,必须包括最终用户有权访问的每个 S3 数据集的访问级别。

可以使用 AWS CloudTrail 日志记录通过存储浏览器对您的数据进行的任何访问。只需在 AWS 管理控制台中单击几下,您就可以为存储浏览器使用的存储桶启用这些日志。当您使用 S3 访问授权时,S3 会将访问您的数据的最终用户的身份记录到 CloudTrail 日志中。

使用存储浏览器,您的最终用户可以浏览存储桶和前缀,按对象元数据排序,以及按名称搜索前缀和对象。最终用户还可以在 S3 中上传、下载、复制和删除对象。访问存储浏览器路线图,了解我们正在评估的功能列表。

否。存储浏览器不支持前缀或对象重命名。

可以。您可以添加自定义徽标并自定义存储浏览器界面的原色、边距、对齐方式、语言和其他方面,以匹配应用程序的设计和品牌。请访问 AWS Amplify 用户指南,了解您可以自定义的元素的完整列表。