ロールを引き受けるための各種方法
作成したロールをユーザー、アプリケーション、またはサービスが使用できるようにするには、該当のロールに切り替えるためのアクセス許可を付与する必要があります。グループまたはユーザーにアタッチされたポリシーを使用して、必要なアクセス許可を付与することができます。アクセス許可が付与されると、ユーザーは、AWS Management Console、Tools for Windows PowerShell、AWS Command Line Interface (AWS CLI)、および AssumeRole
API からロールを引き受けることができます。
重要
ロールの作成を IAM コンソールではなくプログラムで行う場合は、最大 64 文字までの Path
に加えて最大 512 文字までの RoleName
を追加できます。ただし、AWS Management Console の [ロールの切り替え] 機能でロールを使用する場合は、Path
と RoleName
の合計が 64 文字を超えることはできません。
ロールを引き受けるために使用される方法によって、誰がロールを引き受けることができるか、およびロールセッションがどのくらい続くかが決まります。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 時間です。最大セッション期間設定の修正の詳細については、「IAM ロールの管理」を参照してください。この設定は、ロールの認証情報を取得したときにリクエストできる最大セッション期間設定を決定します。たとえば、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 を追加する方法については、ロール信頼ポリシーを更新する を参照してください。