AWS IAM Identity Center にセッション管理機能が追加されました

2022.10.21

いわさです。

本日のアップデートで IAM Identity Center にセッション管理機能が追加されたようです。

IAM Identity Center 上で IdP としてユーザー管理を行い、AWS のマルチアカウントを始め様々な外部サービスへのシングルサインオンを実現することが出来ます。
この独自管理するユーザーに対してセッション管理を行うための機能が追加されたという形のようです。

旧 AWS SSO のころからあまり IAM Identity Center に触る機会が少なかったのですが良い機会なのでアップデートの確認を兼ねて触ってみたいと思います。

セッション期間の設定

ひとつめは以下のようにセッション期間を設定することが出来るようになりました。
今までは固定で 8 時間だったようです。

設定メニューの認証タブに「セッション設定」が追加されています。

こちらはユーザーやグループ共通での設定となっており、個別にセッション期間を調整することは出来ません。
選択肢として 1 時間 ~ 7 日 が用意されています。

加えてカスタム期間を使うことで15 ~ 10080 の範囲で分単位での指定が可能です。
つまり本機能では最短 15 分から最大 7 日までのセッション期間を設定することが出来ます。

今回は最短の 15 分を設定してみました。

AWS アクセスポータルにサインインして 15 分間リロードさせ続けてみると、15 分後に以下のように再認証を要求されました。
アクセスに伴って期間がリフレッシュされるわけではないので最後にサインインした時間から次にサインインを要求するまでの時間と考えて良さそうですね。

セキュリティポリシーあるいは連携アプリケーションの利便性などから期間を設定することが出来そうです。

なお、ドキュメント上には以下のような記述があり、外部 IdP と異なるセッション期間が設定されている場合ユーザーから見るセッション期間はどちらか短いほうが優先されるとのことです。

If you have an external identity provider (IdP) connected to IAM Identity Center, the AWS access portal session duration will be the lesser of the session duration you set in your IdP or the session duration you set here. For example, if your IdP session duration is 24 hours and you set an 18 hour session duration in IAM Identity Center, the users must re-authenticate in the AWS access portal after 18 hours. If you set a 72 hour session duration here and your IdP has a session duration of 18 hours, your users must re-authenticate after 18 hours.

アクティブなセッションの管理

ユーザーごとのアクティブなセッションを確認することも出来るようになったそうです。

こちらはユーザーごとの「アクティブなセッション」タブから管理することが出来ます。
変更前の UI を私は知りませんが以下 2022 年 9 月 4 日時点ではこの UI は存在していなかったようです。

確認出来る内容はデフォルトは以下で、セッション名とクライアント IP アドレス、サインイン時間を確認することが出来ます。

さらにオプションで「必要なサインイン」を表示することで、次にサインインが要求されるタイミングも表示可能です。

前回のサインイン時間と記載されていますが、サインアウト→サインインを行った際には新しいアクティブセッションが作成されたので、どうやらセッションレコードごとに前回サインイン時間が更新されているというわけではないようです。

また、この画面からセッションの削除を行うことが出来ます。やってみましょう。

すべてのセッションを削除してみました。

そうすると、再ログインが必要にな・・・らない!
アクセスポータルには引き続きアクセス出来ますね。

すぐにセッションが無効化されてサインイン要求されることを期待していましたが...
以下のように MFA デバイスの登録なども引き続き行うことが出来ました。

セッション削除画面をよく読んでみると「ユーザーが選択したアクティブなセッションからサインアウトされるまでに最長で 1 時間かかる場合があります...」との記述があるようなので即セッション切断させるための機能ではないようです。

以下のドキュメントからアクセスポータルセッションがすぐに終了するようにも読み取れますが。

実験: セッション期間を 7 日に設定し、セッション削除してみる

先程はセッション期間が 15 分だったのでよくわからなかったというのが正直なところで、セッション期間によるものなのか削除によるものなのかを切り分けるために、セッション期間を 7 日間に設定しセッション削除の検証をしてみます。

以下のように2人のユーザーをそれぞれ Cookie の干渉がないように気をつけながらサインインします。

右の hoge2 ユーザーのセッションを削除します。

セッションを削除したのが 7 時 49 分 です。
8 時 48 分時点ではまだどちらも再認証は要求されていませんでしたが、8 時 49 分 になると右の hoge2 ユーザーは再認証を要求されました。セッション削除からちょうど 1 時間。
左のユーザーはおそらく 7 日後のセッション期間終了までは残っていそうですね。

削除したセッションもセッション期間に関わらず 1 時間は再認証要求なしでアクセス出来る状態ということがわかりました。
なお、セッション期間がもし 1 時間より短い場合はその前に再認証が要求されます。

さいごに

本日は AWS IAM Identity Center にセッション管理機能が追加されたので試してみました。

これからは IAM Identity Center でセッション期間をカスタマイズやユーザーごとの各セッションやサインイン時間の管理も出来るようになったので使ってみてください。