【问题标题】:Serverless Framework dynamobd iamRoleStatements modify -> AccessDeniedException无服务器框架 dynamobd iamRoleStatements 修改 -> AccessDeniedException
【发布时间】:2021-02-10 16:18:49
【问题描述】:

我继承了一个使用 ddb 的 API。不幸的是,一切都在一张生产台上完成。我正在完成开发设置,因此我们不必在生产台上进行试验。事实证明,新数据更干净,我们的客户想要使用它。我想,我可以简单地更新 ddb 配置的 Resource 块以指向新的 ddb 表资源 arn,但那是我遇到麻烦的时候。

部分配置如下所示:

...  
iamRoleStatements:
  - Effect: Allow
    Action:
      - dynamodb:DescribeTable
      - dynamodb:Query
      - dynamodb:Scan
      - dynamodb:GetItem
      - dynamodb:PutItem
      - dynamodb:UpdateItem
      - dynamodb:DeleteItem
    Resource:
      - "arn:aws:dynamodb:us-east-1:*:table/${self:provider.environment.PROD_TABLE}"

起初,我只是简单地将 Resource 块更新为下面的值并部署

 - "arn:aws:dynamodb:us-east-1:*:table/${self:provider.environment.DEV_TABLE}"

部署后,我在 CloudWatch 中收到此(已编辑)错误:

AccessDeniedException: User: arn:aws:sts::<redacted>:assumed-role/... is not authorized to perform: dynamodb:DescribeTable on resource: arn:aws:dynamodb:us-east-1<redacted>/PROD_TABLE

注意,arn:aws:dynamodb 资源(上图)正在引用旧表

重新部署不会更新新创建的假定 (lambda) 角色的资源。我不确定如何在没有“删除”和“部署”的情况下实现这一点。

放弃一个精确的解决方案是否有更简单的方法来切换到不同的 ddb 而不会对我们的用户造成任何重大干扰?

【问题讨论】:

    标签: lambda amazon-dynamodb serverless


    【解决方案1】:

    根据我在日志中看到的内容

    AccessDeniedException:用户:arn:aws:sts:::assumed-role/... 无权执行:dynamodb:DescribeTable on resource:arn:aws:dynamodb:us-east-1/PROD_TABLE

    配置已生效,因为用户现在没有权限在旧表 (PROD_TABLE) 上进行 describeTable。 可能在代码中的某个地方,您仍在尝试使用旧表而不是新表。

    如果你仍然需要这个,你可以给两个表的角色权限:

    iamRoleStatements: 
       - Effect: Allow
         Action:
             - dynamodb:DescribeTable
             - dynamodb:Query
             - dynamodb:Scan
             - dynamodb:GetItem
             - dynamodb:PutItem
             - dynamodb:UpdateItem
             - dynamodb:DeleteItem
         Resource:
             - "arn:aws:dynamodb:us-east-1:*:table/${self:provider.environment.PROD_TABLE}"
             - "arn:aws:dynamodb:us-east-1:*:table/${self:provider.environment.ENV_TABLE}"
    

    【讨论】:

      猜你喜欢
      • 2017-05-19
      • 2018-03-05
      • 2018-02-16
      • 1970-01-01
      • 2020-06-23
      • 2020-11-27
      • 2017-02-25
      • 2018-11-23
      • 1970-01-01
      相关资源
      最近更新 更多