0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon cognito認証を設定したが、認証不要で画面が表示された原因について

Last updated at Posted at 2025-11-06

現在、awsのS3で静的ウェブサイトをcloudfrontを利用してホスティングしているが、特定のパス(/new/new)へのアクセスについては、CloudFrontのルーティングによりAPI Gatewayとcognitoで認証を行い、認証を必須とする設定を行いました。

実施したこと

1. amazon cognitoで今回利用するユーザープールを作成しリターンURLに今回飛ばしたいURL(https://xxxx/new/new)を設定
2. API Gatewayで現在対象urlで設定しているAPIを選択のうえタイプ:cognitoのオーソライザーの作成を行い、coginitoユーザープールで、1.で作成したユーザープールを選択
3. 2.で利用したAPIのpostメソッドのメソッドリクエストの認可に2.で作成したオーソライザーを選択
4. APIとアプリケーションのデプロイを行う

認証不要で画面が表示されてしまった・・・

上記の通り、認証を設定したにもかかわらずhttps://xxxx/new/newにアクセスすると普通に画面が表示されてしまった

原因はcloudfrontのビヘイビアの設定

image.png
現状の設定だと、アクセスパス /new/newは、現状の設定だと、アクセスパス /news/new は、優先度の高い dev/* には一致せず認証機能がないS3をオリジンとするデフォルトビヘイビア (*) にヒットするようになっていた。

今回/new/newはCognito認証ロジックを持つAPI Gatewayにルーティングされたいので、そちらにヒットするようにしなければならない。

解消方法

image.png
/new/newを、API Gatewayオリジンにルーティングする新しいビヘイビアを作成し優先順位をデフォルトより高くなるようにした(自動で優先度は設定された)。

まとめ

CloudFrontは、どのビヘイビアがリクエストに最初にマッチするかを優先順位とパスパターンで厳密に判断している。
よってまずはアクセスurlがどのビヘイビアにヒットしているかを確認しないといけない。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?