【问题标题】:Setting different permissions for different resources in Serverless在 Serverless 中为不同的资源设置不同的权限
【发布时间】:2022-07-26 03:09:52
【问题描述】:

我正在使用无服务器,并且我有一个正在运行的堆栈,其中包含 Lambda、Dynamodb 与...但是,出于安全原因,我想再部署一个具有不同权限的 lambda。例如;我希望它只有我的数据库的读取权限。但是,我构建的其他 Lambda 需要对 dbs 具有写权限。

我想出了两种不同的解决方案;

  1. 在无服务器部署后更改 Lambda 的权限。 (我不赞成这样做;我使用无服务器的原因是为了逃避部署配置,例如这种)
  2. 因此创建 2 个不同的项目,两个不同的无服务器文件,并对它们进行操作。 (这也会带来开销并使维护复杂化)

如果有一种方法可以在一个 Serverless.yml 中为不同资源定义不同的权限,那将是最好的。但是,我找不到有关此主题的资源。

感谢您的宝贵时间!

【问题讨论】:

    标签: amazon-web-services security serverless


    【解决方案1】:

    有一个名为“Serverless IAM Roles Per Function”的无服务器插件,允许您为函数创建单独的角色。您还可以拥有将在某些函数中继承的默认角色。

    简而言之是这样的:

    provider:
      name: aws
      iamRoleStatements:
        - Effect: "Allow"
          Action:
            - xray:PutTelemetryRecords
            - xray:PutTraceSegments
          Resource: "*"
      ...
    functions:
      func1:
        handler: handler.get
        iamRoleStatementsInherit: true
        iamRoleStatements:
          - Effect: "Allow"        
            Action: s3:GetObject        
            Resource: arn:aws:s3:::my-bucket/*
    

    Here 是作者的所有详细信息,here 是关于它的无服务器官方页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 2014-08-29
      • 2016-02-24
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      相关资源
      最近更新 更多