Missing Authentication Token

TL;DR — "Missing Authentication Token" 表示請求要嘛沒有帶憑證**,要嘛命中了 AWS 不認得的端點/方法 — 對不存在路徑或不支援 HTTP 方法的請求會回傳這個,而非 404。對 DynamoDB 而言,它幾乎總是端點 URL 錯誤或一個從未被簽署的請求。**

這是什麼意思

{"message":"Missing Authentication Token"}

AWS 的 SigV4 疑難排解指南對第一個原因很直白:若 API 請求未簽署,你可能收到 Missing Authentication Token。違反直覺地,同樣的訊息也會在路徑或 HTTP 方法不符任何路由時,從 API-Gateway 式端點回傳(HTTP 403)— AWS 對一個它無法路由的請求尋找 auth,並回報缺少的 token,而非「找不到」。當 DynamoDB 本身拒絕一個授權標頭缺少或格式不正確的請求時,例外為 MissingAuthenticationTokenException — HTTP 400、不可重試,訊息為 "Request must contain a valid (registered) AWS Access Key ID."

為什麼會發生

  • 端點 URL 錯誤 — 在瀏覽器中或以純 GET 命中 https://dynamodb.<region>.amazonaws.com/some/path,而非對服務根目錄做正確簽署的 SDK 呼叫。
  • 未簽署的請求 — 沒有 SigV4 Authorization 標頭的原始 curl/fetch(SDK 通常會加上它)。
  • HTTP 方法錯誤 — DynamoDB 的 API 期望對 /POST 並帶一個指名操作的 X-Amz-Target 標頭;其他形狀不被認作簽署過的操作。
  • 拼錯的自訂端點 — 指向不對應 DynamoDB 服務的 URL。
  • DynamoDB Local 未設定 access key — SDK 即使在本地也要求設定 access key 與 region 值(任何值都可;Local 只用它們來命名其資料庫檔案)。

如何修正

  1. 使用 AWS SDK,而非原始 HTTP 呼叫。 讓 SDK 以正確的 X-Amz-Target 建立簽署過的 POST — 不要手工製作 URL。
  2. 指向服務根目錄https://dynamodb.<region>.amazonaws.com),而非路徑,並將用戶端的區域設為相符。
  3. 確認憑證已設定,讓 SDK 確實簽署請求(環境變數、profile 或 role)。
  4. 對 DynamoDB Local,將端點設為 http://localhost:8000 並設定一個假的 access key/secret(只有字母與數字),讓 SDK 正常簽署 — Local 不驗證它們。

相關錯誤

References

最後驗證於 2026-07-13,對照上方連結的 AWS 官方文件。

不必透過主控台就能操作 DynamoDB

DynoTable 是一款快速的 DynamoDB 桌面用戶端 — 瀏覽表格、執行 SQL 風格的查詢,並在本機編輯項目。