スキップしてコンテンツを表示

API Gateway REST API エンドポイントで発生する、「Missing Authentication Token」という 403 エラーのトラブルシューティング方法を教えてください。

所要時間1分
0

Amazon API Gateway REST API を呼び出そうとすると、「Missing Authentication Token」という 403 エラーメッセージが表示されます。

簡単な説明

API Gateway REST API エンドポイントは、以下の理由により「Missing Authentication Token」 というエラーを返します。

  • API リクエストが、存在しないオペレーションまたはリソースに対して行われた。
  • API オペレーションの AWS Identity and Access Management (IAM) 認証がオンになっている場合に、API リクエストが署名されていない。
  • 変更されたゲートウェイレスポンスで API が設定されているか、またはレスポンスがバックエンド統合からのものである可能性がある。

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 認証を有効にする方法を教えてください

コメントはありません

関連するコンテンツ