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

如何无需EC2侧配置权限,允许所有EC2实例调用Lambda?

问题:无需在EC2实例侧配置权限,让所有EC2实例调用Lambda函数是否可行?

我尝试给Lambda函数添加以下基于资源的策略,期望允许所有EC2实例调用它:

{
  "Version": "2012-10-17",
  "Id": "default",
  "Statement": [
    {
      "Sid": "InvokeLambdaFunction",
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:eu-west-1:123456789012:myLambdaFunction",
      "Condition": {
        "ArnLike": {
          "AWS:SourceArn": "arn:aws:ec2:eu-west-1:123456789012:instance/*"
        }
      }
    }
  ]
}

但在EC2实例内使用AWS CLI调用该Lambda时,出现权限拒绝错误:

sh-4.2$ aws lambda invoke --function-name "myLambdaFunction" --payload "{\"instance-id\":\"$EC2_INSTANCE_ID\"}" --region eu-west-1 response.json

错误信息:

An error occurred (AccessDeniedException) when calling the Invoke operation: User: arn:aws:sts::123456789012:assumed-role/AmazonSSMRoleForInstancesQuickSetup/i-06e731b382734dc8f is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:eu-west-1:123456789012:function:myLambdaFunction because no identity-based policy allows the lambda:InvokeFunction action

请问我是否遗漏了配置,还是这种需求根本不可行?


回答

这种需求不可行,核心原因是AWS的权限模型要求身份策略与资源策略同时满足允许条件,才能完成操作:

  1. 你配置的Lambda资源策略仅允许EC2服务作为主体发起请求,但实际发起调用的是EC2实例关联的IAM角色(即错误信息中的AmazonSSMRoleForInstancesQuickSetup),该角色本身没有被授予lambda:InvokeFunction权限——这正是错误提示中「no identity-based policy allows the lambda:InvokeFunction action」的含义。

  2. EC2实例调用Lambda时,请求的身份是实例所扮演的IAM角色,而非EC2服务本身。设置Principal: ec2.amazonaws.com只是允许EC2服务代表角色发起请求,但角色必须拥有对应的身份策略授权才能执行操作。

若要实现让所有EC2实例调用该Lambda,可选择以下方案:

  • 方案一:给所有EC2实例关联的IAM角色添加身份策略,明确授予lambda:InvokeFunction权限(可限定资源为目标Lambda的ARN)。
  • 方案二:创建通用的IAM托管策略,批量附加给所有EC2实例角色,本质仍是给实例角色添加授权。

另外,你当前资源策略中的Condition: ArnLike仅用于过滤请求来源为EC2实例ARN,属于额外的安全限制,无法替代实例角色的身份授权。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:40:27