IAM ロールの連鎖セッションで有効期間の制限を引き上げることはできますか?
最終更新日: 2020 年 12 月 9 日
AssumeRole API を通じて、一時的な認証情報を使用している AWS Identity and Access Management (IAM) ロールを継承したところ、次のようなエラーを受け取りました。
「The requested DurationSeconds exceeds the 1 hour session limit for roles assumed by role chaining」(リクエストされた DurationSeconds は、ロールの連鎖による継承での 1 時間のセッション制限を超えています)。
簡単な説明
AWS コマンドラインインターフェイス (AWS CLI) を使用すると、一時的なセキュリティ認証情報によるロールの連鎖を使用したロールの継承が行えます。詳細については、「ロールに関する用語と概念」の「ロールの連鎖」セクションをご参照ください。
解決方法
ロールの連鎖では、以下のベストプラクティスを使用します。
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
- 一時的な認証情報において DurationSeconds パラメータの値が 1 時間を超過している場合、オペレーションは失敗します。
- ロールの連鎖に関する 1 時間の制限は、AWS CLI または API にのみ適用されます。
- AWS コンソールでは、ロールの連鎖をサポートしていません。ロールの一時的な認証情報は、AWS コンソールのロールの切り替え機能を使用することで取得できます。AWS コンソールは、別ロールへの切り替えに、IAM またはフェデレーテッドユーザーの認証情報を使用します。詳細については「ロールの切り替え (コンソール)」をご参照ください。
- AWS CLI で Multi-Factor Authentication (MFA) を使用するユーザーは、別ロールの継承に一時的な認証情報を使用します。一時的な認証情報は AWS STS の GetSessionToken API を使用しており、1 時間の制限があります。
- 同じ AWS アカウント内にあるロール B を、ロールの連鎖を使用しながらロール A として継承する場合には、ロール A にアクセス許可を割り当てて 1 時間の制限を回避します。別の AWS アカウントからの継承にロールの連鎖が使用されている場合には、セッションの有効期間は 1 時間です。