anthropogenic.pages.dev
Aws
12 Nov 2024
ドメインを親アカウントで取得するか兄弟アカウントで取得するか メンバーアカウント: example-prd で取得したドメイン example.com を同階層の兄弟となるメンバーアカウントの example-stg, example-dev でそれぞれ dev.example.com や stg.example.com として使うのがよい。 サービスが終わる時を考えた場合 example-{prd,stg,dev} の 3 アカウントを削除すればリソースも全部消えることになる。 結論としてドメインは management account(parent account) ではなくプロダクション環境用の member account(sibling) で取得する。 主に試運転アカウントの AWS Organizations + Route53 で適当なドメインを取得して試してから、正アカウントに導入する。 Cross account subdomain delegation with Amazon Route 53
23 Jul 2024
暗黙の優先順位 Cognito のためにクライアントを作成する時に dotenv を使用して 認証情報を Rails アプリに ロードしているのにそちらを使わずに aws configure sso の値を使っているために IAM Identity Center(sso) のセッションが切れると Aws::Errors::InvalidSSOToken になってしまっていた。 screenshot of rails error message これは AWS SDK が認証情報を参照する優先順位として、まずホームディレクトリにある ~/.aws/{config,credentials} を 優先してチェックしてしまうからだった。AWS_SDK_CONFIG_OPT_OUT=true にしておけばこの問題は解決する。 fly.io では発生しないだろうし、こういう環境依存の問題が最もわかりにくい。 The shared config file is not checked if the environment variable AWS_SDK_CONFIG_OPT_OUT is set. https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/setup-config.html
21 Jul 2024
AWS Cognito Hosted UI 個人開発しているアプリの認証基盤に AWS Cognito を使用するため、土日に弄んでいた。 最初は SDK 経由での実装を試みていたが、ネット上にあまり例が見つからないのと、手順が煩雑な印象を受けていて諦めそうになっていたところ、 YouTube の動画で Hosted UI の機能を知った。 フォーム自体を AWS が生成してくれるのでアプリが acc/pass を全く触ることなく認証を完了できるのがよい。 Hosted UI でコールバックされた後にどうすればいいのかが不明だったが AWS 公式ブログのこの記事の Authorization code grant の通りにやってみたら 無事にユーザープールにアクセスすることができた。Rails アプリとしては UUID で管理されているユーザー ID を Users テーブルに格納するだけでよい。 個人開発者にとって 認証基盤など個人では手に負えない分野は巨大テックの企業努力を利用させてもらう のが正しいアプローチだと思う。 4. After Amazon Cognito verifies the user pool credentials or provider tokens it receives, the user is redirected to the URL that was specified in the original redirect_uri query parameter.