2016-10-01 37 views
2

我正在使用我用來運行Lambda函數的用戶角色之一的訪問策略。我有這樣的:lambda:InvokeFunction不能與所有資源一起使用設置

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "logs:CreateLogGroup", 
       "logs:CreateLogStream", 
       "logs:PutLogEvents" 
      ], 
      "Resource": "arn:aws:logs:*:*:*" 
     }, 
     { 
      "Effect": "Allow", 
      "Action": "lambda:InvokeFunction", 
      "Resource": "*" 
     }, 
     { 
      "Effect": "Allow", 
      "Action": "ec2:DescribeInstances", 
      "Resource": "*" 
     } 
    ] 
} 

據我所知,我的資源設置爲*是不是最好的做法,但我只是想在我縮小在它的最鎖定版本,以獲得它的工作。

當我測試lambda函數就這樣說:

ClientError: An error occurred (AccessDeniedException) when calling the Invoke operation: User: arn:aws:sts::{NUMBERS}:assumed-role/{ROLE_NAME}/awslambda_{NUMBERS}_{NUMBERS} is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:us-east-1:{NUMBERS}:function:{FUNCTION_NAME} 

我明明掩蓋它的一些上面的花括號和文字,但上面的ROLE_NAME匹配,我編輯的角色名政策。我不確定它爲什麼會失敗。我嘗試了這些資源:

arn:aws:lambda:*:*:*:* 
arn:aws:lambda:*:*:* 

那些不起作用。所以我嘗試了很寬泛的,我試圖縮小它,沒有任何工作。還有什麼我必須做的讓這些堅持?我在一個屏幕上打開IAM策略窗口,在另一個屏幕上打開lambda表達式,所以我在更新策略之後立即測試,但我也完全註銷並重新登錄以查看是否存在某些內容。這並沒有解決它。

任何想法?

回答

1

我做了一段時間。這是從我的筆記。賬戶支票當然還在那裏。

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

您也可以嘗試在AWS控制檯的IAM策略模擬器頁。你可以挑選和選擇行動和資源,看看它是否經過。乍一看,解釋有時候很笨拙,但它很有幫助。

相關問題