2016-01-22 119 views
4

我試圖按照此tutorial設置關閉/啓動實例的lambda函數,並將特殊標記添加到ec2實例。以有限政策授予對AWS Lambda服務的訪問權

分配給Admin用戶自己角色的政策,我可以訪問如通過

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "cloudwatch:*", 
     "cognito-identity:ListIdentityPools", 
     "cognito-sync:GetCognitoEvents", 
     "cognito-sync:SetCognitoEvents", 
     "dynamodb:*", 
     "events:*", 
     "iam:ListAttachedRolePolicies", 
     "iam:ListRolePolicies", 
     "iam:ListRoles", 
     "iam:PassRole", 
     "kinesis:DescribeStream", 
     "kinesis:ListStreams", 
     "kinesis:PutRecord", 
     "lambda:*", 
     "logs:*", 
     "s3:*", 
     "sns:ListSubscriptions", 
     "sns:ListSubscriptionsByTopic", 
     "sns:ListTopics", 
     "sns:Subscribe", 
     "sns:Unsubscribe" 
     ], 
     "Resource": "*" 
    } 
    ] 
} 

所有lambda表達式我堅持爲第6步,同時設置Lambda function handler and role同時選擇「基本執行角色」,錯誤

用戶:阿爾恩:AWS:IAM :: XXXX:用戶/ yyyy是無權執行: IAM:CREATEROLE資源:阿爾恩:AWS:IAM :: XXXX:角色/ lambda_basic_exec

我的角色看起來政策某物是這樣的:

{ 
     "Version": "2012-10-17", 
     "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
      "logs:CreateLogGroup", 
      "logs:CreateLogStream", 
      "logs:PutLogEvents" 
      ], 
      "Resource": "arn:aws:logs:*:*:*" 
     },  
     { 
      "Effect": "Allow", 
      "Action": [ 
      "ec2:Describe*", 
      "ec2:Start*", 
      "ec2:RunInstances", 
      "ec2:Stop*", 
      ], 
      "Resource": "*" 
     } 
     ] 
    } 

這似乎是合理的給我的有限的權利。

我應該問什麼我的管理員更新分配給我的策略,以便我可以成功設置lambda函數的計劃事件,如教程中所述?或者這可以通過其他方式來完成,例如通過添加新角色來使用IAM?我只想要足夠的權利。

回答

2

您有安全約束,因爲您需要在策略中使用「iam:CreateRole」,以及諸如「iam:attachRolePolicy」和「iam:createPolicy」之類的內容。因此,基本上你的賬戶是管理員,因爲你可以使用任何策略創建角色,並將其附加到EC2實例或直接假設它。

你可以做的是讓你的管理員爲lambda創建一個或多個角色,例如一個用於S3訪問,一個用於ec2命令等。當你想要創建一個lambda函數時,選擇這些預先創建的角色之一而不是創建一個新的。

+0

所以我需要'iam:CreateRole,attachRolePolicy和createPolicy'。這不會擴大我的權利,例如我可能會增加一項政策給我自己,以便延長我的權利等等。 – sakhunzai

+2

是的,這是問題,與這些權利,它擴展了你的權利,幾乎作爲管理員。例如我在我的回答中解釋(或者至少我試圖解釋:)),通過這些權利,您可以創建具有管理權限的角色,承擔該角色並因此獲得帳戶的管理員權限。這就是爲什麼我建議您的管理員爲您預先創建角色,並且在您的教程的第6步中,您將選擇其中一個角色,而不是選擇創建新角色的選項。那有意義嗎?對不起,如果我的英語不夠清楚,但:) – Tom

+1

謝謝。您是否認爲通過角色>添加角色>角色名稱[abc]> AWS服務角色(選擇AWS Lambda)從IAM控制檯添加新角色,那麼該角色將在那裏列出? – sakhunzai

相關問題