如何對 API Gateway REST API 端點的 403「缺少身分驗證權杖」錯誤進行疑難排解?

1 分的閱讀內容
0

當我嘗試調用 Amazon API Gateway REST API 時,我收到 403「缺少身分驗證權杖」錯誤訊息。

簡短說明

基於以下原因,API 閘道 REST API 端點傳回缺少身分驗證權杖錯誤:

若要對 API Gateway 的其他 403 錯誤進行疑難排解,請參閱如何對來自 API Gateway 的 HTTP 403 錯誤進行疑難排解?

解決方法

確認 API Gateway 資源路徑中有設定的操作和資源

依照使用 API Gateway 主控台設定操作中的說明進行。如需詳細資訊,請參閱設定 API 資源

**重要事項:**為使變更生效,您必須部署 API

對於具有 Proxy 資源整合的 API,其中請求操作會傳送至根資源,確認已在根資源下設定操作。

確認 API Gateway 回應未經修改,或者後端整合未傳送回應

確定未在 API 中修改閘道回應。此外,確定錯誤不是來自整合後端。檢查 API Gateway 執行日誌和後端日誌

開啟 IAM 身分驗證時,請確認已簽署 API 請求

如需詳細資訊,請參閱簽署 AWS API 請求AWS API 請求元素的簽名

確認您正在向 REST API 端點傳送正確的 HTTP 操作請求

從 Web 瀏覽器中測試 REST API 端點,以自動傳送 GET HTTP 操作請求。

若要測試 POST HTTP 操作請求,請使用不同的 HTTP 用戶端。例如在 Postman 網站上使用 Postman,或者在 curl 網站上使用 curl

使用 POST HTTP 方法請求的 curl 命令範例

$ curl -X POST  <API URL> -d <request body>

使用 JSON 標頭傳送請求的範例

$ curl --location -X POST 'https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy' --header 'Content-Type: application/json' --data-raw '{"x":"y"}'

使用 AWS V4 簽名身分驗證傳送 curl POST 請求的範例

$ curl -X POST "<ENDPOINT>" -d <data> --user <AWS_ACCESS_KEY>:<AWS_SECRET_KEY> --aws-sigv4 "aws:amz:<REGION>:<SERVICE>"
$ curl -X POST "https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy" -d '{"x":"y"}' --user ABCD:1234 --aws-sigv4 "aws:amz:us-east-1:execute-api"

相關資訊

如何啟用 API Gateway REST API 的 IAM 身分驗證?