クラウド開発ツール

AWS SigV4署名デバッグ

送信時のリクエスト項目を入力し、署名に使われる文字列を順に確認します。

AWS SigV4署名デバッグ

リクエスト入力

追加ヘッダー(1行に1件)

本文テキスト(UTF-8)

署名結果

ブラウザー内で計算し、通信しません。本番の秘密鍵は入力せず、テスト用の値を使ってください。

署名オプションと参照値

UTC日時

参照用の正規リクエスト

URLを入力してください。

レポートではSession Tokenを伏せます。伏せた正規リクエストで署名を再計算できません。

SignatureDoesNotMatchが出たら、まず鍵を疑う前に正規リクエストを比べてください。AWS SigV4署名デバッグはパス、クエリ、ヘッダー、本文ハッシュを分けて表示し、差がどこから生まれたかを追えます。

AWS公開のダミーキーと固定日時の例を読み込めます。計算は端末内だけで行い、IAM権限や実際のエンドポイントでの成功までは判定しません。

AWS SigV4署名デバッグを使う理由

署名の不一致を、比較できる具体的な文字列に分解します。

エンコードと並び順を見分ける

AWS SigV4署名デバッグはクエリ名と値をエンコードしてから並べ、署名対象ヘッダーを正規化します。`+`と`%20`、重複キー、空白行の違いが正規リクエストにそのまま現れます。

重複するクエリ項目とヘッダーが並べ替えられ、パスのスラッシュは保たれる図。

各段階を一つずつ追う

正規リクエストのSHA-256、スコープ、署名文字列、任意のテスト署名を順に表示します。参照用の正規リクエストを貼ると、AWS SigV4署名デバッグが最初に異なる行を示します。

正規リクエストからハッシュ、署名文字列、ローカル署名へ進み、参照値と照合する図。

再現性のある入力で原因を絞る

01

日時を固定する

UTC日時は最初の表示時に一度だけ設定します。「現在時刻」を押さない限り変わりません。S3の公開サンプルは置き換え前にプレビューでき、既知の署名と比較できます。

02

HMACより先に正規化を確認する

手動で実行するかCtrl/Cmd+Enterを押します。URI、並べたクエリ、整形したヘッダー、本文ハッシュを先に確認してください。S3では選んだモードに応じてx-amz-content-sha256を加えます。

03

参照値との差を確かめる

秘密鍵がなくても正規リクエストは比較できます。最終署名の比較だけテスト用キーが必要です。通常のレポートではSession Tokenを伏せ、正確な原文のコピーは別操作にしています。

署名計算のどこを確認できるか

六つの正規化要素

HTTPメソッド、URI、整列クエリ、ヘッダー、SignedHeaders、本文ハッシュを連結します。重複クエリキーは残し、`+`は空白ではなく`%2B`として扱います。

署名文字列とスコープ

正規リクエストのSHA-256と日付・リージョン・サービスのスコープを表示します。リージョンを誤ると文字列だけでなく導出されるHMACキーも変わります。

任意のテスト署名

秘密鍵なしでも構造の診断はできます。使い捨てのテスト用キーを入力した場合だけSignatureとAuthorizationを計算し、秘密鍵や中間キーは表示しません。

参照テキストとの比較

参照用の正規リクエストを行ごとに照合し、64桁の署名も比較します。SigV4署名の不一致を見つけても、AWSでの認証成功を意味するわけではありません。

オフライン計算の範囲

Authorizationヘッダー方式のみ
AWS4-HMAC-SHA256のヘッダー署名を扱います。署名付きURL、SigV4a、V2、チャンク転送、cURLやHAR全体の取り込みは対象外です。
AWSへの送信なし
入力URLやAWSへリクエストを送りません。テスト用HMACが一致しても、資格情報の有効性、IAM権限、プロキシ通過後のバイト列は確認できません。
パスと本文を勝手に直さない
S3オブジェクトのパスを正規化しません。曖昧なドット区間やエンコードされたスラッシュはエラーにします。本文ハッシュは貼り付けたUTF-8テキストに限ります。
一時認証情報の扱い
Session Tokenはx-amz-security-tokenとして署名されます。正確な正規リクエストには値が現れる場合があります。通常レポートでは伏せるため、そのレポートから署名を再計算できません。

AWS SigV4署名デバッグのよくある質問

API GatewayのIAM認可でSigV4署名が一致しない場合、どう調べますか?

まずクライアントの正規リクエストとAWSが返した期待値を比較します。AWS SigV4署名デバッグで最初の差分を見つけ、URIの符号化、クエリ順、署名対象ヘッダー、本文ハッシュを順に調べます。

SignatureDoesNotMatchの原因は何ですか?

実際に届いたリクエストと署名時のリクエストが違う場合があります。プロキシがヘッダーやパスを変えていないか確認し、日時、リージョン、サービス、テスト用キーの組も照合してください。

秘密鍵なしでSigV4署名を確認できますか?

正規リクエスト、そのハッシュ、署名文字列は確認できます。最終HMACの再計算には対応する秘密鍵が必要です。入力がなければ署名値は作りません。

AccessDeniedなら署名は正しいのですか?

エラーの意味はサービスと処理段階によります。このページはAWSを呼び出さずIAMポリシーも読みません。サービスのログと権限診断を合わせて確認してください。

AWS側の正規リクエストはどこで比較できますか?

一部のエラー応答には期待する正規リクエストや署名文字列が含まれます。SDKのデバッグログも利用できます。参照欄に貼る前に実際のSession Tokenを取り除いてください。

解決しませんでしたか?

AWS SigV4署名デバッグを試す

公開S3サンプルで計算を確認し、次に非本番のリクエストを比較してください。AWS SigV4署名デバッグは通信せずに差分を示します。