問題の説明
リクエストにアクセスアドレス制限が含まれている署名は、Object Storage Service (OSS) によって計算された署名と一致しません。
発生原因
アクセスアドレス制限のある署名を含むリクエストを開始しましたが、リクエスト内の署名はOSSによって計算された署名と一致しません。
例
アクセスアドレス制限を含む署名付きリクエストを開始しましたが、指定されたIPアドレスセグメントからリクエストが開始されないか、署名の計算が正しくありません。
GET /oss.jpg?x-oss-ac-forward-allow=true&Expires=1647730289&x-oss-ac-subnet-mask=32&Signature=d38L ***&OSSAccessKeyId=u8r *** n6m HTTP/1.1
ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com
日付: 火曜日、12月20日2022 08:48:18 GMT
ソリューション
指定されたIPアドレスセグメントからリクエストが開始されていることを確認してください。
Alibaba Cloud SDKを使用してリクエストを開始することを推奨します。 Alibaba Cloud SDKは、手動で署名を計算する必要なしに、リクエストの署名を自動的に生成します。 詳細については、「概要」をご参照ください。
Alibaba Cloud SDKを使用してリクエストを開始した後に署名の不一致が報告された場合は、次の手順を実行して問題をトラブルシューティングします。
エンドポイントの形式が有効かどうかを確認します。
この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 有効なエンドポイントの形式は次の http://oss-cn-hangzhou.aliyuncs.com です。 他のリージョンのエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
AccessKey IDとAccessKey secret が正しいことを確認してください。
AccessKey IDとAccessKey secretは、スペースで開始または終了することはできません。
バケットとオブジェクトが次の命名規則を満たしていることを確認します。
バケットの命名規則:
名前はOSSで一意である必要があります。
名前には、小文字、数字、およびハイフン (-) を使用できます。
名前の先頭と末尾は、小文字または数字である必要があります。
名前の長さは 3 ~ 63 文字である必要があります。
オブジェクトの命名規則:
名前はUTF-8でエンコードする必要があります。
名前の長さは 1 から 1,023 バイトにする必要があります。
名前を、スラッシュ (/) またはバックスラッシュ (\) で始めることはできません。
名前は大文字と小文字を区別します。
署名方法を確認します。
プロキシサーバーに追加のヘッダーが追加されているかどうかを確認します。
自己署名モードを使用します。
サーバーが
StringToSign
パラメーターを含む応答を返した場合、サーバーのStringToSignパラメーターの値が計算前の文字列と同じかどうかを確認できます。