2017-06-06 73 views
1

当我有我的拉姆达执行的角色IAM策略设置为:AWS IAM拉姆达 “没有被授权执行:波长:GetFunction”

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Action": [ 
       "lambda:GetFunction" 
      ], 
      "Resource": [ 
       "*" 
      ], 
      "Effect": "Allow" 
     } 
    ] 
} 

我得到这个错误:

[AccessDeniedException: User: 
arn:aws:sts::xxx:assumed-role/supercoolsoftware-dev-us-west-2-lambdaRole/supercoolsoftware-dev-addEmail 
is not authorized to perform: 
lambda:GetFunction on resource: 
arn:aws:lambda:us-west-2:xxx:function:supercoolsoftware-dev-dailyEmail] 

但是,当我将策略设置为:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Action": [ 
       "lambda:*" 
      ], 
      "Resource": [ 
       "*" 
      ], 
      "Effect": "Allow" 
     } 
    ] 
} 

错误消失了......我还需要添加哪些内容?

+0

你确定这是唯一的区别吗?政策是否正确附加? –

+0

@ f.khantsis我不得不包含'lambda:GetFunctionConfiguration' – CamHart

回答

2

想通了。显然SDK也使用“lambda:GetFunctionConfiguration”。一旦我包括这一切工作。

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Action": [ 
       "lambda:GetFunction", 
       "lambda:GetFunctionConfiguration" 
      ], 
      "Resource": [ 
       "*" 
      ], 
      "Effect": "Allow" 
     } 
    ] 
} 
0

对于任何人得到这个错误alexa.design/cli教程后,

ASK_CLI_USER is not authorized to perform: lambda:GetFunction on resource

对我来说,问题不是“拉姆达:GetFunctionConfiguration”,而是它下面的资源线因在 “ask-” 前缀:

"Resource": "arn:aws:lambda:*:*:function:ask-*"

将其更改为这个解决我的问题:

"Resource": "arn:aws:lambda:*:*:function:*"