使用校验和 - Amazon EBS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用校验和

GetSnapshotBlock 操作返回快照的数据块中的数据,而 PutSnapShotBlock 操作会将数据添加到快照的数据块中。传输的数据块数据不在签名版本 4 签名流程中进行签名。因此,使用校验和来验证数据的完整性,如下所示:

  • 使用 GetSnapshotBlock 操作时,响应会使用 x-amz-Checksum 标头为数据块数据提供 Base64 编码的 SHA256 校验和,并使用 x-amz-Checksum-Algorithm 标头提供校验和算法。使用返回的校验和验证数据的完整性。如果生成的校验和与 Amazon EBS 提供的校验和不匹配,您应将数据视为无效,然后重试请求。

  • 使用 PutSnapshotBlock 操作时,您的请求必须使用 x-amz-Checksum 标头为数据块数据提供 Base64 编码的 SHA256 校验和,并使用 x-amz-Checksum-Algorithm 标头提供校验和算法。您提供的校验和将根据 Amazon EBS 生成的校验和进行验证,以验证数据的完整性。如果校验和不相符,请求将失败。

  • 当您使用 CompleteSnapshot 操作时,您的请求可以选择针对添加到快照的完整数据集,提供聚合的 Base64 编码的 SHA256 校验和。使用 x-amz-Checksum 标头提供校验和,使用 x-amz-Checksum-Algorithm 标头提供校验和算法,并使用 x-amz-Checksum-Aggregation-Method 标头提供校验和聚合方法。要使用线性聚合方法生成聚合校验和,请按照数据块索引的升序排列各个写入数据块的校验和,将它们连接成单个字符串,然后使用 SHA256 算法生成整个字符串的校验和。

这些操作中的校验和是签名版本 4 签名流程的一部分。