5
3

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 1 year has passed since last update.

(仮説)Amplifyのプラットフォーム更新とアクセスコントロールの注意点

Posted at

Amplifyのプラットフォーム値をWEB_DYNAMICからWEB_COMPUTEに更新したらBasic認証が正常に働かない(正しい値を入力しても弾かれる)状態になりました。
いくつか検証して解消したようなので、得た仮説を備忘録としてまとめます。
もし同じような状況で困っている人がいたら、少しでもヒントになれば幸いです。

注意
あくまで仮説なのでご了承ください。
正しい情報知ってるよという方、教えてくださるとうれしいです!

結論(※仮説です)

Amplifyのプラットフォームの値を更新する際、アクセスコントロールの設定によってはBasic認証に影響が出る場合がありそうです。

注意したい設定

「グローバルパスワードの適用」がオンの状態でプラットフォーム値を更新すると、Basic認証が正常に働かないことがある。

おそらく大丈夫そうな設定

「グローバルパスワードの適用」はオフ(Basic認証をかけるために各ブランチに個別にユーザーネーム/パスワードを設定している状態)でプラットフォーム値を更新すると、特に問題はなさそう。

環境

Next.jsのバージョンを12から13に上げるためにはプラットフォームの値をウェブコンピューティング(WEB_COMPUTE)にする必要があるとのことです。
もともとの設定がウェブ動的(WEB_DYNAMIC)だったので更新しようとしたのがきかっけでした。

その時の設定(プラットフォーム更新する前)は下記の通り。

  • フレームワーク
    • Next.js - SSR
    • (この時Next.jsのバージョンは12)
  • プラットフォーム
    • ウェブ動的(WEB_DYNAMIC)
  • アクセスコントロール
    • グローバルパスワードの適用オン

起こったこと

需要はないかもしれないが起こったことを時系列で

  • 下記コマンドでAmplifyのプラットフォームをWEB_DYNAMIC -> WEB_COMPUTEに更新
aws amplify update-app --app-id <value> --platform WEB_COMPUTE --region <value>
  • コンソールにてプラットフォームがウェブコンピューティングに更新されていることを確認
  • 各ブランチを再デプロイ
  • 再デプロイ完了後、各ブランチでBasic認証に正しいID/Passwordを入れても弾かれる🥲
  • アクセスコントロールを見ると「グローバルパスワードの適用」がオフになっていた & 個別に設定されている状態🤔
    →もともとは「グローバルパスワードの適用」はオンで個別の設定はしていなかった
  • 「グローバルパスワードの適用」を再度オンに
  • 再度デプロイ
  • 再デプロイ完了後、各ブランチの環境でまたしてもBasic認証が弾かれる😭

むむむ

  • ここで一度プラットフォームを元のウェブ動的に戻してみる
aws amplify update-app --region <value> --app-id <value> --platform  WEB_DYNAMIC
  • コンソールにてプラットフォームがウェブ動的に更新されていることを確認
  • 各ブランチを再デプロイ
  • 再デプロイ完了後、各ブランチの環境で依然としてBasic認証が弾かれる😭

むむむ💦

  • 「グローバルパスワードの適用」をオフにして各ブランチ個別にユーザーネーム/パスワードを設定
  • 各ブランチを再デプロイ
  • 再デプロイ完了後、各ブランチのBasic認証が正常に機能していることを確認(ひと安心)

グローバルパスワードの適用があかんのか?
ウェブコンピューティングへの更新は必要なのでもう一度試す。

  • AmplifyのプラットフォームをWEB_DYNAMIC -> WEB_COMPUTEに更新(コマンドは上記と同じ)
  • コンソールにてプラットフォームがウェブコンピューティングに更新されていることを確認
  • 各ブランチを再デプロイ
  • 再デプロイ完了後、Basic認証が正常に機能していることを確認
  • ..と思ったら、「ブランチの自動検出」に設定しているブランチでは依然としてBasic認証が弾かれる。mainなど手動で接続したブランチのみBasic認証を突破できる。

なんだこれ🤔

  • そしてしばらくすると(数時間?)、先ほどまでBasic認証を突破できていたブランチでもBasic認証が弾かれるように😭
    -なんかもう嫌になる

  • もう一度プラットフォームを元のウェブ動的に戻してみる(コマンドは上記と同じ)

  • コンソールにてプラットフォームがウェブ動的に更新されていることを確認

  • 各ブランチを再デプロイ

  • 再デプロイ完了後、各ブランチのBasic認証が正常に機能していることを確認(ひと安心)

仕切り直す
グローバルパスワードの適用をオフにしてユーザーネーム/パスワードは個別に設定した状態でもう一度ウェブコンピューティングにしてみよう..

  • AmplifyのプラットフォームをWEB_DYNAMIC -> WEB_COMPUTEに更新(コマンドは上記と同じ)
  • コンソールにてプラットフォームがウェブコンピューティングに更新されていることを確認
  • 再デプロイ完了後、「ブランチの自動検出」に設定しているブランチも含め全てのブランチでBasic認証が正常に機能していることを確認(ガッツポーズ)

つらつらと書きましたが、プラットフォームを更新する際はもとのアクセスコントロールの「グローバルパスワードの適用」の設定によりBasic認証の挙動が変わってしまうらしいという推測をしています。

その他

Basic認証が弾かれる場合はcloudfrontが関わってたりもするような記事も見かけたので、今後またおかしなことになったら試してみようと思います。

参考

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?