0
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?

More than 1 year has passed since last update.

ServerlessFrameworkでLambdaをVPCの中にいれようとしたらEC2の権限エラーがでる

Posted at

はじめに

ServerlessFrameworkで作成したLambdaにRDS通信を設定する作業を行っていたときに、VPC設定でつまづいたのでまとめます
設定の参考になる記事はあったのですが、説明が不足していたようだったので解決方法をまとめます

問題

ServerlessFrameworkでVPCの設定を行います
そこで以下の記事を参考に、IAMにEC2の権限を付与しました

serverless.yml
  iamRoleStatements:
    - Effect: "Allow"
      Action:
        - "ec2:CreateNetworkInterface"
        - "ec2:DescribeNetworkInterfaces"
        - "ec2:DeleteNetworkInterface"
      Resource:
        - "*"

しかし、実行コマンドを叩くと以下のエラーが発生します

ApiLambdaFunction (AWS::Lambda::Function) Resource handler returned message: "Your access has been denied by EC2, please make sure your request credentials have permission to DescribeSecurityGroups

解決方法

コマンドを実行するユーザーにも権限を付与する必要がありました
以下のコマンドの場合、アクセスキーを持っているユーザーのポリシーにもEC2の権限を追加しました

docker-compose -f docker-compose.production.yml run --env AWS_ACCESS_KEY_ID=XXXXXXXX --env AWS_SECRET_ACCESS_KEY=XXXXXXX --rm app make deploy
# 以下の権限をsls実行ユーザーに追加
ec2:CreateNetworkInterface
ec2:DescribeNetworkInterfaces
ec2:DeleteNetworkInterface

おわりに

よく読むと解決できるのですが、さらっと読んでいる感じではserverless.ymlの修正だけでいけそうにみえました
少し時間はかかりましたが無事VPCの中に入れられました

参考

0
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
0
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?