AWS Identity and Access Management
ユーザーガイド

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

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

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

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

重要

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

コメント

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

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

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

ロールを引き受けるアクセス許可をユーザーに付与するポリシーには、次の Allow 効果を伴うステートメントを含める必要があります。

  • sts:AssumeRoleアクション

  • Resource 要素でのロールの Amazon リソースネーム (ARN)

これを次の例で示します。このポリシーを取得するユーザー(グルームメンバーとしてでも直接付与でも)は、指定されたロールに切り替えることができます。

注記

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

次の例に示すポリシーでは、ユーザーは 1 つのアカウントに限ってロールを引き受けることができます。さらに、このポリシーではワイルドカード (*) を使用し、ロール名が文字列 Test で始まる場合に限り、ユーザーがロールに切り替えることができることを指定します。

{ "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 とロール名が事前設定されたリンクを送信すると、ユーザーが作業を行いやすくなります。ロールのリンクは、[ロールの作成] ウィザードの最後のページか、クロスアカウントが有効なロールの [ロールの概要] ページで確認できます。

注記

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

重要

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

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

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

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

注記

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