我试图按照此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?我只想要足够的权利。
所以我需要'iam:CreateRole,attachRolePolicy和createPolicy'。这不会扩大我的权利,例如我可能会增加一项政策给我自己,以便延长我的权利等等。 – sakhunzai
是的,这是问题,与这些权利,它扩展了你的权利,几乎作为管理员。例如我在我的回答中解释(或者至少我试图解释:)),通过这些权利,您可以创建具有管理权限的角色,承担该角色并因此获得帐户的管理员权限。这就是为什么我建议您的管理员为您预先创建角色,并且在您的教程的第6步中,您将选择其中一个角色,而不是选择创建新角色的选项。那有意义吗?对不起,如果我的英语不够清楚,但:) – Tom
谢谢。您是否认为通过角色>添加角色>角色名称[abc]> AWS服务角色(选择AWS Lambda)从IAM控制台添加新角色,那么该角色将在那里列出? – sakhunzai