lambrollデプロイに必要なIAM権限
Posted: | Tags: deploy, iam, lambda, lambroll
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:CreateFunction | Lambda関数の初回作成 | 既存関数の更新のみの場合は不要 |
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:InvokeFunction | Lambda関数の実行 | デプロイ後のテスト実行を行う場合に必要 |
よくあるエラーと対処法
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.jsonのTagsフィールドと既存のタグを比較するため、lambda:ListTags権限が必要です。