IAMロールのセッション期間が1時間から12時間に延長可能になりました

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

AWSチームのすずきです。

IAMロールのアップデートにより、CLI/API セッションの有効時間を、従来の1時間から最大12時間まで延長する設定が可能になりました。

今回、有効時間としてデフォルトの1時間と12時間に延長した2つのロールを用意し、 AWSコンソールのスイッチロール動作を確認する機会がありましたので、紹介させて頂きます。

Enable Federated API Access to your AWS Resources for up to 12 hours Using IAM Roles

2019年現在、マネジメントコンソールで1時間以上のセッション設定で利用するためには、AssumeRole を利用した コンソールURLの発行が必要となりました。当ブログで紹介したコンソール上のスイッチ操作ではセッションは1時間のままとなるのでご注意ください。

AWSのマネジメントコンソールのセッション時間を12時間に延長してみた

IAM ロールを使用する

方法 認証情報の有効期間 (最小 / 最大 / デフォルト)
AWS マネジメントコンソール 1 時間 / 1 時間 / 1 時間
AssumeRole を使用して構築されたコンソール URL 15 分 / 12 時間 / 1 時間

設定

IAMダッシュボードの「ロール」設定として、CLI/API セッション期間の指定が可能になりました。

期間として、1時間(3600秒)から、最大では12時間(43200秒)までの指定可能です。

確認手順

  • 同時刻に2つの異なるブラウザ(Firefox/Safari)を利用してAWSコンソールにIAMログイン
  • CLI/API セッション期間 1時間と、12時間のロールにスイッチしました。

CloudTrailログ(抜粋)

  • 1時間設定ロール(Firefox)
        "eventTime": "2018-03-29T12:55:07Z",
        "eventSource": "signin.amazonaws.com",
        "eventName": "SwitchRole",
        "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:59.0) Gecko/20100101 Firefox/59.0",
        "additionalEventData": {
            "RedirectTo": "https://console.aws.amazon.com/console/home",
            "SwitchTo": "arn:aws:iam::************:role/test-1h"
        }
    

  • 12時間設定ロール(Safari)

        "eventTime": "2018-03-29T12:55:20Z",
        "eventSource": "signin.amazonaws.com",
        "eventName": "SwitchRole",
        "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0.3 Safari/604.5.6",
        "additionalEventData": {
            "RedirectTo": "https://console.aws.amazon.com/console/home",
            "SwitchTo": "arn:aws:iam::************:role/test-12h"
        }
    

  • 1時間後、セッション期間「1時間」のロールを利用したAWSコンソール(Firefox)のみ「再ロード」のダイアログが表示されました。

まとめ

AWSコンソールを利用してスイッチロールの有効期間が過ぎた場合、作業中の内容については失われてしまう場合がありました。

スイッチロールした状態で長時間AWSコンソール操作を実施する必要があるケース、

  • S3の多数のファイル転送
  • Lambda関数のインラインエディタ編集
  • サポートケースの編集
  • Cloudwatchグラフの継続確認

の際には、作業環境に合わせた適切なCLI/APIセッション期間の設定をお試しください。