- k_bigwheel
- 1957
- 1
- 0
- 0
それでもやる方法を考える。たぶん、/etc/hosts やprivate hosted zoneを使ってdomain nameそのままproxyサーバーに接続さえさせてしまえばsigv4で矛盾が発生しないので、突破できる可能性はある。 が、手間が多すぎる・・。
2024-01-09 22:56:27WASMは結構やんちゃできるっぽいからVM動かしてその中でって思ったけど、さすがに外道がすぎる気がする。
2024-01-09 23:00:23あとはchrome extension使えば割と無法なこともできる気がする、が、それでもcors制約破壊できるかは疑問。 corsというか、sigv4が強すぎる。これとcorsの組み合わせが強くてどうにもならん。
2024-01-09 23:10:58github.com/aws/aws-sdk-js… で書かれている、cros OK/NGの基準はまじで意味不明だが、仕組みが良くできていることは確か。
2024-01-09 23:10:58考え方が、世界で一番売れている拳銃はガバだから、それだけ多くの素人が使う可能性がある → ガバだけ3つ安全装置つけよう、みたいな感じなのでほんとうに納得いっていないが。
2024-01-09 23:10:59SSO-OIDC関連の処理だけproxyというか、それ関連まるごと代行するような専用APIを作れば行けるか?その専用APIとの間はsigv4じゃないし、それらから生成したaws api用credentialsはSSO専用とかじゃないので普通に使えるはず。athena apiはcors対応しているしそこの問題はない。
2024-01-09 23:25:26C#とかネイティブアプリでのAWS SSOログインのロジックはそういった仕組みに近い。 ただ、それをAPIとブラウザでやってしまうとAPIとブラウザ間の通信でcredentialsが流れてしまうんだよな。HTTPSだとはいえ、MITMなどのリスクがある。
2024-01-09 23:25:26corsを回避しようとした結果、corsがないよりセキュリティ強度が下がるってジョークかよ。
2024-01-09 23:25:26だめだ、aws apiのcors設定が馬鹿げているように感じられたとしても、それを回避するためにcorsがないよりセキュリティ強度が下がるのは許容できない。 加えて、たぶんcorsをバイパスすることはできない。現実的に可能な方法があるなら、それはセキュリティホールとして認識されているはず。
2024-01-09 23:35:42やりたかなかったが、SSG諦めてサーバサイドへロジック込めた上でcredentialsもそこに置くか。 まあiam instace profileなどroleのあタッチもできるしAWS推奨の方法なので簡単ではある。
2024-01-09 23:41:18使う人がそれぞれデプロイしないといけないという点、それが本質的には必要ないという点(CORSの制限さえ外されていればブラウザ側で完結する)、そもそもAWSではcloudrunに当たるようなdockerイメージだけ用意すればとりあえずデプロイしてくれる便利サービスがない点などが気に入らないだけで。
2024-01-09 23:41:19最後のやつはapp runnerか。存在感うすすぎて完全に忘れていた。 良い機会なので、今回ちょっと触ってみても良いかもなあ。 だめならいつも通りAPI gateway + lambdaになるけど。
2024-01-09 23:42:56