You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询使用Serverless Framework在AWS创建Lambda的最小IAM权限清单

Serverless Framework部署Lambda所需的最小IAM权限清单

以下是Serverless Framework部署Lambda函数时所需的最小必要IAM权限,按操作场景分类,可直接整合到IAM策略中:

核心CloudFormation权限

  • cloudformation:DescribeStackResource:解决你当前遇到的权限错误,Serverless需要查询CloudFormation栈资源状态以确认部署进度
  • cloudformation:CreateStack、cloudformation:UpdateStack、cloudformation:DeleteStack:管理Serverless创建的CloudFormation栈
  • cloudformation:DescribeStacks、cloudformation:ListStackResources:获取栈的基本信息和资源列表
  • cloudformation:GetTemplate:读取CloudFormation模板内容

Lambda相关权限

  • lambda:CreateFunction、lambda:UpdateFunctionCode、lambda:UpdateFunctionConfiguration:创建/更新Lambda函数的代码与配置
  • lambda:GetFunction、lambda:GetFunctionConfiguration:查询Lambda函数的基础信息
  • lambda:AddPermission、lambda:RemovePermission:管理Lambda的触发权限(如API Gateway、SNS等触发规则)
  • lambda:ListFunctions:列出账户内Lambda函数,用于部署前校验

S3限定权限(替代全量S3权限)

不要授予S3FullAccess,将权限限定到Serverless默认使用的S3桶(通常格式为serverless-${region}-${accountId}):

  • s3:CreateBucket:首次部署时创建存储代码包的S3桶
  • s3:PutObject:上传Lambda代码包至S3桶
  • s3:GetObject:从S3桶读取代码包用于部署
  • s3:ListBucket:查看桶内代码包文件列表

辅助权限(按需添加)

若你的Serverless服务包含其他关联资源(如API Gateway、DynamoDB等),需额外添加对应资源的最小权限,例如:

  • API Gateway:apigateway:CreateRestApi、apigateway:UpdateRestApi、apigateway:CreateDeployment等
  • DynamoDB:dynamodb:CreateTable、dynamodb:DescribeTable等

示例IAM策略片段

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cloudformation:DescribeStackResource",
        "cloudformation:CreateStack",
        "cloudformation:UpdateStack",
        "cloudformation:DeleteStack",
        "cloudformation:DescribeStacks",
        "cloudformation:ListStackResources",
        "cloudformation:GetTemplate"
      ],
      "Resource": "arn:aws:cloudformation:*:*:stack/serverless-*/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "lambda:CreateFunction",
        "lambda:UpdateFunctionCode",
        "lambda:UpdateFunctionConfiguration",
        "lambda:GetFunction",
        "lambda:GetFunctionConfiguration",
        "lambda:AddPermission",
        "lambda:RemovePermission",
        "lambda:ListFunctions"
      ],
      "Resource": "arn:aws:lambda:*:*:function:serverless-*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:PutObject",
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::serverless-*",
        "arn:aws:s3:::serverless-*/*"
      ]
    }
  ]
}

说明:

  • 所有资源通过serverless-*通配符限定,确保权限仅作用于Serverless创建的资源,严格遵循最小权限原则
  • 若自定义了Serverless的S3桶名或栈名,需替换对应通配符为实际名称

内容的提问来源于stack exchange,提问作者Alberto Siurob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 09:07:09