Mongo server
の1つにあるEC2 instances in VPC
にアクセスするようにLambdaを設定しようとしています。すべてのsubnets
とsecurity groups
を選択した後、「を保存するときに次のエラーが発生します:CreateNetworkInterface。」
これを可能にするには、AWS IAM
で何らかのポリシーを設定する必要があると思います。
「AdministratorAccess」があり、アカウントにIAMロールを追加しようとしています。
誰かがこれに必要なpolicy/role
を知っていますか?
ガッチャ!!!エラーメッセージに「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"
]
}
]
}
ラムダにポリシーアクションを提供する必要があります。
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