Skip to main content
本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

StorageGRID 如何使用服务器端加密

服务器端加密允许您保护静态的对象数据。StorageGRID 在写入对象时对数据进行加密,并在访问对象时对数据进行解密。

如果要使用服务器端加密,可以根据加密密钥的管理方式选择两个互斥选项之一:

  • SSE(使用 StorageGRID 管理的密钥的服务器端加密):当您发出存储对象的 S3 请求时,StorageGRID 会使用唯一密钥加密对象。当您发出 S3 请求以检索对象时,StorageGRID 使用存储的密钥来解密对象。

  • SSE-C(使用客户提供的密钥进行服务器端加密):当您发出存储对象的 S3 请求时,您需要提供自己的加密密钥。检索对象时,您需要在请求中提供相同的加密密钥。如果两个加密密钥匹配,则会解密对象并返回您的对象数据。

    StorageGRID 负责管理所有对象加密和解密操作,而您必须管理您提供的加密密钥。

    注意 您提供的加密密钥绝不会被存储。如果丢失加密密钥,则会丢失相应的对象。
    备注 如果对象使用 SSE 或 SSE-C 加密,则将忽略任何存储桶级或网格级加密设置。

使用 SSE

要使用由 StorageGRID 管理的唯一密钥对对象进行加密,请使用以下请求标头:

x-amz-server-side-encryption

以下对象操作支持 SSE 请求标头:

使用 SSE-C

要使用您管理的唯一密钥加密对象,请使用三个请求标头:

请求标头 问题描述

x-amz-server-side​-encryption​-customer-algorithm

指定加密算法。标头值必须为 AES256

x-amz-server-side​-encryption​-customer-key

指定将用于加密或解密对象的加密密钥。密钥的值必须为 256 位,base64 编码。

x-amz-server-side​-encryption​-customer-key-MD5

根据 RFC 1321 指定加密密钥的 MD5 摘要,用于确保加密密钥传输无误。MD5 摘要的值必须是 base64 编码的 128 位。

以下对象操作支持 SSE-C 请求标头:

使用客户提供的密钥(SSE-C)的服务器端加密的注意事项

在使用 SSE-C 之前,请注意以下注意事项:

  • 您必须使用https。

    注意 使用 SSE-C 时,StorageGRID 会拒绝通过 http 发出的任何请求。出于安全考虑,您应将意外通过 http 发送的任何密钥视为已泄露。请丢弃该密钥,并根据需要进行轮换。
  • 响应中的 ETag 不是对象数据的 MD5。

  • 您必须管理加密密钥到对象的映射。StorageGRID 不存储加密密钥。您有责任跟踪为每个对象提供的加密密钥。

  • 如果您的存储桶已启用版本控制,则每个对象版本都应有自己的加密密钥。您有责任跟踪用于每个对象版本的加密密钥。

  • 由于您在客户端管理加密密钥,因此您还必须在客户端管理任何其他保护措施,例如密钥轮换。

    注意 您提供的加密密钥绝不会被存储。如果丢失加密密钥,则会丢失相应的对象。
  • 如果为存储桶配置了跨网格复制或 CloudMirror 复制,则无法载入 SSE-C 对象。载入操作将失败。