如何在.yaml文件中为AWS Lambda函数添加权限策略
报错原因
你创建自定义IAM角色时,必须填写AssumeRolePolicyDocument(信任策略)字段,用于声明该角色允许哪些AWS服务或主体代入使用,你当前的LambdaRole配置中缺失了该字段,所以部署失败。
修复方案
在你的LambdaRole资源的Properties下添加AssumeRolePolicyDocument配置,完整的LambdaRole配置如下:
LambdaRole: Type: "AWS::IAM::Role" Properties: Path: "/" # 新增信任策略,允许Lambda服务代入该角色 AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: "lambda.amazonaws.com" Action: "sts:AssumeRole" ManagedPolicyArns: - "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" Policies: - PolicyName: 'ec2-access-policy' PolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Action: - ec2:DescribeNetworkInterfaces - ec2:CreateNetworkInterface - ec2:DeleteNetworkInterface - ec2:DescribeInstances - ec2:AttachNetworkInterface Resource: '*'
修改后重新部署即可解决该错误。如果你的其他Lambda函数也需要相同的权限,直接给对应函数的Properties下添加Role: !GetAtt LambdaRole.Arn即可复用该角色,无需重复配置。
内容的提问来源于stack exchange,提问作者PeakGen
相关产品推荐
相关产品推荐

