使用带AWSLambdaFullAccess的HR角色创建Lambda失败,遇iam权限报错求助
解决AWS Lambda创建时的
iam:CreateRole权限报错问题 我来帮你拆解这个问题——你遇到的报错其实是个典型的权限范围误解:AWSLambdaFullAccess策略默认并不包含创建IAM角色的权限,哪怕你用根账号配置了HR角色并附加了这个策略也没用。
问题根源
当你创建Lambda函数时,如果选择让AWS自动创建执行角色(这是默认选项),Lambda服务会在后台调用iam:CreateRole和iam:AttachRolePolicy操作来生成对应的执行角色。但AWSLambdaFullAccess策略的权限范围只覆盖Lambda自身的资源操作,不包含IAM角色创建这类跨服务的权限,所以会触发授权错误。
解决方案
下面是一步步的修复步骤:
步骤1:检查HR角色的现有权限
登录AWS控制台,进入IAM服务,找到你的HR角色,查看它附加的所有策略。你会发现AWSLambdaFullAccess里确实没有iam:CreateRole相关的权限条目。步骤2:添加自定义权限策略(推荐)
为了最小化权限(遵循AWS最佳实践),创建一个仅包含必要IAM操作的自定义策略:- 在IAM控制台的「策略」页面,点击「创建策略」
- 选择「JSON」标签,粘贴以下内容(替换
YOUR_ACCOUNT_ID为你的AWS账号ID):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:AttachRolePolicy", "iam:PassRole" ], "Resource": "arn:aws:iam::YOUR_ACCOUNT_ID:role/*LambdaExecutionRole*" } ] } - 给策略命名(比如
LambdaExecutionRoleCreator),完成创建后,将它附加到你的HR角色上。
步骤3:验证权限生效
用该用户账号重新登录AWS控制台,再次尝试创建Lambda函数。如果选择自动创建执行角色,现在应该不会再报错了。额外排查点:权限边界
如果还是报错,检查HR角色是否设置了权限边界。权限边界会限制角色能使用的最大权限,哪怕你附加了允许的策略,只要边界里没包含iam:CreateRole,还是会被拒绝。这种情况下需要调整权限边界的内容。
内容的提问来源于stack exchange,提问作者Jeet
相关产品推荐
相关产品推荐

