如何對 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 請求

如需詳細資訊,請參閱適用於 API 請求的 AWS 簽章版本 4AWS 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.your-aws-region.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:AWS_REGION:AWS_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:your-aws-region:execute-api"

相關資訊

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