【AWS】APIGateway+Lambda構成における権限付与について

APIGateway+Lambda構成における権限付与について
APIGateway+Lambda構成における権限付与について
APIGatewayからLambdaを実行する場合、Lambdaの実行権限の付け方にいくつか方法がある。
方法
1.API GatewayからLambdaへの実行権限付与
Lambda関数に リソースベースポリシー を追加する。
具体的には、以下のようなポリシーを Lambda に追加する。
※一般的。Lambdaプロキシ統合を利用した場合に利用する。
aws lambda add-permission \
--function-name your-lambda-function-name \
--statement-id apigateway-access \
--action lambda:InvokeFunction \
--principal apigateway.amazonaws.com \
--source-arn arn:aws:execute-api:{region}:{account-id}:{api-id}/*/*/*
GUIではリソースベースのポリシーステートメントに付与される。
※画像上記記載のロールはLambdaからCloudWatchLogsへログを出力するために使われるため別物。

2.API Gateway にIAMロールをアタッチして呼び出す
Lambda関数の実行ロール(IAM Role)に適切なポリシーを付与する。
API Gateway に明示的に IAM ロールを指定し、そのロールが lambda:InvokeFunction を持つようにする。
{ "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction" }
※Lambdaプロキシ統合をオフにした場合、実行ロールを入力する画面が表示される。

感想
酒を飲む以外のことはしたくない。