You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IAM用户仅查看自身创建EC2实例的策略修改求助

限制IAM用户仅查看自身创建的EC2实例

可行性说明

完全可行。通过EC2实例的CreatedBy标签与IAM内置变量${aws:username}做匹配,结合IAM策略的允许/拒绝逻辑,就能实现用户仅能查看自己创建的EC2实例,无法访问其他用户创建的实例或无标签实例。

原策略问题

你提供的原策略逻辑存在冲突:

  • StringEqualsIfExists允许用户查看带CreatedBy标签且值为自身用户名的实例,同时也允许查看无CreatedBy标签的实例;
  • ForAnyValue:StringNotEqualsIfExists操作符不适用于单个标签场景,导致无法正确拒绝其他用户标签的实例。

修改后的策略代码

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/CreatedBy": "${aws:username}"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": "ec2:DescribeInstances",
            "Resource": "*",
            "Condition": {
                "Or": [
                    {
                        "StringNotEquals": {
                            "ec2:ResourceTag/CreatedBy": "${aws:username}"
                        }
                    },
                    {
                        "Null": {
                            "ec2:ResourceTag/CreatedBy": "true"
                        }
                    }
                ]
            }
        }
    ]
}

策略逻辑解释

  • 允许规则:仅允许用户查看带有CreatedBy标签且标签值等于自身IAM用户名的EC2实例;
  • 拒绝规则:明确拒绝用户查看两类实例:
    • CreatedBy标签值不等于自身用户名的实例;
    • 没有CreatedBy标签的实例。

这样组合后,用户只能访问自己创建并标记了CreatedBy标签的EC2实例,完全符合需求。

内容的提问来源于stack exchange,提问作者sai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 10:10:16