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

CLI/API セッションの有効時間が最大12時間に延長可能となったIAMロールのアップデート。AWSコンソールでスイッチロールし、1時間以上のセッションが維持可能な事を確認してみました。
2018.03.30

はじめに

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セッション期間の設定をお試しください。