こんにちは。Dantoです。
今回は、Amazon QuickSightとMicrosoft Entra IDをSAML連携した場合のSessionDuration値の役割について書いていきます。
TL; DR;
- SessionDurationの設定値はQuickSightのセッション継続時間とは無関係
- QuickSightのセッション継続時間は独自管理となっており、12時間固定
本題
前提
Amazon QuickSightとMicrosoft Entra IDをSAML連携させた場合、オプションでEntra ID側にSessionDuration値を設定することができます。
SessionDurationとは、読んで字のごとく「セッションを継続させる時間」を表す属性ですが、念のため公式ドキュメントの記述を引用しておきます。
(Optional) You can use an
Attribute
element with theName
attribute set tohttps://aws.amazon.com/SAML/Attributes/SessionDuration"
. This element contains oneAttributeValue
element that specifies how long the user can access the AWS Management Console before having to request new temporary credentials. The value is an integer representing the number of seconds for the session. The value can range from 900 seconds (15 minutes) to 43200 seconds (12 hours). If this attribute is not present, then the credential last for one hour (the default value of theDurationSeconds
parameter of theAssumeRoleWithSAML
API).(オプション) Name 属性を https://aws.amazon.com/SAML/Attributes/SessionDuration” に設定した Attribute 要素を使用できます。この要素には AttributeValue 要素が 1 つ含まれ、ユーザーが新しい一時的な認証情報を要求するまでに AWS Management Console にアクセスできる時間を指定します。値は、セッションの秒数を表す整数です。値の範囲は 900 秒(15 分)から 43200 秒(12 時間)です。この属性が存在しない場合は、クレデンシャルは 1 時間持続します (AssumeRoleWithSAML API の DurationSeconds パラメータのデフォルト値)。
ドキュメントからは3つの情報を読み取ることができそうです。
- https://aws.amazon.com/SAML/Attributes/SessionDurationの値として整数値を設定できる
- SessionDurationではAWSマネージメントコンソールにアクセスできる時間を指定する
- 設定値の範囲は900(15分)から43200(12時間)
- デフォルトは3600(1時間)
ひとまず、SessionDurationに設定した値はAWSマネージメントコンソールにアクセス可能な時間と関係していることは理解しました。
また、ここではIDプロバイダにIAMロールを割り当てる際に、許可されるアクセスとして「プログラムと AWS マネジメントコンソールへのアクセスを許可する」を選択しています。
疑問
SessionDurationの値は、QuickSightコンソールにアクセスできるセッションの継続時間とは関係ないのか…?
(SessionDurationを900秒に設定したらQuickSightのセッション継続時間も900秒になるのか…?)
(↓↓↓QuickSightコンソール)
結論
SessionDurationの設定値とQuickSight側のセッション継続時間は無関係
あくまで、SessionDurationはAWSマネージメントコンソールにアクセス可能なセッションとのみ関係しているそうです。
また、QuickSight側のセッション継続時間は独自管理であり、12時間固定で変更はできません。
なので、SessionDurationを設定値を900とした場合のセッション継続時間は
- AWSマネージメントコンソール : 15分
- QuickSightコンソール : 12時間
となります。
おまけ
厄介なことに、IDフェデレーションによってQuickSightにサインインするユーザは、AWSコンソールにもサインインできてしまいます。
※AWSマネージメントコンソールへのサインインを防ぐ方法はありません。
ただし、引き受けさせるIAMロールの権限を絞っておけば、基本的には何もできない状態にはできます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "quicksight",
"Effect": "Allow",
"Action": [
"quicksight:DescribeDashboard",
"quicksight:ListDashboards"
],
"Resource": "arn:aws:quicksight::123456789012:*"
}
]
}
AWSマネージメントコンソールへのアクセスを許容し難い場合は、せめてもの対策として
- IDプロバイダに割り当てるIAMロールの権限を最小限にする
- SessionDurationの値を最小限にする
この辺は講じてもよいかもしれません。
以上です。
参考記事
- 認証レスポンス用の SAML アサーションを設定する – AWS Identity and Access Management (amazon.com)
- 公式ドキュメント
- QuickSightへのアクセス時に「セッションで問題が発生しました。新しいセッションを開始するには、管理者から指定されたリンクに戻ってください。」とメッセージが表示される場合の対処方法 | DevelopersIO (classmethod.jp)
- QuickSightのセッションについてのクラスメソッドさん記事
コメント