Credential should be scoped to a valid region
TL;DR — Signature Version 4 は各リクエストの認証情報スコープに リージョン を焼き込みます。このエラーは、そのスコープのリージョンが、実際にアクセスしたエンドポイントのリージョンと一致しないことを意味します。あるリージョン向けに署名し、別のリージョンにリクエストを送った(または無効なリージョンコードを使った)のです。クライアントの設定リージョンを、呼び出すエンドポイントに一致させてください。
意味
InvalidSignatureException: Credential should be scoped to a valid region, not 'us-west-1'.すべての署名済み AWS リクエストは 認証情報スコープ を持ちます。それは YYYYMMDD/region/service/aws4_request という文字列で、署名はそれに対して計算されます(リージョンとサービスのコードは小文字である必要があります)。AWS はリクエストを受け取ったエンドポイントから期待される署名を再導出します。スコープに埋め込まれたリージョンがリクエストを処理するリージョンでない場合、検証はこのメッセージで失敗します。これは HTTP 400 でクライアント側の問題であり、リージョンが修正されるまで リトライ不可 です。
発生する理由
- あるリージョン向けに署名し、別のリージョンに送った — SDK の設定
regionが、別のリージョンを指すハードコードまたは上書きされたendpointと異なる。 - 一致するリージョンのないカスタムエンドポイント —
endpoint: https://dynamodb.eu-west-2.amazonaws.comを設定したが、クライアントのリージョンをeu-west-1のままにした。 - 無効または空のリージョン文字列 — タイプミスや未設定の環境変数が、AWS が有効と受け入れられないスコープを生む。
- プロキシまたはゲートウェイ が、署名された対象とは別のリージョナルエンドポイントにリクエストを転送する。
修正方法
- クライアントのリージョンをエンドポイントに一致させます。
dynamodb.<region>.amazonaws.comを指す場合、クライアントのregionを同じ<region>に設定します。 - リージョンだけを設定するのを優先し、SDK にエンドポイントを組み立てさせます。本当に必要な場合(例: DynamoDB Local)を除き、手動の
endpoint上書きを外します。 - リージョンコードが有効か(
us-east-1、eu-west-2など)、実際に設定されているかを検証します。AWS_REGION/AWS_DEFAULT_REGIONと設定ファイルを確認します。 - 引き受けたロールやクロスリージョンのセットアップでは、リクエストが、他所から継承したデフォルトではなく、送信先として意図したリージョンで署名されていることを確認します。
DynamoDB Local では、エンドポイントを http://localhost:8000 に向け、クライアントに一貫した任意のリージョンを与えます。リージョンはクライアントが署名するものと一致しさえすればよいのです。
まず DynoTable で確認
DynoTable は、有効なプロファイルに保存されたリージョンで、すべてのリクエストに署名します。Settings → Profiles は、リージョンと(任意の)カスタムエンドポイントを 1 つのフォームに並べて表示します — 両方をまとめて変更し、そのうえで Test Connection を実行してください。endpoint は eu-west-2 を指しているのに region は eu-west-1 のまま、という SDK の典型的な失敗パターンがこれで消えます。
アプリケーションのコードを調べる前に、⌘P でどのプロファイル(つまりどの認証情報のスコープ)が有効かを確認しましょう。Local なら、同じプロファイルにエンドポイント http://localhost:8000 と、それに合ったリージョンを設定しておきます。プロファイルが接続できたら、クエリビルダーでそのスコープでも読み取りが成功することを確かめてください。
出典
- Troubleshoot Signature Version 4 signing (2026-07-13 時点で検証)
- Create a signed AWS API request (2026-07-13 時点で検証)
関連するエラー
- The request signature we calculated does not match — より広範な SigV4 署名の不一致(誤ったシークレットキーや正規化)。
- The security token included in the request is invalid — リージョンスコープではなく、誤ったまたは期限切れの認証情報。
- You must specify a region — リージョンがまったく設定されていない。
- 学習: DynamoDB Local と LocalStack への接続
参考資料
- Troubleshoot Signature Version 4 signing for AWS API requests — IAM User Guide (credential scope errors)
- Create a signed AWS API request — IAM User Guide (credential scope format)
- Elements of an AWS API request signature — IAM User Guide
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。