🙆♀️
AWS LambdaをVPC内で実行するためのAWSLambdaVPCAccessExecutionRoleについて
はじめに
Lambda関数がプライベートネットワーク内のリソース(例えば、Amazon RDSなど)にアクセスする必要がある場合、Lambda関数を特定のVPC内に配置する必要があります。この記事では、AWSLambdaVPCAccessExecutionRoleポリシーを使用して、Lambda関数がVPC内のリソースにアクセスするための設定方法について説明します。
AWSLambdaVPCAccessExecutionRoleとは?
AWSLambdaVPCAccessExecutionRoleは、AWS Lambda関数がVPC(Virtual Private Cloud)内のリソースにアクセスするために必要な権限を提供するIAMポリシーです。このポリシーは、Lambda関数がVPC内でネットワークインターフェースを作成、記述、削除するための権限を提供します。これにより、Lambda関数はVPC内のリソースとセキュアに通信できるようになります。
ポリシー内容
以下はAWSLambdaVPCAccessExecutionRoleポリシーの内容です。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSLambdaVPCAccessExecutionPermissions",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"ec2:CreateNetworkInterface",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeSubnets",
"ec2:DeleteNetworkInterface",
"ec2:AssignPrivateIpAddresses",
"ec2:UnassignPrivateIpAddresses"
],
"Resource": "*"
}
]
}
このポリシーは以下の権限を提供しています。
- ログ関連の権限 CloudWatch Logsに対するロググループの作成、ログストリームの作成、およびログイベントの書き込み。これにより、Lambda関数の実行ログを収集し、モニタリングとデバッグが容易になります。
- ネットワークインターフェース関連の権限 VPC内でネットワークインターフェースを作成、記述、および削除。これにより、Lambda関数はVPC内のリソースと通信するための必要なネットワーク設定を動的に管理できます。
まとめ
AWS LambdaをVPC内で実行するためのAWSLambdaVPCAccessExecutionRoleは、Lambda関数がプライベートネットワーク内のリソースにアクセスするために不可欠な役割を果たします。このポリシーを適用し、適切なVPC設定を行うことで、Lambda関数がAmazon RDSなどのVPC内リソースに安全にアクセスできるようになります。この設定により、サーバーレスアーキテクチャの利便性を享受しつつ、セキュリティとパフォーマンスを確保できます。
参考資料
Discussion