我正在尝试使用this example设置用户特定的Lambda策略。有人可以告诉我为什么这种仅访问一个lambda的资源规范是错误的吗?
resource = "arn:aws:region:*:*:function:orderinputapi-alpha-writeMe";
当我使用时:
resource="*"
它可以正常工作(用户具有对所有lambda的完全访问权限),但是当我尝试将访问限制为仅允许单个lambda函数时,当我尝试访问它时,我得到“用户无权访问该资源”。我确认该函数是lambda的确切名称。
我的代码创建的完整策略声明为:
{ Action: 'execute-api:Invoke',
Effect: 'Allow',
Resource:'arn:aws:region:*:*:function:orderinputapi-alpha-writeMe' }
答案 0 :(得分:1)
您的ARN错误:
而不是arn:aws:region:*:*:function:orderinputapi-alpha-writeMe
,它应该是arn:aws:lambda:*:*:function:orderinputapi-alpha-writeMe
此外,如果您为相同的区域和帐户设置权限,则只需删除*
即可使ARN为:
arn:aws:lambda:::function:orderinputapi-alpha-writeMe