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

不使用STS AssumeRole跨账号调用Lambda报权限错误排查

跨账号Lambda直接调用可行性结论

不通过STS AssumeRole实现跨账号Lambda直接调用是完全可行的,你当前遇到的权限报错核心是目标Lambda的资源基策略配置错误。

问题根因

你当前为目标Lambda配置的资源策略中,Principal设置为"Service": "lambda.amazonaws.com",该配置仅适用于AWS Lambda服务本身作为触发方的场景(比如S3事件通知、SNS订阅触发、事件源映射等托管服务触发链路),并不对其他账号下的IAM身份直接调用生效,因此IAM权限校验时无法匹配到允许规则,抛出无权限错误。

修复步骤
  • 修正目标Lambda的资源基策略
    将Principal从服务主体替换为调用方对应的IAM身份主体,保留你原有的SourceArn条件做最小权限限制,正确策略示例如下:
{
  "Version": "2012-10-17",
  "Id": "default",
  "Statement": [
    {
      "Sid": "addCrossAccountPermission",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::984589850232:role/device-service-sandbox-authenticateDevice-us-east-1-lambdaRole"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:us-east-1:938718425371:function:cm-mgmt-service-sandbox-authenticateDevice",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "984589850232"
        },
        "ArnLike": {
          "AWS:SourceArn": "arn:aws:lambda:us-east-1:984589850232:function:device-service-sandbox-authenticateDevice"
        }
      }
    }
  ]
}

如果需要允许调用方账号下所有IAM身份调用(不推荐,权限过大),可以将Principal简化为"AWS": "984589850232",搭配SourceArn条件依然可以限制仅指定调用方Lambda有权限访问。

  • 给调用方Lambda执行角色添加身份权限
    跨账号Lambda调用需要同时通过两层权限校验:调用方身份自身有调用目标函数的权限、目标函数资源策略允许该身份调用。你需要给调用方绑定的执行角色device-service-sandbox-authenticateDevice-us-east-1-lambdaRole添加如下权限语句:
{
  "Effect": "Allow",
  "Action": "lambda:InvokeFunction",
  "Resource": "arn:aws:lambda:us-east-1:938718425371:function:cm-mgmt-service-sandbox-authenticateDevice"
}
  • 验证配置生效后重试
    IAM策略更新后通常在10秒内完成全局生效,你现有的业务调用代码不需要做任何修改,直接重试调用即可。
注意事项
  • 不要在IAM身份直接调用Lambda的场景下给资源策略配置服务Principal,该类Principal仅对AWS托管服务的触发链路生效。
  • 策略中的条件键注意保持AWS:前缀大写,不要写成小写aws:,否则条件校验会失效。
  • 如果目标Lambda通过Serverless Framework部署,建议在服务的serverless.yml中通过函数级permissions配置项定义资源策略,避免手动在控制台修改的策略被后续部署流程覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:15:37