IAM ロールを使用する - AWS Identity and Access Management

IAM ロールを使用する

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

重要

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

ロールの切り替えは AWS Management Consoleから行うことができます。ロールを引き受けるには、AWS CLI または API オペレーションを呼び出すか、カスタム URL を使用します。使用する方法によって、誰がロールを引き受けることができるか、およびロールセッションの持続期間が決定されます。AssumeRole* API オペレーションを使用する場合、引き受ける IAM ロールはリソースです。AssumeRole* API オペレーションを呼び出す ユーザーまたはロールはプリンシパルです。

ロールを使用するためのメソッドの比較
ロールを引き受ける方法 だれがロールを引き受けるか 認証情報の有効期間を指定する方法 認証情報の有効期間 (最小 | 最大 | デフォルト)
AWS Management Console ユーザー (ロールの切り替えによる) 最大セッション期間ロールの [概要] ページ 15 分 | 最大セッション期間設定² | 1 時間
assume-role CLI または AssumeRole API オペレーション ユーザーまたはロール¹ 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 オペレーション OIDC プロバイダーを使用して認証されたユーザー duration-seconds CLI または DurationSeconds API パラメータ 15 分 | 最大セッション期間設定² | 1 時間
を使用して構築されたコンソール URLAssumeRole ユーザーまたはロール URL の SessionDuration HTML パラメータ 15 分 | 12 時間 | 1 時間
を使用して構築されたコンソール URLAssumeRoleWithSAML SAML を使用して認証されたユーザー URL の SessionDuration HTML パラメータ 15 分 | 12 時間 | 1 時間
を使用して構築されたコンソール URLAssumeRoleWithWebIdentity OIDC プロバイダーを使用して認証されたユーザー URL の SessionDuration HTML パラメータ 15 分 | 12 時間 | 1 時間

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

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

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

  • Amazon EC2 IAM ロールの認証情報は、ロールで設定された最大セッション期間の対象にはなりません。

  • ロールセッション内でユーザーが現在のロールを再び引き受けることができるようにするには、ロール信頼ポリシーでロール ARN または AWS アカウント ARN をプリンシパルとして指定します。Amazon EC2、Amazon ECS、Amazon EKS、Lambda などのコンピューティングリソースを提供する AWS のサービス は、一時的な認証情報を提供し、これらの認証情報を自動的に更新します。これにより、常に有効な認証情報セットを確保できます。これらのサービスでは、一時的な認証情報を取得するために現在のロールを再度引き受ける必要はありません。ただし、セッションタグまたはセッションポリシーを渡す場合は、現在のロールを再度引き受ける必要があります。ロールの信頼ポリシーを変更してプリンシパルロールの ARN または AWS アカウント ARN を追加する方法については、ロールの信頼ポリシーの変更 (コンソール) を参照してください。

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

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

ロールの最大セッション期間を表示するには (コンソール)
  1. IAM コンソールのナビゲーションペインで [ロール] を選択します。

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

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

ロールの最大セッション継続時間設定を表示するには (AWS CLI)
  1. 引き受けるロールの名前がわからない場合は、次のコマンドを実行してアカウントのロールを一覧表示します。

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

ロールの最大セッション継続時間設定を表示するには (AWS API)
  1. 引き受けるロールの名前がわからない場合は、次のオペレーションを呼び出してアカウントのロールを一覧表示します。

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