書評:『マルチテナントSaaSアーキテクチャの構築』
AWS IAM Identity Center(旧AWS SSO)でセッションがすぐ切れるので、セッション期間を長くした
どこで設定が効いているのかわからなかったので、確認しました。
セッションがすぐ切れる問題
個人で所有しているAWSアカウントをIAM Identity Center管理にしており、AWSアカウントを新設する度にIAMユーザーやロールを都度都度設定する必要がなくなり、非常に管理が快適になったのを日々感じております。
ただし一方で、なんだか妙に早くセッションが切れて再確認を求める画面になる印象がありました。
こんな形で。

画面の指示に従って、再度ログインをすれば良いのですがそれがちょうどAWSコンソール内での作業などをしていた場合、作業が中断したり、時として作業途中の内容が失われる場合もあり、いくらか不便でした。
セッション期間の設定を長くすればいいのだろうと思いつつ、ぱっと見でどこで操作すればいいのかわからず後回しにしてしまっていたので、今回確認しました。
結論:「許可セット」で設定する
答えとしては、結論この通りなのですが、IAM Identity Centerでのユーザー管理の建て付けが分かっていなかったりすると理解が難しかったので、そこも掘り下げます。
許可セットの仕組み
まずは、Identity Centerにおいては
- 「ユーザー」
と、そのユーザーがアクセスできる
- 「AWSアカウント」
があって、「どのユーザーが、どのAWSアカウントにアクセスできるか」を管理していく形になります。(厳密にはユーザーを束ねる「グループ」もある)
なので、例えば、IAM Identity Center管理下のAWSアカウント群が以下のようになっているとします。

そして、この中から「My-Sandbox-01」のアカウントを見てみます。

このAWSアカウントに紐づいているユーザー名/グループ名の一覧が見えます。
この画面の表示に沿って言えば3番目のsho.
から始まるユーザーは、AWSAdministratorAccess
という許可セットを持って、この「My-Sandbox-01」というアカウントにアクセスできるようになっている。というわけです。
ちなみに該当ユーザーをIAM Identity Centerのポータル画面にログインした後の画面はこのような表示になっています。

上記の紐付け状況とも一致していますね。
セッション期間をのばす
上記のような建て付けを理解した上で、セッション時間はどこで効いているかというと「許可セット」の方で制御されています。
先ほどのsho.
から始まるユーザーのセッション時間を伸ばしたい時はそれと一緒にAWSアカウントに紐付けされていた許可セット・AWSAdministratorAccess
にて設定します。

任意の時間を設定できます。セッションの長さとセキュリティのトレードオフかと思いますので、実態に合わせて設定します。
(1日1回切れる程度を見越して、今回は4時間にします。)

「変更を保存」を押すと、設定が各アカウントに展開されていく様子が表示されます。

無事完了しました。今回の例ですとこれにより
AWSAdministratorAccess
の許可セットを持って、AWSアカウントに紐づけられた時、セッション期間は4時間になってくれるというわけです。

これで、「なんだかすぐにセッション切れるなぁ」というのは改善しました。
まとめ
やはり、個人ユースにおいてもAWS Organizationやそれに関連したサービスを使っておくと、こういった企業ユースにありそうなトラブルシュートに遭遇できるのでいいですね。
各種設定の概念の理解が必要だったので、いい経験になったと思います。
引き続き、こういった知見はメモに残していきたいと思います。