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

已配置IAM策略仍无效:如何在AWS控制台为IAM用户隐藏特定EC2实例

解决IAM用户仅查看特定EC2实例的问题

你当前的IAM策略存在逻辑问题:单独允许了ec2:Describe*所有资源,这直接绕过了第一个语句里的标签匹配条件,导致用户能看到所有EC2实例。要实现仅展示特定实例,需要调整策略,给Describe类操作也加上标签限制,同时保留控制台正常运行所需的基础操作权限。

修正后的IAM策略

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeRegions",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeAccountAttributes"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "ec2:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/UserName": "${aws:username}"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/UserName": "${aws:username}"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": "*"
    }
  ]
}

关键调整说明

  • 保留控制台基础操作权限:DescribeRegions、DescribeAvailabilityZones等操作没有资源标签可以匹配,必须无条件允许,否则EC2控制台会加载失败。
  • 给Describe操作加标签条件:确保用户只能查询到带有UserName标签且标签值等于自身IAM用户名的实例。
  • 实例操作权限保留标签限制:确保用户仅能对匹配标签的实例执行各类操作。

额外注意事项

要确保目标实例(比如Instance1)已添加UserName标签,标签值设置为对应的IAM用户名;而需要隐藏的Instance2不要添加该标签,或标签值与用户名不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:32:53