使用CloudCustodian为EC2资源自动标记AWS用户名时缺少什么权限角色?
CloudCustodian为EC2资源自动标记AWS用户名时缺少什么权限角色?
看了你的日志输出,问题出在CloudCustodian尝试创建ec2-auto-tag-user这个Lambda函数时调用create_function API失败了。结合这个EC2自动标记用户的场景,你大概率是缺少了下面这些关键的权限或角色配置:
一、CloudCustodian执行角色需要的权限
这里指的是你用来运行CloudCustodian策略的那个IAM角色,它需要具备以下权限才能完成Lambda的部署:
lambda:CreateFunction:允许创建新的Lambda函数,这是日志里报错的直接相关权限lambda:UpdateFunctionCode、lambda:UpdateFunctionConfiguration:如果后续需要更新这个Lambda函数的代码或配置,这两个权限也得加上iam:PassRole:必须配置这个权限,否则CloudCustodian无法将Lambda所需的执行角色传递给新创建的函数(注意要指定允许传递的目标角色ARN,避免权限过大)s3:GetObject:如果CloudCustodian将Lambda代码包上传到了S3存储桶,这个角色需要有权限读取对应桶里的代码对象
二、Lambda执行角色需要的权限
这是给ec2-auto-tag-user这个Lambda函数本身使用的IAM角色,它需要具备以下权限才能完成EC2标记任务:
ec2:CreateTags:核心权限,用来给EC2实例添加用户相关的标签ec2:DescribeInstances:如果你的策略需要先获取EC2实例的详情再执行标记操作,这个权限是必需的logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents:Lambda函数需要将运行日志写入CloudWatch,这些是基础的日志权限,不能遗漏
另外你可以先检查这两个角色的权限配置是否完整,尤其是iam:PassRole权限的配置是否正确指定了目标Lambda执行角色的ARN,这是很多部署Lambda时容易踩的坑。
备注:内容来源于stack exchange,提问作者Albert T. Wong
相关产品推荐
相关产品推荐

