首页 > 解决方案 > AWS Lambda 共享层访问被拒绝错误

问题描述

我正在尝试将托管在账户B中的共享 Lambda 层添加到在账户A中创建的函数中。让我有点疯狂的是,我试图以用户(在账户 A 中)的身份进行操作,仅具有lambda:UpdateFunctionConfiguration权限,根据 AWS 文档,这应该足够了,但我得到一个“AccessDenied,用户 X无权执行:lambda:GetLayerVersion”错误。

语境:

-图层和函数都在同一区域(eu-west-1)中创建。

-Layer 权限(在账户 B 中)已设置为Principal: '*',因此任何 AWS 账户都应该能够导入它。操作参数已设置为允许lambda:GetLayerVersion

在账户B中执行的命令:

aws lambda add-layer-version-permission --layer-name mylayer --version-number 3 --statement-id mystatementid --action lambda:GetLayerVersion --principal '*' --profile myprofileB --region eu-west-1

- 当尝试使用 AdministratorAccess 用户将此层添加到我的功能时,它起作用了。

基于此,似乎 lambda:UpdateFunctionConfiguration 权限本身不足以向函数添加跨账户层。但是,我也尝试给这个用户完整的 Lambda 权限 (lambda:*) 并得到相同的 AccessDenied 错误。

在账户A中执行的命令以使用账户B中创建的层更新 myfunction :

aws lambda update-function-configuration --function-name myfunction --layers arn:aws:lambda:eu-west-1:[account B id]:layer:mylayer:3 --profile myprofileA --region eu-west-1

我似乎找不到对执行此操作所需的任何其他权限的引用,但一切似乎都表明我需要更多权限(甚至超出 lambda:*)。建议将不胜感激。

谢谢

标签: amazon-web-servicesaws-lambdaaws-lambda-layers

解决方案


推荐阅读