You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让IAM用户可见AWS根账户下创建的EC2实例?

解决IAM用户无法查看根账户创建的EC2实例的方案

没问题,我来帮你搞定这个问题——本质上这就是个权限配置的事儿,EC2实例是属于整个AWS账户的,不是绑定某一个用户,只要给IAM用户配对了权限,就能看到所有实例。具体步骤如下:

1. 先给IAM用户加上基础的EC2只读权限

这是最直接的第一步,操作起来也简单:

  • 用根账户登录AWS控制台,进入IAM服务
  • 找到需要授权的IAM用户(或者用户组,批量授权更方便)
  • 点击「添加权限」→ 选择「附加现有策略直接」
  • 搜索并勾选AmazonEC2ReadOnlyAccess这个托管策略,它包含了查看EC2实例、快照、卷等所有只读操作的权限
  • 保存更改

完成这一步后,绝大多数情况下IAM用户刷新EC2控制台就能看到所有实例了。如果还是看不到,接着往下排查。

2. 检查是否有资源级权限限制

如果你的团队用了标签权限控制或者给实例加了自定义资源策略,可能会导致权限被限制:

  • 先登录根账户进入EC2控制台,找到目标实例,查看它的「标签」——如果你的IAM策略是基于特定标签授权的(比如只允许访问带Team: Dev标签的实例),那根账户创建的实例可能没加这个标签,直接给实例补上对应标签就行。
  • 要是实例附加了IAM角色,检查角色的信任策略,确认是否允许你的IAM用户访问该角色关联的资源。
  • 如果你用了自定义IAM策略,确保策略里包含允许ec2:Describe*操作的语句,比如:
{
    "Effect": "Allow",
    "Action": [
        "ec2:DescribeInstances",
        "ec2:DescribeVolumes",
        "ec2:DescribeSnapshots"
    ],
    "Resource": "*"
}

3. 排查是否有显式拒绝的权限

有时候自定义IAM策略里不小心加了Deny语句,会直接覆盖所有允许的权限。一定要检查用户的所有附加策略,确保没有类似这样的内容:

{
    "Effect": "Deny",
    "Action": "ec2:DescribeInstances",
    "Resource": "*"
}

如果有,要么删掉这条拒绝规则,要么调整条件让它不影响目标实例的访问。

4. 测试权限有效性

配置完后切换到IAM用户的控制台,刷新EC2页面试试。如果还是不行,用IAM控制台的「模拟策略」功能,模拟该用户执行ec2:DescribeInstances操作,看具体报错是什么,再针对性调整权限。

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

火山引擎 最新活动