

# ロールを引き受けるための各種方法
<a name="id_roles_manage-assume"></a>

作成したロールをユーザー、アプリケーション、またはサービスが使用できるようにするには、該当のロールに[切り替えるためのアクセス許可を付与する](id_roles_use_permissions-to-switch.md)必要があります。グループまたはユーザーにアタッチされたポリシーを使用して、必要なアクセス許可を付与することができます。アクセス許可が付与されると、ユーザーは、AWS マネジメントコンソール、Tools for Windows PowerShell、AWS Command Line Interface (AWS CLI)、および [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API からロールを引き受けることができます。

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

ロールを引き受けるために使用される方法によって、誰がロールを引き受けることができるか、およびロールセッションがどのくらい続くかが決まります。`AssumeRole*` API オペレーションを使用する場合、引き受ける IAM ロールはリソースです。`AssumeRole*` API オペレーションを呼び出す ユーザーまたはロールはプリンシパルです。

次の表は、ロールを引き受ける方法を比較したものです。


|  ロールを引き受ける方法 |  **だれがロールを引き受けるか**  | **認証情報の有効期間を指定する方法** |  **認証情報の有効期間 (最小 \$1 最大 \$1 デフォルト)**  | 
| --- | --- | --- | --- | 
| AWS マネジメントコンソール | ユーザーまたは ([ロールの切り替え](id_roles_use_switch-role-console.md)による) ロール¹ | 最大セッション期間でロールの [概要] ページ | 15 分 \$1 最大セッション期間設定² \$1 1 時間 | 
| [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) CLI または [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API オペレーション |  ユーザーまたはロール¹ | duration-seconds CLI または DurationSeconds API パラメータ | 15 分 \$1 最大セッション期間設定² \$1 1 時間  | 
| [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html) CLI または [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) API オペレーション | SAML を使用して認証されたユーザー | duration-seconds CLI または DurationSeconds API パラメータ | 15 分 \$1 最大セッション期間設定² \$1 1 時間  | 
| [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html) CLI または [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) API オペレーション | OIDC プロバイダーを使用して認証されたユーザー | duration-seconds CLI または DurationSeconds API パラメータ | 15 分 \$1 最大セッション期間設定² \$1 1 時間  | 
| [ を使用して構築された](id_roles_providers_enable-console-custom-url.md)コンソール URLAssumeRole  | ユーザーまたはロール | URL の SessionDuration HTML パラメータ | 15 分 \$1 12 時間 \$1 1 時間  | 
| [ を使用して構築された](id_roles_providers_enable-console-custom-url.md)コンソール URLAssumeRoleWithSAML  | SAML を使用して認証されたユーザー | URL の SessionDuration HTML パラメータ | 15 分 \$1 12 時間 \$1 1 時間 | 
| [ を使用して構築された](id_roles_providers_enable-console-custom-url.md)コンソール URLAssumeRoleWithWebIdentity  | OIDC プロバイダーを使用して認証されたユーザー | URL の SessionDuration HTML パラメータ | 15 分 \$1 12 時間 \$1 1 時間  | 

¹ 1 つのロールの認証情報を使用して別のロールを引き受けることを[ロールの連鎖](id_roles.md#iam-term-role-chaining)と言います。ロールの連鎖を使用する場合、ロールのセッション期間は 1 時間に制限されます。これは、AWS マネジメントコンソール ロールの切り替え、AWS CLI、API オペレーションに適用されます。この制限は、ユーザー認証情報からロールを最初に引き受ける場合や、インスタンスプロファイルを使用して Amazon EC2 インスタンスで実行しているアプリケーションには適用されません。

² この設定の値は 1 時間～ 12 時間です。最大セッション期間設定の修正の詳細については、「[IAM ロールの管理](id_roles_manage.md)」を参照してください。この設定は、ロールの認証情報を取得したときにリクエストできる最大セッション期間設定を決定します。たとえば、[AssumeRole\$1](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API オペレーションを使用してロールを引き受ける場合は、`DurationSeconds` パラメータの値を使用してセッションの期間を指定できます。このパラメータを使用して、ロールセッションの期間を 900 秒 (15 分) からそのロールの最大セッション期間設定まで指定できます。コンソールでロールを切り替える IAM ユーザーには、最大セッション期間、またはユーザーのセッションの残り時間のいずれか短い方が付与されます。ロールに 5 時間の最大期間を設定することを想定しています。コンソールに 10 時間（デフォルトの最大 12 時間）サインインした IAM ユーザーがロールに切り替わります。使用可能なロールセッション期間は 2 時間です。ロールの最大値を確認する方法については、このページで後述する「[ロールの最大セッション期間を更新する](id_roles_update-role-settings.md#id_roles_update-session-duration)」を参照してください。

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

**Topics**
+ [ユーザーから IAM ロールに切り替える (コンソール)](id_roles_use_switch-role-console.md)
+ [IAM ロールに切り替える (AWS CLI)](id_roles_use_switch-role-cli.md)
+ [IAM ロールに切り替える (Tools for Windows PowerShell)](id_roles_use_switch-role-twp.md)
+ [IAM ロールを切り替える (AWS)](id_roles_use_switch-role-api.md)
+ [Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス許可を付与する](id_roles_use_switch-role-ec2.md)
+ [インスタンスプロファイルを使用する](id_roles_use_switch-role-ec2_instance-profiles.md)