Amazon API Gateway REST API を呼び出そうとすると、「Missing Authentication Token」という 403 エラーメッセージが表示されます。
簡単な説明
API Gateway REST API エンドポイントは、以下の理由により「Missing Authentication Token」 というエラーを返します。
API Gateway のその他の 403 エラーをトラブルシューティングする手順については、「API Gateway からの HTTP 403 エラーをトラブルシューティングする方法を教えてください」を参照してください。
解決策
API Gateway のリソースパスで操作とリソースが設定されていることを確認する
「API Gateway コンソールを使用してメソッドを設定する」の手順に従います。詳細については、「API リソースを設定する」を参照してください。
重要: 変更を有効にするには、API をデプロイする必要があります。
リクエスト操作をルートリソースに送信するプロキシリソース統合を含む API では、ルートリソースの下に操作が設定されていることを確認してください。
API Gateway の応答が変更されておらず、バックエンド統合から応答が送信されていないことを確認する
ゲートウェイの応答が API によって変更されていないことを確認します。さらに、エラーが統合バックエンドから発生していないことを確認します。API Gateway の実行ログとバックエンドログを確認してください。
IAM 認証を有効化する際、API リクエストが署名されていることを確認する
詳細については、「API リクエスト用の AWS Signature バージョン 4」および「AWS API リクエスト署名の要素」を参照してください。
REST API エンドポイントに正しい HTTP 操作リクエストを送信していることを確認する
ウェブブラウザで REST API エンドポイントをテストすると、自動的に GET HTTP 操作リクエストが送信されます。
POST HTTP オペレーションリクエストをテストするには、別の HTTP クライアントを使用します。例えば、Postmanのウェブサイトでは Postman を使用し、curl ウェブサイトでは curl を使用します。
HTTP の POST メソッドリクエストを使用する 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 認証を有効にする方法を教えてください