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

使用服务器端加密

贡献者

服务器端加密可用于保护空闲对象数据。StorageGRID 会在写入对象时对数据进行加密,并在您访问对象时对数据进行解密。

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

  • *SSE (使用 StorageGRID 管理的密钥进行服务器端加密) * :在问题描述 S3 请求以存储对象时, StorageGRID 会使用唯一密钥对对象进行加密。在问题描述 S3 请求以检索对象时, StorageGRID 会使用存储的密钥对对象进行解密。

  • * SSI-C (使用客户提供的密钥进行服务器端加密) * :在问题描述 S3 请求以存储对象时,您可以提供自己的加密密钥。检索对象时,您可以在请求中提供相同的加密密钥。如果这两个加密密钥匹配,则会对对象进行解密,并返回您的对象数据。

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

    重要说明 您提供的加密密钥永远不会存储。如果丢失加密密钥,则会丢失相应的对象。
    备注 如果使用 SSE 或 SSI-C 对对象进行加密,则会忽略任何分段级别或网格级别的加密设置。

使用 SS

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

x-amz-server-side-encryption

以下对象操作支持此命令头:

使用 SSI-C

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

请求标题 Description

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 位。

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

将服务器端加密与客户提供的密钥( SSI-C )结合使用的注意事项

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

  • 必须使用 https 。

    重要说明 使用 SSI-C 时, StorageGRID 会拒绝通过 http 发出的任何请求出于安全考虑,您应考虑使用 http 意外发送的任何密钥受到损坏。丢弃该密钥,并根据需要旋转。
  • 响应中的 ETag 不是对象数据的 MD5 。

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

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

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

    重要说明 您提供的加密密钥永远不会存储。如果丢失加密密钥,则会丢失相应的对象。
  • 如果为存储分段配置了跨网格复制或CloudMirror复制、则无法加载SSE-C对象。载入操作将失败。