KMS加密后,AWS S3 etag与md5不匹配

时间:2018-12-21 10:04:11

标签: amazon-web-services amazon-s3 checksum md5sum aws-kms

全部-我们正在努力将一些机密和法规信息从本地UNIX文件系统迁移到S3。

使用“ aws s3 cp--sse aws:kms --sse-kms-key-id .......”命令,使用AWS EC2实例将文件复制到S3。

我注意到etag与unix md5sum不同。如果我不使用kms密钥加密数据,则完全相同。

我需要验证上传内容,以确保上传到S3时数据没有损坏,我如何验证我的文件是完整的,因为加密导致etag不匹配。

我们非常感谢您的帮助!

PS:我的文件不是5GB,我知道分段上传的问题,它不适用于我。...

1 个答案:

答案 0 :(得分:1)

在AWS S3中,etag不是MD5校验和。如果只是这种情况,过去就是这种情况,但是AWS警告不要对这种方法进行完整性检查。

以下链接是我指的文字:

The ETag may or may not be an MD5 digest of the object data.

  

实体标签是对象的哈希。 ETag仅反映更改   对象的内容,而不是其元数据。 ETag可能会或可能会   不是对象数据的MD5摘要。是否存在取决于   关于如何创建对象以及如何按照说明进行加密的信息   下方:

     
      
  • 由PUT对象,POST对象或复制操作或通过AWS管理控制台创建的对象,并由SSE-S3或   纯文本,具有ETag,这些ETag是其对象数据的MD5摘要。

  •   
  • 由PUT对象,POST对象或复制操作或通过AWS管理控制台创建的对象,并由SSE-C或   SSE-KMS的ETag不是其对象数据的MD5摘要。

  •   
  • 如果通过“分段上传”或“分段复制”操作创建了对象,则无论采用哪种方法,ETag都不是MD5摘要。   加密。

  •   

Common Response Headers