Tag: Lambroll

lambrollデプロイに必要なIAM権限

lambrollとは

fujiwara/lambroll は、AWS Lambda関数のデプロイを簡単に行うための軽量デプロイツールです。

デプロイに必要なIAM権限

lambrollを使ってLambda関数をデプロイする際、GitHub ActionsやCI/CDパイプラインで実行する場合に必要なIAM権限の一覧です。

権限一覧

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "lambda:CreateFunction",
        "lambda:GetFunction",
        "lambda:GetFunctionConfiguration",
        "lambda:InvokeFunction",
        "lambda:ListTags",
        "lambda:TagResource",
        "lambda:UntagResource",
        "lambda:UpdateFunctionCode",
        "lambda:UpdateFunctionConfiguration"
      ],
      "Resource": [
        "arn:aws:lambda:ap-northeast-1:123456789012:function:your-function-name"
      ]
    }
  ]
}

各権限の説明

必須権限

権限用途備考
lambda:CreateFunctionLambda関数の初回作成既存関数の更新のみの場合は不要
lambda:GetFunction既存関数の情報取得lambrollが関数の存在確認に使用
lambda:GetFunctionConfiguration関数設定の取得現在の設定との差分確認に使用
lambda:UpdateFunctionCode関数コードの更新デプロイの主要な処理
lambda:UpdateFunctionConfiguration関数設定の更新(環境変数、タイムアウトなど)function.jsonの設定を反映
lambda:ListTags関数のタグ一覧を取得重要: lambrollがfunction.jsonのTagsと既存タグを比較するために必須
lambda:TagResourceタグの追加function.jsonにTagsフィールドがある場合は必須
lambda:UntagResourceタグの削除既存タグを削除する場合に必要

オプション権限

権限用途備考
lambda:InvokeFunctionLambda関数の実行デプロイ後のテスト実行を行う場合に必要

よくあるエラーと対処法

lambda:ListTagsが不足している場合

Error: failed to deploy function configuration: failed to list tags of
arn:aws:lambda:...: operation error Lambda: ListTags,
api error AccessDeniedException: User is not authorized to perform:
lambda:ListTags on resource

原因: lambrollはfunction.jsonTagsフィールドと既存のタグを比較するため、lambda:ListTags権限が必要です。

Read more...