Google cloud storage Google云存储与S3接口的互操作性失败,SignatureDesNotMatch

Google cloud storage Google云存储与S3接口的互操作性失败,SignatureDesNotMatch,google-cloud-storage,Google Cloud Storage,基本上,我尝试使用S3浏览器中的开发者密钥测试GET调用,通过HTTPS url访问bucket ACL。以下是网址: 但我得到了以下错误: SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method. TaskID: 108 我只是遵循从S3到GCS的

基本上,我尝试使用S3浏览器中的开发者密钥测试GET调用,通过HTTPS url访问bucket ACL。以下是网址:

但我得到了以下错误:

SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. 
Check your Google secret key and signing method. TaskID: 108
我只是遵循从S3到GCS的简单迁移过程,但我仍然面临一些问题。你们中的任何一个人能解释一下为什么上面的步骤不适用于S3浏览器吗?上面的链接说它会起作用。为了让它工作,我应该在这里更改任何HTTP/自定义头吗

下面是我的电话

GET /?acl HTTP/1.1

 Host: mybucket1.storage.googleapis.com

 User-Agent: curl/7.55.1

 Accept: */*

 Authorization: AWS4-HMAC-SHA256 
Credential=GOOGCMZOMXVFOS2EJ4PUP7YR/20190531/us-east1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=5e3c9d4df679b0ea847ff2216842d34ea43c1366e67d6d36b338e59b3c515f73

 x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

 x-amz-date: 20190531T042146Z


在您仍然使用AWS密钥的通话中,您需要根据本文档替换授权标头

在您仍然使用AWS密钥的通话中,您需要根据此文档替换授权标头,错误消息后应立即出现一个
部分,其中包含服务器为验证您的签名而签名的全部内容。请看一看,确保没有什么令人惊讶的。嗨,正如布兰登所问的那样,Lakshmikantha,错误响应中有值吗?它将帮助我们调试您的问题。ErrMsg:signaturedesnotmatch我们计算的请求签名与您提供的签名不匹配。请检查您的Google密钥和签名方法。AWS4-HMAC-SHA25620190531T092930Z20190531/us-east1/s3/AWS4_Request401997AF89A550B9CF7B215EDB141F72A15BCC3707DBC13F4908690DE958618Get/mybucket1/acl=host:storage.googleapis.comx-amz-content-sha256:未签名的PAYLOADx amz日期:20190531T09230Zhost;x-amz-content-sha256;x-amz-dateUNSIGNED-Payloads很抱歉响应太晚。如果我在授权标头中使用x-GOOG*标头,则相同的GET请求也会起作用。该错误消息后应立即出现一个
部分,其中包含服务器为验证您的签名而签名的完整内容。请看一看,确保没有什么令人惊讶的。嗨,正如布兰登所问的那样,Lakshmikantha,错误响应中有值吗?它将帮助我们调试您的问题。ErrMsg:signaturedesnotmatch我们计算的请求签名与您提供的签名不匹配。请检查您的Google密钥和签名方法。AWS4-HMAC-SHA25620190531T092930Z20190531/us-east1/s3/AWS4_Request401997AF89A550B9CF7B215EDB141F72A15BCC3707DBC13F4908690DE958618Get/mybucket1/acl=host:storage.googleapis.comx-amz-content-sha256:未签名的PAYLOADx amz日期:20190531T09230Zhost;x-amz-content-sha256;x-amz-dateUNSIGNED-Payloads很抱歉响应太晚。如果我在授权标头中使用x-GOOG*标头,则相同的GET请求也有效。您好,请您指出错误所在。根据doc,我不需要更改AWS的安全头,只需要使用googlesecretkey生成加密密钥,就像我做的那样。“在一个简单的迁移方案中,您只需更改标题以使用您的Google Developer访问密钥,并确保您附加的签名是使用您的Google Developer密钥计算的。在一个简单的迁移中,如果您使用的是AWS4-HMAC-SHA256,则无需更改凭据范围。您能检查您的密钥是否正确吗?我也有相同的方法。”问题当我故意使用错误的keyHi时,密钥是正确的。当我将标题更改为使用X-GOOG*。它起作用了。相同的GET请求适用于以下授权标题。授权:GOOG4-HMAC-SHA256 Credential=GOOGCMZOMXVFOS2EJ4PUP7YR/20190604/us-east1/s3/GOOG4_请求,SignedHeaders=host;X-GOOG-content-SHA256;X-GOOG-date,Signa真的=0ce135221e7d15f906e7fe37ce113a21e1c5bb3e8e6cd58d150c486dac94c5abI我认为你不能把你的加密密钥放在这里,因为这是一个公共站点,你需要进行中间更改,以避免任何安全问题@Lakshmikantha ReddyI在粘贴到这里之前损坏了它们。嗨,你能指出哪里出了问题。根据文件,我不需要更改AWS的安全标头,只需使用Google密钥生成加密密钥,我就是这么做的。”在一个简单的迁移场景中,您只需更改标头以使用您的Google开发者访问密钥,并确保您附加的签名是使用您的Google开发者密钥计算的。在一个简单的迁移中,如果您使用的是AWS4-HMAC-SHA256,则不需要更改凭据作用域。您可以检查您的密钥是否正确吗?当我故意使用错误的密钥时,我也遇到了同样的问题。当我将标题更改为使用X-GOOG*时。成功了。相同的GET请求适用于以下授权标头。授权:GOOG4-HMAC-SHA256凭证=GOOGCMZOMXVFOS2EJ4PUP7YR/20190604/us-east1/s3/GOOG4_请求,签名头=主机;x-goog-content-sha256;x-goog-date,Signature=0ce135221e7d15f906e7fe37ce113a21e1c5bb3e8e6cd58d150c486dac94c5abI我认为你不能把你的加密密钥放在这里,因为这是一个公共站点,你需要进行中间更改以避免任何安全问题@Lakshmikantha ReddyI在粘贴到这里之前损坏了它们。