如何在VPC中为AWS Lambda设置IAM策略以解决错误"您无权执行:CreateNetworkInterface".

blu*_*kin 12 amazon-web-services amazon-iam aws-lambda aws-vpc

在此输入图像描述

我正在尝试设置我的Lambda来访问我Mongo server的其中一个EC2 instances in VPC.选择了所有subnets和之后security groups,保存" 您无权执行:CreateNetworkInterface " 时出现以下错误.

我相信,我需要某种政策设置AWS IAM来实现这一目标.

我有"AdministratorAccess",我正在尝试将IAM角色添加到我的帐户中.

有谁知道policy/role我需要什么?

blu*_*kin 12

疑难杂症!如果错误消息说"此Lambda函数未被授权执行:CreateNetworkInterface",则更有意义的是需要使用适当的策略修改Lambda角色.通过将策略添加到Lambda正在使用的角色来解决此问题:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Resource": "*",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:CreateNetworkInterface",
                "ec2:AttachNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "autoscaling:CompleteLifecycleAction"
            ]
        }
        ]
}
Run Code Online (Sandbox Code Playgroud)

  • 当我创建 Lambda 时,我收到了缺少“ec2:DeleteNetworkInterface”的错误。我已经添加了它并且一切正常。 (8认同)

Jan*_*nke 9

有必要为lambda提供策略操作:

NetworkLambdaRole:
 Type: "AWS::IAM::Role"
 Properties:
   RoleName: "Network-Lambda-Role"
   AssumeRolePolicyDocument:
     Version: '2012-10-17'
     Statement:
     -
       Effect: "Allow"
       Principal:
         Service:
         - "lambda.amazonaws.com"
       Action:
       - "sts:AssumeRole"
   Policies:
   - PolicyName: "network-lambda-role-policy"
     PolicyDocument:
       Version: '2012-10-17'
       Statement:
       - Effect: "Allow"
         Action: [
           "ec2:DescribeInstances",
           "ec2:CreateNetworkInterface",
           "ec2:AttachNetworkInterface",
           "ec2:DescribeNetworkInterfaces",
           "ec2:DeleteNetworkInterface"
         ]
         Resource: "*"
Run Code Online (Sandbox Code Playgroud)

注意:blueskin的答案错过了政策 ec2:DeleteNetworkInterfaces