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

如何限制Serverless用户仅删除自身创建的API Gateway部署资源?

解决方案:限制Serverless用户仅删除指定范围的API Gateway资源

方案1:标签+IAM条件键实现细粒度控制

API Gateway支持通过标签识别资源,结合IAM条件可精准限制删除权限:

  1. 先在serverless.yml中配置自动为创建的API添加专属标签(比如CreatedBy: serverless-deploy-user):
    provider:
      name: aws
      apiGateway:
        tags:
          CreatedBy: serverless-deploy-user
    
  2. 更新用户的IAM策略,仅允许删除带有指定标签的API Gateway资源:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "apigateway:DELETE",
          "Resource": [
            "arn:aws:apigateway:*::/restapis/*",
            "arn:aws:apigateway:*::/restapis/*/deployments/*",
            "arn:aws:apigateway:*::/restapis/*/resources/*",
            "arn:aws:apigateway:*::/restapis/*/methods/*"
          ],
          "Condition": {
            "StringEquals": {
              "aws:ResourceTag/CreatedBy": "serverless-deploy-user"
            }
          }
        }
      ]
    }
    
    此策略仅允许用户删除自身创建的(带指定标签)API资源,避免开放全量删除权限。

方案2:名称前缀+自定义验证Lambda(进阶场景)

如果需要严格基于名称前缀控制,可通过自定义Lambda做权限校验:

  1. 在serverless.yml中强制API名称使用指定前缀(比如sls-prod-):
    provider:
      name: aws
      apiGateway:
        name: sls-prod-${self:service}-${self:stage}
    
  2. 创建一个Lambda函数,调用API Gateway的getRestApi接口获取目标API名称,校验是否符合前缀规则后返回授权决策。
  3. 更新IAM策略,将apigateway:DELETE权限的判断委托给该Lambda:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "apigateway:DELETE",
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "lambda:FunctionArn": "arn:aws:lambda:us-east-1:XXXXXXXXXXX:function:api-delete-validator"
            }
          }
        }
      ]
    }
    

方案3:资源组+IAM访问分析器(辅助审计)

创建资源组归类所有符合前缀/标签的API资源,配合IAM Access Analyzer监控用户的删除操作,及时发现权限滥用风险。

注意:方案1是最轻量化的实现,无需额外开发,适合大多数生产场景;方案2适合对名称前缀有严格要求的场景,但需要维护验证Lambda。

内容的提问来源于stack exchange,提问作者Salim Shamim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:40:21