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

无法将IAM角色分配至美东(北弗吉尼亚)EC2实例求助

排查与解决方案

1. 先搞清楚:你可能混淆了「EC2实例角色」和「Lambda执行角色」

你的需求是用CloudWatch触发Lambda启停EC2,不需要给EC2实例关联角色——Lambda的执行角色才是需要配置的核心:

  • Lambda执行角色的信任主体是lambda.amazonaws.com,用来让Lambda服务能扮演这个角色调用EC2 API;
  • EC2实例关联的角色是给实例自身用的,信任主体必须是ec2.amazonaws.com,这类角色才会出现在EC2的「修改IAM角色」下拉列表里。
    如果你把Lambda的执行角色拿到EC2界面去选,肯定找不到,因为它的信任对象不是EC2服务。

2. 若你确实需要给EC2关联角色(非当前需求场景),检查这几点

如果是其他场景需要给EC2加角色但找不到,按以下步骤排查:

  • 检查角色的信任关系:确保信任策略里包含ec2.amazonaws.com作为服务主体,示例策略如下:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "ec2.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    
  • 排除服务关联角色:如果角色路径是/aws-service-role/开头,属于AWS服务专属的角色,不会显示在EC2实例角色的下拉列表里;
  • 刷新或切换环境重试:EC2界面的角色列表可能有缓存,刷新浏览器、退出重登控制台,或确认当前操作的区域确实是美东(北弗吉尼亚);
  • 检查IAM用户权限:确保你用来操作的IAM用户有iam:ListRoles和ec2:AssociateIamInstanceProfile权限,否则可能无法看到或关联角色。

3. 回到你的原需求:正确的配置流程

  1. 创建Lambda执行角色,信任策略允许lambda.amazonaws.com扮演该角色;
  2. 给这个角色附加权限策略,包含ec2:StartInstances、ec2:StopInstances,并限定到目标EC2实例的ARN;
  3. 编写Lambda代码,调用EC2的启停API(比如用boto3的start_instances/stop_instances方法);
  4. 创建CloudWatch事件规则,按设定的时间触发该Lambda函数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 03:57:03