1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LambdaをVPC内に作成する際、IAMロールに対するポリシーが足りずにエラーになった

Last updated at Posted at 2024-10-30

開発環境

  • Lambda
  • VPC

前提

VPC内にLambdaを作成しようとしたところ、IAMロールに対してポリシーが不十分だよと指摘された。

発生したエラー

The provided execution role does not have permissions to call CreateNetworkInterface on EC2

内容

このエラーメッセージは、AWS Lambdaや他のサービスがEC2インスタンス上にあるネットワークインターフェース(ENI:Elastic Network Interface)を作成しようとしているが、アタッチされているIAMロールにその操作を行うための適切な権限がないことを示している。

この場合は、IAMロールに適切なポリシーが付与されていないことによるエラーメッセージとなる。Lambda関数がVPC内のリソース(例えば、RDSやEC2)にアクセス または作成される際、ネットワークインターフェースを作成するためにこの権限が必要。

VPC内で動作するLambdaはネットワークインターフェース(ENI)を使用してVPCリソースにアクセスするため、適切なVPCサブネット及びセキュリティグループも必要らしい。

試したこと

  • IAMロールにCreateNetworkInterfaceなどの関連するポリシーをアタッチした

IAMロールにCreateNetworkInterfaceなどの関連するポリシーをアタッチした

			"Action": [
				"ec2:CreateNetworkInterface",
				"ec2:DescribeNetworkInterfaces",
				"ec2:DeleteNetworkInterface",
				"ec2:AttachNetworkInterface"
			],

AWSLambdaVPCAccessExecutionRole を関数の実行ロールにアタッチすることで、関数に必要なアクセス許可を付与できます。

ドキュメントに、このような記載がありました。

独自の IAM アクセス許可ポリシーを作成する場合は、次のアクセス許可をすべて追加してください。

  • ec2:CreateNetworkInterface
  • ec2:DescribeNetworkInterfaces
  • ec2:DescribeSubnets
  • ec2:DeleteNetworkInterface

上記ポリシーをIAMロールにアタッチすることで、VPC内にLambdaを作成する事ができました。

まとめ

Lambdaはデフォルトでは、VPC外に置かれているため、VPC内に置く場合はIAMロールに対してポリシーの設定が必要みたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?