ロールを切り替えるユーザーアクセス許可の付与 - AWS Identity and Access Management

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

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

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

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

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

重要

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

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

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

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

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

  • sts:AssumeRoleアクション

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

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

注記

Resource* に設定されている場合、ユーザーは任意のアカウント内のどのロールでも引き受けることができます。(つまり、ロールの信頼ポリシーでは、ユーザーのアカウントを 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 とロール名が事前設定されたリンクを送信すると、ユーザーが作業を行いやすくなります。ロールのリンクは、[ロールの作成] ウィザードの最後のページか、クロスアカウントが有効なロールの [ロールの概要] ページで確認できます。

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

https://signin.aws.amazon.com/switchrole?account=your_account_ID_or_alias&roleName=optional_path/role_name

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

考慮事項

  • ロールをプログラムで作成する場合は、名前に加えて、パスを使用してロールを作成できます。その場合は、完全なパスとロール名を指定して、ユーザーが AWS マネジメントコンソール の [ロールの切り替え] ページでそれを入力できるようにする必要があります。例: division_abc/subdivision_efg/role_XYZ

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

  • セキュリティ上の理由から、AWS CloudTrail ログを確認して、AWS でアクションを実行したユーザーを調べることができます。ロール信頼ポリシーで sts:SourceIdentity 条件キーを使用すると、ロールを引き受けようとするユーザーに対し、ID の指定を要求できます。例えば、IAM ユーザーが自分のユーザー名をソース ID として指定するように要求できます。こうしておくと、AWS で特定のアクションを実行したユーザを確認する際に役立ちます。詳細については、「sts:SourceIdentity」 を参照してください。また、aws:RoleSessionName を使用して、ロールを引き受けようとするユーザーに対し、セッション名の指定を要求することもできます。これは、ロールが異なるプリンシパルによって使用されている場合、ロールセッションを区別するのに役立ちます。