アイデンティティベースのポリシーを使用して、特定の AWS Identity and Access Management (IAM) ロールセッションにアクセス許可を付与したいと考えています。
解決策
特定の IAM ロールセッションへのアクセスを許可する IAM ポリシーを作成するには、AWS グローバル条件コンテキストキー aws:userid を使用します。
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
aws:userid グローバル条件キーは、リクエストを行うプリンシパルのユニーク ID が IAM ポリシーで指定されたユニーク ID と一致するかどうかを確認します。例えば、IAM ロールセッションが AWS アカウントで特定の Amazon Elastic Compute Cloud (Amazon EC2) アクションを実行できるようにするには、IAM ポリシーを作成します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowASpecificRoleSession",
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:RebootInstances",
"ec2:TerminateInstances"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:userid": "AROA123456789EXAMPLE:&ExampleRoleSessionName"
}
}
}
]
}
注: aws:userid はロールの一意の ID とセッション名に置き換えてください。
上記の IAM ポリシーは、aws:userid グローバル条件キーの IAM ロールセッションへのアクセスを Amazon EC2 インスタンスに付与します。他のロールセッションは Amazon EC2 アクションを実行できません。
IAM ロールのロール ID を取得するには、get-role AWS CLI コマンドを実行します。
aws iam get-role --role-name role_name
注: role_name は実際のロール名に置き換えてください。
次のような出力が表示されます。
{
"Role": {
"Path": "/",
"RoleName": "Test-Role",
"RoleId": "AROA123456789EXAMPLE",
"Arn": "arn:aws:iam::444455556666:role/Role",
"CreateDate": "2023-08-04T12:37:14+00:00",
"AssumeRolePolicyDocument": "URL-encoded-JSON",
"Description": "Test Role",
"MaxSessionDuration": 3600,
"RoleLastUsed": {
"Region": "us-east-1",
"LastUsedDate": "2025-10-27T12:36:29+00:00"
}
}
}
出力で、RoleID 文字列を確認します。ロール ID はアイデンティティベースのポリシーで使用され、Amazon EC2 インスタンスのアクセスを IAM ロールセッションに制限します。
注: aws:userid グローバル条件キーは、ID ベースのポリシー、リソースベースのポリシー、アクセス許可の境界ポリシーなど、あらゆるタイプの IAM ポリシーで使用できます。aws:userid グローバル条件キーの値は、リクエストを開始するプリンシパルのタイプによって異なります。さまざまなタイプのプリンシパルの値を決定するには、「プリンシパルキー値」を参照してください。
関連情報
IAM ID へのアクセスを特定の Amazon EC2 リソースに制限する方法を教えてください。
IAM ポリシータグを使用して EC2 インスタンスまたは EBS ボリュームを作成し、アクセス方法を制限する方法を教えてください。