Amazon S3 现在会自动加密所有新对象 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon S3 现在会自动加密所有新对象

Amazon S3 现在将具有 Amazon S3 托管密钥的服务器端加密 (SSE-S3) 作为 Amazon S3 中每个存储桶的基本加密级别。从 2023 年 1 月 5 日起,上传到 Amazon S3 的所有新对象都将自动加密,不会产生额外费用,也不会影响性能。使用 256 位高级加密标准(AES-256)的 SSE-S3 会自动应用于所有新存储桶和任何尚未配置默认加密的现有 S3 存储桶。S3 存储桶默认加密配置和上传的新对象的自动加密状态可在 Amazon CloudTrail 日志、S3 清单、S3 Storage Lens 存储统计管理工具、Amazon S3 控制台中获得,并可用作 Amazon Command Line Interface(Amazon CLI)和 Amazon SDK 中的附加 Amazon S3 API 响应标头。

以下各部分回答了有关此更新的问题。

Amazon S3 会更改已配置了默认加密的现有存储桶的默认加密设置吗?

不会。对于已配置 SSE-S3 或具有 Amazon Key Management Service (Amazon KMS) 密钥的服务器端加密 (SSE-KMS) 的现有存储桶的默认加密配置,不会发生任何更改。有关如何设置存储桶的默认加密行为的更多信息,请参阅为 Amazon S3 存储桶设置默认服务器端加密行为。有关 SSE-S3 和 SSE-KMS 加密设置的更多信息,请参阅使用服务器端加密保护数据

是否会在未配置默认加密的现有存储桶上启用默认加密?

是。Amazon S3 现在在所有现有未加密的存储桶上配置默认加密,以应用具有 Amazon S3 托管密钥的服务器端加密 (SSE-S3),作为对上载到这些存储桶的新对象的基本加密级别。已在现有未加密存储桶中的对象不会自动加密。

如何查看新对象上载的默认加密状态?

目前,您可以在 Amazon CloudTrail 日志、S3 清单、S3 Storage Lens 存储统计管理工具、Amazon S3 控制台中查看新上传的对象的默认加密状态,并可将其作为 Amazon Command Line Interface(Amazon CLI)和 Amazon SDK 中的附加 Amazon S3 API 响应标头。

  • 要查看您的 CloudTrail 事件,请参阅《Amazon CloudTrail 用户指南》中的在 CloudTrail 控制台中查看 CloudTrail 事件。CloudTrail 日志为针对 Amazon S3 的 PUTPOST 请求提供 API 跟踪。当使用默认加密来加密存储桶中的对象时,关于 PUTPOST API 请求的 CloudTrail 日志将包含以下字段作为名称/值对:"SSEApplied":"Default_SSE_S3"

  • 要查看 S3 清单中新对象上载的自动加密状态,请将 S3 清单报告配置为包含 Encryption(加密)元数据字段,然后在报告中查看每个新对象的加密状态。有关更多信息,请参阅设置 Amazon S3 清单

  • 要在 S3 Storage Lens 存储统计管理工具中查看新对象上载的自动加密状态,请配置 S3 Storage Lens 存储统计管理工具控制面板,并在控制面板的 Data protection(数据保护)类别中查看 Encrypted bytes(加密字节数)和 Encrypted object count(加密对象计数)指标。有关更多信息,请参阅 创建 Amazon S3 Storage Lens 存储统计管理工具控制面板在控制面板上查看 S3 Storage Lens 存储统计管理工具指标

  • 要在 Amazon S3 控制台中查看存储桶级别的自动加密状态,请在 Amazon S3 控制台中查看 Amazon S3 存储桶的默认加密。有关更多信息,请参阅 配置默认加密

  • 要在 Amazon Command Line Interface(Amazon CLI)和 Amazon SDK 中将自动加密状态作为附加 Amazon S3 API 响应标头来查看,请在使用对象操作 API(如 PutObjectGetObject)时检查响应标头 x-amz-server-side-encryption

我需要做什么才能利用这一更改?

您无需对现有应用程序进行任何更改。由于针对您的所有存储桶都启用了默认加密,因此上载到 Amazon S3 的所有新对象都会自动加密。

我能否对正写入我的存储桶的新对象禁用加密?

不能。SSE-S3 是新的基本加密级别,适用于上载到您的存储桶的所有新对象。您无法再为新对象上载禁用加密。

我的费用会受到影响吗?

不会。使用 SSE-S3 进行默认加密不会产生额外的成本。像往常一样,将向您收取存储、请求和其他 S3 特征的费用。有关定价信息,请参阅 Amazon S3 定价

Amazon S3 会加密我现有的未加密对象吗?

不会。从 2023 年 1 月 5 日开始,Amazon S3 仅自动加密新上载的对象。要加密现有对象,您可以使用 S3 批量操作创建对象的加密副本。这些加密副本将保留现有的对象数据和名称,并将使用您指定的加密密钥进行加密。有关更多详细信息,请参阅 Amazon 存储博客中的 Encrypting objects with Amazon S3 Batch Operations(使用 Amazon S3 批量操作加密对象)。

在此版本之前,我没有为我的存储桶启用加密。我需要更改访问对象的方式吗?

不需要。使用 SSE-S3 进行默认加密,在将您的数据写入 Amazon S3 时会自动加密这些数据,并在您访问时解密这些数据。访问自动加密的对象的方式没有变化。

我需要更改访问客户端加密的对象的方式吗?

不需要。所有在上载到 Amazon S3 之前经过加密的客户端加密对象都作为 Amazon S3 中已加密的加密文字对象到达。这些对象现在将具有额外的 SSE-S3 加密层。使用客户端加密对象的工作负载不要求对客户端服务或授权设置进行任何更改。

注意

未使用 Amazon 提供者的已更新版本的 HashiCorp Terraform 用户在创建没有客户定义的加密配置的新 S3 存储桶后,可能会看到意想不到的偏差。为避免这种偏差,请将您的 Terraform Amazon 提供者版本更新为以下版本之一:任何 4.x 发行版、3.76.1 或 2.70.4。