スキップしてコンテンツを表示

IAM ID ベースのポリシーを使用して特定の IAM ロールセッションへのアクセスを制限する方法を教えてください

所要時間1分
0

アイデンティティベースのポリシーを使用して、特定の 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 ボリュームを作成し、アクセス方法を制限する方法を教えてください。

AWS公式更新しました 7ヶ月前
コメントはありません

関連するコンテンツ