如何允许指定AWS Lambda承担特定IAM角色?配置报错求助
解决Lambda无法承担IAM角色的问题
原配置的问题分析
你的信任策略存在两个关键问题:
- 多余添加了
arn:aws:iam::111111:root作为Principal,Lambda服务承担角色时不需要root用户参与,反而会干扰条件匹配逻辑。 - Condition仅指定了单个Lambda函数ARN,且格式可能不符合Lambda标准ARN规则(标准格式为
arn:aws:lambda:<区域>:<账号ID>:function:<函数名>,带版本/别名的格式为arn:aws:lambda:<区域>:<账号ID>:function:<函数名>:<版本/别名>)。
正确的信任策略配置
将信任策略修改为以下内容,替换其中的函数ARN为你实际的两个Lambda函数ARN:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "lambda:FunctionArn": [ "arn:aws:lambda:us-east-1:111111:function:first-function-name", "arn:aws:lambda:us-east-1:111111:function:second-function-name" ] } } } ] }
额外检查事项
- 确认Lambda函数配置中指定的角色ARN完全正确,无拼写错误。
- 若需要匹配一类函数而非精确指定,可使用
StringLike配合通配符,例如"arn:aws:lambda:us-east-1:111111:function:service-*"。
内容的提问来源于stack exchange,提问作者Gold100
相关产品推荐
相关产品推荐

