3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Lambda内からcloudfrontへのaxiosリクエストが403になる

Posted at

ニッチなネタですが、同じくお困りの方がいらっしゃったらご参考にどうぞ

アーキテクチャ

cloudfront -> api gateway -> lambda(nuxt)

この環境で

nuxt(axios) -> (out bounds) -> HTTP API(cloudfront)

このようにaxiosを利用して外部のサービスで、そのサービスがcloudfrontを利用している場合、その通信は403となり失敗します。

原因

axiosでリクエストする際に付与しているヘッダー情報に原因がありました。
viaです。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Via

これはcloudfrontで付与されて、そのままapi gateway、lambdaへと引き継がれ、axiosのデフォルトヘッダーに設定されていました。

改善

cloudfrontでは多段構成を禁止する仕組みとしてこのviaを利用しているようで、このヘッダーを消すことで無事疎通が可能となりました。

nuxt(plugins)
export default ({ $axios }: Context) => {
  $axios.defaults.headers.common = {}
}

※この例では初期設定値をすべて消しています。

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?