AWS IAM基于dynamodb属性值授予权限



我有一个generandb表,它有以下属性值 | UserID | Name | paid | |--------|------|-------| | 0001 | Sam | false |

我有一个IAM polivy文档,写在一个无服务器的yml文件中,如下

- PolicyName: PaidPolicy PolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Action: - "s3:PutObject" Resource: - Fn::Join: - "" - - arn:aws:s3:::uploads - "/protected/*"

是否可以根据paid列值将策略的效果更改为AllowDeny

注意:我发现可以使用Condition属性添加条件,但找不到引用dynamodb表值的方法

快速搜索这个文档没有任何意义,所以我想到的解决方案是:

  1. 为付费和免费用户创建用户组
  2. 将具有允许和拒绝S3操作的策略附加到相应的组
  3. 创建lambda函数,根据DynamoDB中的列值将用户放入所述组
  4. 通过流触发DynamoDB表更改的lambda

最新更新