HTTP 403 ForbiddenでAPI Gatewayへの接続がブロックされる時に確認するポイント

最近は専らAWSでの開発案件が多くなってきました。 その中で、VPC内のFargateタスクやEC2からAPI Gatewayを叩こうとした際に403エラーが出てハマったことがあるので、その原因をピックアップしました。

まずは公式をチェック

大前提として403エラーの原因となる事象一覧を公式が載せてくれています。

主なものを挙げると「権限が誤っている」ことや「リクエストに含めるべき認証キーやヘッダ情報が誤っている」ことがあります。 まずはその辺りを確認していきましょう。

VPCエンドポイントを使っている場合は設定を確認

要件として「インターネットを経由せずにAPI Gatewayを叩きたい」といったものがある場合、VPCエンドポイントを使っているケースがほとんどだと思います。

その場合は下記の記事のような事象に気をつけましょう。

VPCエンドポイントの設定で「プライベートDNS」が有効化されている場合、パブリックに公開されているAPI Gatewayのリソースにアクセスすることができません。

VPC内のリソースからはAPIアクセスができず、外部からはアクセスできる場合はこれが原因であることが多いです。

まとめ

API Gatewayにうまく接続できない・できてもエラーになる、といった事象は原因が多種多様なので、まずは公式のQAを参考にするといいかなと思います。 特に「この環境からはエラーにならず、あの環境からだとエラーになる」ようなケースだとVPCエンドポイントが原因であることが多いため、覚えておきましょう。

SNSでシェアする