メニュー
AWS Identity and Access Management
ユーザーガイド

ロールを切り替えるユーザーアクセス権限の付与

クロスアカウントアクセスのためのロールを作成する場合、そのロールを所有するアカウントおよびリソース(信頼するアカウント)からユーザーを含むアカウント(信頼されるアカウント)への信頼を確立してます。これを行うには、ロールの信頼ポリシーで信頼されるアカウント番号を Principal として指定します。これにより、信頼されたアカウント内のすべてのユーザーがロールを引き受けることができるようになる可能性があります。設定を完了するには、信頼されたアカウントの管理者がそのアカウント内の特定のグループまたはユーザーにロールを切り替えるアクセス権限を付与する必要があります。

ロールを切り替えるユーザーアクセス権限を付与するには、ユーザーの新しいポリシーを作成するか、既存のポリシーを編集して必要なエレメントを追加します。その後、詳細がすべてすでに入力されている [Switch Role] ページへのリンクをユーザーに送信できます。または、アカウント ID 番号またはロールを含むアカウントエイリアスと、ロール名をユーザーに提供できます。こうすると、ユーザーは [Switch Role] ページに移動して詳細を手動で追加できます。ユーザーがロールを切り替える方法について詳しくは、「ロールの切り替え(AWS マネジメントコンソール)」を参照してください。

ロールを切り替えることができるのは、IAM ユーザーとしてサインインしているときのみですのでご注意ください。AWS アカウントのルートユーザーとしてサインインしている時はロールの切り替えはできません。

重要

AWS マネジメントコンソールで、ExternalID 値を必要とするロールに切り替えることはできません。ExternalID パラメーターをサポートする AssumeRole API を呼び出すことにより、このようなロールに切り替えることができます。

コメント

  • このタスクの目標は、最終的にユーザーにアクセス権限を付与することです。そのため、このトピックでは、ユーザーのポリシーについて説明します。ただし、個々のユーザーにアクセス権限を直接付与しない方法が、ベストプラクティスです。管理を簡単にするために、ポリシーを割り当ててアクセス権限を IAM グループに付与し、その後ユーザーを適切なグループのメンバーにする方法をお勧めします。

  • AWS マネジメントコンソールでロールを切り替えると、コンソールは常に元の認証情報を使用して切り替えを認証します。これは、IAM ユーザー、SAML フェデレーションロール、またはウェブ ID フェデレーションロールとしてサインインする際に適用されます。たとえば、RoleA に切り替える場合は、元のユーザーまたはフェデレーションロールの認証情報を使用して、RoleA の引き受けが許可されているかどうかが判断されます。その後、RoleA を使用中に RoleB への切り替えを試みると、引き続き RoleA の認証情報ではなく元のユーザーまたはフェデレーションロールの認証情報を使用して、RoleB への切り替えが承認されます。

ポリシーの作成または編集

ロールを引き受けるアクセス権限をユーザーに付与するポリシーには、次の例に示すように sts:AssumeRole アクションの Allow 効果を伴うステートメントおよび Resource エレメントのロールの Amazon リソースネーム (ARN) を含める必要があります。このポリシーを取得するユーザー(グルームメンバーとしてでも直接付与でも)は、指定されたロールに切り替えることができます。

注記

Resource* に設定されている場合、ユーザーはsのユーザーのアカウントを信頼するすべてのアカウント(ロールの信頼ポリシーでそのユーザーアカウントを Principal として指定しているアカウント)のすべてのロールを引き受けることができますのでご注意ください。ベストプラクティスとして、最小権限の原則に従って、ユーザーが必要とするロールのみについて完全な ARN を指定することをお勧めします。

次の例に、ユーザーが 1 つのアカウント内のロールのみ引き受けることができることを指定し、ロール名が "Test" という文字で始まる任意の文字の組み合わせの場合はユーザーそのアカウント内のロールにのみ切り替えることができることをワイルドカード (*) によって追加指定するポリシーを示します。

Copy
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/Test*" } }

注記

ローをユーザーに付与するアクセス権限は、既にユーザーに付与されているアクセス権限に追加されるわけではありません。ユーザーがロールに切り替えると、そのユーザーはロールによって付与されたアクセス権限と引き換えに元々付与されていたアクセス権限を一時的に喪失します。ユーザーがロールを終了すると、元のユーザーアクセス権限が自動的に復元します。たとえば、ユーザーのアクセス権限により Amazon EC2 インスタンスの操作が許可されているが、ロールのアクセス権限ポリシーではそれらのアクセス権限が付与されていない場合、そのロールを使用している間、ユーザーはコンソールで Amazon EC2 インスタンスを操作することができず、AssumeRole を通じて取得された一時的な認証情報がプログラムにより Amazon EC2 インスタンスで機能することができません。

ユーザーへの情報の提供

ロールを作成し、そのロールに切り替えるユーザーアクセス権限を付与したら、ロール名およびアカウント ID 番号、またはそのロールを含むアカウントエイリアスをユーザーに提供する必要があります。アカウント ID とロール名が事前設定されたリンクを送信すると、ユーザーが作業を行いやすくなります。ロールのリンクは、[Create Role] ウィザードの最後のページか、クロスアカウントが有効なロールの [Role Summary] ページで確認できます。

注記

AWS CLI、Tools for Windows PowerShell または AWS API を使用してロールを作成した場合は、名前に加えてパスを指定できます。その場合は、AWS マネジメントコンソール の [Switch Role] ページで入力する完全なパスとロール名を、ユーザーに指定する必要があります。例: division_abc/subdivision_efg/role_XYZ

重要

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

または、次の形式を使用して手動でリンクを作成することもできます。リクエスト内の 2 つのパラメータのアカウント ID またはエイリアスとロール名を置き換えます。

https://signin.aws.amazon.com/switchrole?account=YourAccountIDorAliasHere&roleName=pathIfAny/YourRoleNameHere

ユーザーにトピック「ロールの切り替え(AWS マネジメントコンソール)」を参照してプロセスに従ってもらうことをお勧めします。

注記

セキュリティ上の観点から、AWS CloudTrail を使用してロールの切り替えを監査できます。アカウントで CloudTrail が有効な場合、ロールの一時的なセキュリティ認証情報を使用して実行された IAM アクションが記録されます。詳細については、AWS CloudTrail User Guide の「CloudTrail Event Reference」を参照してください。