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

如何让AWS跨账号IAM用户devuser访问AccountB中的Lambda函数?

跨账号调用Lambda权限问题解决方法

你当前的核心错误是修改了Lambda执行角色的信任关系,但这个信任关系是用来授权Lambda服务自身扮演该角色执行函数的,和外部用户调用Lambda的权限无关。要让AccountA的devuser能调用AccountB的Lambda,需要给目标Lambda添加基于资源的策略(即Lambda资源策略),而不是修改执行角色的信任关系。

步骤1:恢复Lambda执行角色的信任关系

把AccountB中Lambda执行角色的信任关系恢复为初始状态,删除添加的devuser相关条目,正确的信任关系应该是:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "lambda.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

步骤2:给AccountB的Lambda添加资源策略

在AccountB中,找到目标Lambda函数dev-my-lambda,进入配置→权限→资源策略,添加以下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::AccountA:user/devuser"
            },
            "Action": [
                "lambda:InvokeFunction",
                "lambda:InvokeAsync"
            ],
            "Resource": "arn:aws:lambda:us-west-2:AccountB:function:dev-my-lambda"
        }
    ]
}

这个策略的作用是直接授权AccountA的devuser对该Lambda执行调用操作。

步骤3:确认AccountA的devuser权限策略

你当前给devuser附加的IAM权限策略是正确的,无需修改:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction",
                "lambda:InvokeAsync"
            ],
            "Resource": "arn:aws:lambda:us-west-2:AccountB:function:dev-my-lambda"
        }
    ]
}

完成以上步骤后,devuser就能正常调用AccountB的Lambda函数了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:42:45