このトピックでは、Object Storage Service (OSS) 署名エラーのトラブルシューティング方法について説明します。
エラーメッセージ
<?xml version="1.0" encoding="UTF-8"?>
<エラー>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. キーと署名方法を確認します。</Message>
<RequestId>646DCB189AE2D1333018 ****</RequestId>
<HostId>bucket.oss-cn-hangzhou.aliyuncs.com</HostId>
<OSSAccessKeyId>LTAI5tMw7e8zyBazfpSS ****</OSSAccessKeyId>
<SignatureProvided>tPN3MChhuKk2XixolQLonoJW ****</SignatureProvided>
<StringToSign>PUT\n\n\nTue, 23 May 2023 15:24:55 GMT\n/bucket/?acl</StringToSign>
<StringToSignBytes>50 55 54 0A 0A 0A 54 75 65 2C 20 32 33 20 4D 61 79 20 32 30 32 33 20 31 35 3A 32 34 3A 35 35 3A 34 35 35 47 4D 54 0A 64 69 6E 61 72 79 2F 3F 61 63 6C </StringToSignBytes>
<EC>0002-00000040</EC>
</エラー>
API操作を呼び出すか、OSS SDKを使用してOSSにアクセスする場合、クライアントはOSSサーバーがID認証を実行するための署名を含める必要があります。 サーバーが上記のエラーメッセージを返した場合、リクエストで指定した署名は、サーバーによって計算された署名と一致しません。 その結果、リクエストは拒否されます。
トラブルシューティング
リクエストで署名エラーが発生した場合は、次の手順を実行してエラーをトラブルシューティングします。
AccessKey IDとAccessKey secret が正しいことを確認してください。
AccessKey IDとAccessKey secretを使用してossbrowserにログインし、AccessKey IDとAccessKey secretが有効かどうかを確認できます。 詳細については、「ossbrowserへのインストールとログイン」をご参照ください。
署名アルゴリズムが有効かどうかを確認します。
OSSには、署名を含めることができる2つのリクエストメソッドがあります。 詳細については、「承認ヘッダーに署名を含める」および「URLに署名を追加する」をご参照ください。 次の項目は、2つの署名方法のアルゴリズムを示しています。
承認ヘッダーに署名を含める
StringToSign = VERB + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedOSSHeaders + CanonicalizedResource 署名=base64(hmac-sha1(AccessKeySecret、StringToSign)
URLへの署名の追加
StringToSign = VERB + "\n" + CONTENT-MD5 + "\ n" +コンテンツタイプ+ "\ n" + EXPIRES + "\n" + CanonicalizedOSSHeaders + CanonicalizedResource 署名=urlencode(base64(hmac-sha1(AccessKeySecret、StringToSign)))
OSS SDKを使用してOSSにアクセスすることを推奨します。 これにより、署名を手動で計算する必要がなくなります。 詳細については、「概要」をご参照ください。
レスポンス本文の
StringToSign
フィールドの値がリクエストの値と一致しているかどうかを確認します。StringToSign
フィールドは、署名する文字列を指定します。これは、署名アルゴリズムでAccessKeyシークレットを使用して暗号化する必要があるコンテンツです。例:
PUT /bucket/abc?acl 日付: 5月24日水曜日2023 02:12:30 GMT 承認: OSS qn6qrrqxo2oawuk53otf ****:77Dvh 5wQgIjWjwO/KyRt8dOP **** x-oss-abc: mymeta
上記のメソッドを使用して計算された署名される文字列:
PUT\n\n\n水曜日、24 5月2023日02:12:30 GMT\nx-oss-abc:mymeta\n/bucket/abc?acl