IAM ロールの使用 - AWS Identity and Access Management

IAM ロールの使用

作成したロールを IAM ユーザー、アプリケーション、またはサービスが使用できるようにするには、ロールを切り替えるアクセス許可を付与する必要があります。そのためには、必要なアクセス許可を付与するポリシーを IAM ユーザーグループまたはユーザー自身にアタッチする必要があります。このセクションでは、ロールを使用するアクセス許可をユーザーに付与する方法について説明します。また、ユーザーが AWS マネジメントコンソール、Tools for Windows PowerShell、AWS Command Line Interface (AWS CLI) および AssumeRole API からロールに切り替える方法についても説明します。

重要

ロールの作成を IAM コンソールではなくプログラムで行う場合、最大 64 文字までの RoleName に加えて最大 512 文字までの Path を追加できます。ただし、AWS マネジメントコンソールの [ロールの切り替え] 機能でロールを使用する場合は、PathRoleName の合計が 64 文字を超えることはできません。

ロールの切り替えは AWS マネジメントコンソールから行うことができます。ロールを引き受けるには、AWS CLI または API オペレーションを呼び出すか、カスタム URL を使用します。使用する方法によって、誰がロールを引き受けることができるか、およびロールセッションの持続期間が決定されます。

ロールを使用するためのメソッドの比較
役割を引き受ける方法 だれがロールを引き受けるか 認証情報の有効期間を指定する方法 認証情報の有効期間 (最小 | 最大 | デフォルト)
AWS マネジメントコンソール IAM ユーザー (ロールの切り替えによる) [ロールの概要] ページの [最大セッション時間] 1 時間 | 最大セッション時間の設定² | 1 時間
assume-role CLI または AssumeRole API オペレーション IAM ユーザーまたはロール¹ duration-seconds CLI または DurationSeconds API パラメータ 15 分 | 最大セッション期間設定² | 1 時間
assume-role-with-saml CLI または AssumeRoleWithSAML API オペレーション SAML を使用して認証されたユーザー duration-seconds CLI または DurationSeconds API パラメータ 15 分 | 最大セッション期間設定² | 1 時間
assume-role-with-web-identity CLI または AssumeRoleWithWebIdentity API オペレーション ウェブ ID プロバイダーを使用して認証されたユーザー duration-seconds CLI または DurationSeconds API パラメータ 15 分 | 最大セッション期間設定² | 1 時間
AssumeRole を使用して構築されたコンソール URL IAM ユーザーまたはロール URL の SessionDuration HTML パラメータ 15 分 | 12 時間 | 1 時間
AssumeRoleWithSAML を使用して構築されたコンソール URL SAML を使用して認証されたユーザー URL の SessionDuration HTML パラメータ 15 分 | 12 時間 | 1 時間
AssumeRoleWithWebIdentity を使用して構築されたコンソール URL ウェブ ID プロバイダーを使用して認証されたユーザー URL の SessionDuration HTML パラメータ 15 分 | 12 時間 | 1 時間

¹ 1 つのロールの認証情報を使用して別のロールを引き受けることをロールの連鎖と呼びます。ロールの連鎖を使用すると、新しい認証情報は最長期間である 1 時間に制限されます。ロールを使用して EC2 インスタンスで実行されるアプリケーションにアクセス許可を付与する場合、これらのアプリケーションにはこの制限が適用されません。

² この設定の値は 1 時間~12 時間です。最大セッション時間設定の変更の詳細については、「ロールの修正」を参照してください。この設定は、ロールの認証情報を取得したときにリクエストできる最大セッション期間設定を決定します。たとえば、AssumeRole* API オペレーションを使用してロールを引き受ける場合は、DurationSeconds パラメータの値を使用してセッションの期間を指定できます。このパラメータを使用して、ロールのセッション時間を、900 秒 (15 分) からそのロールに設定された最大セッション時間までの範囲内で指定できます。コンソールでロールを切り替える IAM ユーザーには、最大セッション時間または IAM ユーザーのセッションの残り時間のどちらか短い方が付与されます。ロールに最大時間として 5 時間を設定したとします。コンソールに 10 時間 (デフォルトの最大 12 時間のうち) サインインしていた IAM ユーザーは、そのロールに切り替わります。使用可能なロールセッション時間は 2 時間です。ロールの最大値を確認する方法については、このページで後述する「ロールの最大セッション期間設定の表示」を参照してください。

注記

最大セッション時間の設定では、AWS サービスが引き受けるセッションは制限されません。

ロールの最大セッション期間設定の表示

ロールの最大セッション時間を指定するには、AWS マネジメントコンソールを使用するか、AWS CLI または AWS API を使用します。AWS CLI または API オペレーションを使用してロールを引き受ける場合は、DurationSeconds パラメータの値を指定できます。このパラメータを使用して、ロールのセッション時間を、900 秒 (15 分) からそのロールに設定された最大セッション時間までの範囲内で指定できます。パラメータを指定する前に、ロールのこの設定を表示する必要があります。DurationSeconds パラメータに最大値設定よりも大きい値を指定した場合は、オペレーションが失敗します。

ロールの最大セッション期間を表示するには (コンソール)

  1. IAM コンソールの [Navigation] ペインで [Roles] を選択します。

  2. 表示するロールの名前を選択します。

  3. [最大セッション時間] の横に、ロールに許可されている最大セッション長が表示されます。これは、AWS CLI または API オペレーションで指定できる最大セッション時間です。

ロールの最大セッション継続時間設定を表示するには (AWS CLI)

  1. 引き受けるロールの名前がわからない場合は、次のコマンドを実行してアカウントのロールを一覧表示します。

  2. ロールの最大セッション継続時間を表示するには、次のコマンドを実行します。次に、最大セッション継続時間パラメータを確認します。

ロールの最大セッション継続時間設定を表示するには (AWS API)

  1. 引き受けるロールの名前がわからない場合は、次のオペレーションを呼び出してアカウントのロールを一覧表示します。

  2. ロールの最大セッション継続時間を表示するには、次のオペレーションを実行します。次に、最大セッション継続時間パラメータを確認します。