2017-06-06 75 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:*"