メインコンテンツまでスキップ

CONTAP-345422:クライアントが要求でエンコードされたURI文字を送信すると、シグネチャバージョンv4要求がシグネチャ不一致エラーで失敗する。

Views:
Visibility:
Public
Votes:
0
Category:
ontap-9
Specialty:
core
Last Updated:

問題

  • 特殊文字はURIでエンコード(/ AS %2F)する必要があり、URLで使用する必要がありますが、一部のクライアントはデコードされた値("/")を送信する必要があります。
  • たとえば、「/」文字は予約文字であり、URLのパスを区切るためにプレフィックスで使用される場合は特別な意味があります。
  • ここでは'%2F'にエンコードすることで使用されます。
  • 次のエラーが表示されます。


[root@linux ~]$curl 'https://s3-server.local/xxxxxxxxxx-xxxxxxx-xxx?prefix=tool/tool/' -X GET -H "Host: s3-server.local"
-H "X-Amz-Content-Sha256: e4xsjdhbsj98fdsfdvcsdvndvfjnsjfvndfvbfaaaa"
-H "X-Amz-Date: 20241126T102448Z"
-H "Authorization: AWS4-HMAC-SHA256 Credential=XAAFEFHU78347328139AAA/20241126/ME2/s3/aws4_request, --cacert cert.pem
<?xml version="1.0" encoding="UTF-8"?><Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message></Error>


  • 他のクライアント(S3ブラウザやAWS CLIなど)は、問題に面していません。
  • AWS CLIの使用例:


[root@linux ~]$ s3cmd ls -d s3://xxxxxxxxxx-xxxxxxxx-xx//tool/tool/1
DEBUG: Command: ls
.....
.........
DEBUG: non-proxied HTTPSConnection(s3-server.local, None)
DEBUG: format_uri(): /xxxxxxxxxx-xxxxxxxx-xx/?delimiter=%2F&prefix=%2Ftool%2Ftool%2F1
DEBUG: Sending request method_string='GET', uri='/xxxxxxxxxx-xxxxxxxx-xx/?delimiter=%2F&prefix=%2Ftool%2Ftool%2F1', headers={'x-amz-date': 'Fri, 29 Nov 2024 00:36:34 +0000', 'Authorization': 'AWS xxxxxxxxxx:yyyyyyyyyyyy='}, body=(0 bytes)
....
DEBUG: Response:
.....
.........
'reason': 'OK',
'status': 200}
2024-11-15 02:36 1048576 s3://xxxxxxxxxx-xxxxxxxx-xx//tool/tool/1

 

Sign in to view the entire content of this KB article.

New to NetApp?

Learn more about our award-winning Support

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.