繁体   English   中英

针对 API 网关部署资源的 DELETE 操作的受限 IAM 策略

[英]Restricted IAM policy for DELETE action on API Gateway Deployment resource

我创建了一个无服务器用户,该用户具有创建和部署 AWS lambda function 以及 API 网关所需的权限。

但是,当我更改一段代码并对其进行serverless deploy时,会出现错误:

Error:
DELETE_FAILED:... "User: arn:aws:iam::XXXXXXXXXXX:user/serverless is not authorized to perform: apigateway:DELETE on resource: arn:aws:apigateway:us-east-1::/restapis/1zhmt1r45r2/deployments/27gb11 because no identity-based policy allows the apigateway:DELETE action (Service: ApiGateway, Status Code: 403...

现在我可以提前 go 并在 apigateway 资源上添加 DELETE 操作权限。 但是在生产环境中允许删除任何 apigateway 资源的风险太大了。 我想要的是限制此无服务器/编程用户可以删除的内容(仅限其自身创建的 api,或资源名称的前缀)。

我已经创建了只允许无服务器用户创建具有特定前缀的资源的策略,但是由于此错误显示资源arn:aws:apigateway:us-east-1::/restapis/1zhmt1r45r2/deployments/27gb11正在使用的错误ID1zhmt1r45r2/deployments/27gb11 )。 我想不出一种方法来有效地限制该用户可以删除的内容。

有什么解决方法吗? 我需要非常紧急地解决这个问题。

我不确定您在没有更多详细信息的情况下真正想要实现什么,但是您遇到的错误是告诉您需要授予apigateway:DELETE权限给您的 lambda function 使用仅限于您的 lambda function 的策略。最简单的方法为此,需要在 SAM 模板中指定它。 通过这种方式,您无需手动流程即可实施 IaC(基础架构即代码),并允许您自动执行重新部署流程并将模板添加到源代码管理。 下面的例子定义了一个 lambda function 需要apigateway:DELETE权限

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
role/AmazonAPIGatewayPushToCloudWatchLogs"
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
  CreateLedger:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: CreateLedgerFunction
      Handler: QLDB.API.Config.Lambda::QLDB.API.Config.Lambda.Functions.CreateLedger.CreateLedgerFunction::FunctionHandler
      Runtime: dotnetcore3.1
      Timeout: 30
      CodeUri: .
      Policies:
        - Statement:
          - Sid: QLDBCreateLedgerCommandPolicy
            Effect: Allow
            Action:
              - apigateway:DELETE #<----- specify the permissions
            Resource: '*'
      Events:
        CreateLedger:
          Type: Api
          Properties:
            Path: /createLedger
            Method: post
            RestApiId:
              Ref: ApiGatewayApi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM