AWS第三方Lambda访问配置:权限获取与专属授权问询
刚好之前做过类似的跨账户Lambda调用场景,给你梳理下:
第三方需要提供的核心信息
要让你的服务能调用第三方的Lambda函数,对方至少需要提供以下关键信息:
- Lambda函数ARN:这是AWS中唯一标识该Lambda函数的资源名称,格式通常是
arn:aws:lambda:区域ID:第三方账户ID:function:函数名称,你的服务必须通过这个ARN指定调用目标。 - (可选但建议)第三方AWS账户ID:虽然ARN里已经包含了账户ID,但单独提供可以方便你在配置自身IAM权限时做校验,避免输入错误。
如果对方的Lambda函数部署在VPC私有子网中,可能还需要确认是否配置了VPC端点或者NAT网关允许外部调用,但这类场景属于特殊情况,最简调用场景下ARN是核心必备项。
仅允许我方服务调用的最简方式
要实现仅你的服务能调用对方Lambda,最直接且安全的方式是通过Lambda资源-based策略(也就是在第三方的Lambda上配置权限,开放给你的服务对应的IAM实体),步骤如下:
- 你需要提供给第三方你的服务使用的IAM执行角色ARN(或者专门用于调用Lambda的IAM用户/角色ARN)——这个是你方服务发起调用时的身份标识。
- 第三方登录AWS控制台,找到他们的Lambda函数,进入「配置」→「权限」→「资源-based策略」,添加一条授权策略,允许你的IAM实体执行
lambda:InvokeFunction动作。 - 示例策略代码如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "替换为你方IAM角色/用户的ARN" }, "Action": "lambda:InvokeFunction", "Resource": "替换为第三方Lambda函数的ARN" } ] }
- 同时,你需要在自己的IAM策略中给服务的执行角色添加权限,允许调用该第三方Lambda的ARN,示例策略片段:
{ "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "替换为第三方Lambda函数的ARN" }
这种方式的优势是权限最小化:只有你指定的IAM实体能调用对方的Lambda,第三方不需要额外管理复杂的访问控制列表,配置起来也最直接。
内容的提问来源于stack exchange,提问作者ovg
相关产品推荐
相关产品推荐

