web-dev-qa-db-ja.com

エラー「実行する権限がありません:CreateNetworkInterface」を解決するためにVPCでAWSLambdaのIAMポリシーを設定する方法。

enter image description here

Mongo serverの1つにあるEC2 instances in VPCにアクセスするようにLambdaを設定しようとしています。すべてのsubnetssecurity groupsを選択した後、「を保存するときに次のエラーが発生します:CreateNetworkInterface。

これを可能にするには、AWS IAMで何らかのポリシーを設定する必要があると思います。

「AdministratorAccess」があり、アカウントにIAMロールを追加しようとしています。

誰かがこれに必要なpolicy/roleを知っていますか?

13
blueskin

ガッチャ!!!エラーメッセージに「This Lambda function is not authored to perform:CreateNetworkInterface」と表示された場合は、Lambdaロールを適切なポリシーで変更する必要があることを意味します。 Lambdaが使用していたロールにポリシーを追加することで問題を修正しました:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Resource": "*",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:CreateNetworkInterface",
                "ec2:AttachNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "autoscaling:CompleteLifecycleAction"
            ]
        }
        ]
}
10
blueskin

ラムダにポリシーアクションを提供する必要があります。

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: "*"

注:blueskinからの回答にはポリシーがありませんでしたec2:DeleteNetworkInterfaces

8
Jan Steinke