我有一个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
列值将策略的效果更改为Allow
或Deny
注意:我发现可以使用Condition
属性添加条件,但找不到引用dynamodb表值的方法
快速搜索这个文档没有任何意义,所以我想到的解决方案是:
- 为付费和免费用户创建用户组
- 将具有允许和拒绝S3操作的策略附加到相应的组
- 创建lambda函数,根据DynamoDB中的列值将用户放入所述组
- 通过流触发DynamoDB表更改的lambda