amazon-web-services - 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:*)。建议将不胜感激。
谢谢
解决方案
推荐阅读
- python - Python SQL Pandas - 无法将大于 27650 行的数据框导入数据库
- c++ - C++ constexpr 函数对数组进行校验和
- python - 如何使用 return 而不是 print 来获取这些字符串?
- reactjs - 单击时如何关闭菜单
- go - Gorm:是否可以为常见的数据库操作定义共享方法(例如,通过 id 获取)?
- azure-data-factory - 在 Azure 数据工厂的 Web 活动中动态传递作业 ID
- tensorflow - tensorflow-hub 无法加载 BERT 模型
- go - 如何获取指向连接字符串或默认类型(如 bool)的指针?
- mongodb - Mongodb查询以查找数组中包含重复字段的所有文档
- dolphindb - 可以订阅本地流媒体吗?