2016-01-22 121 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

相关问题