最近は専らAWSでの開発案件が多くなってきました。 その中で、VPC内のFargateタスクやEC2からAPI Gatewayを叩こうとした際に403エラーが出てハマったことがあるので、その原因をピックアップしました。
大前提として403
エラーの原因となる事象一覧を公式が載せてくれています。
主なものを挙げると「権限が誤っている」ことや「リクエストに含めるべき認証キーやヘッダ情報が誤っている」ことがあります。 まずはその辺りを確認していきましょう。
要件として「インターネットを経由せずにAPI Gateway
を叩きたい」といったものがある場合、VPCエンドポイントを使っているケースがほとんどだと思います。
その場合は下記の記事のような事象に気をつけましょう。
VPCエンドポイントの設定で「プライベートDNS」が有効化されている場合、パブリックに公開されているAPI Gateway
のリソースにアクセスすることができません。
VPC
内のリソースからはAPI
アクセスができず、外部からはアクセスできる場合はこれが原因であることが多いです。
API Gateway
にうまく接続できない・できてもエラーになる、といった事象は原因が多種多様なので、まずは公式のQAを参考にするといいかなと思います。
特に「この環境からはエラーにならず、あの環境からだとエラーになる」ようなケースだとVPCエンドポイントが原因であることが多いため、覚えておきましょう。