🙆‍♀️

AWS LambdaをVPC内で実行するためのAWSLambdaVPCAccessExecutionRoleについて

2024/06/16に公開

はじめに

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内リソースに安全にアクセスできるようになります。この設定により、サーバーレスアーキテクチャの利便性を享受しつつ、セキュリティとパフォーマンスを確保できます。

参考資料

https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html

Discussion