【问题标题】:How to define CRUD policy in SAM (Serverless application model) template to more than one table for a lambda functio?如何将 SAM(无服务器应用程序模型)模板中的 CRUD 策略定义为多个表以用于 lambda 函数?
【发布时间】:2020-01-05 04:47:54
【问题描述】:
我正在使用 SAM(无服务器应用程序模型)并为发电机的 lambda 函数创建策略。默认情况下 AmazonDynamoDBFullAccess 存在,但我想为使用多个表的 lambda 函数提供 DynamoDBCrudPolicy。
在 aws sam docs 中,有一个表不超过一个的政策
Policies:
# Give just CRUD permissions to one table
- DynamoDBCrudPolicy:
TableName: !Ref MyTable
这是一张桌子的 CRUD 政策,我想要一张以上的桌子。
【问题讨论】:
标签:
amazon-web-services
amazon-dynamodb
amazon-cloudformation
serverless-application-model
【解决方案1】:
您可以包含多个策略,每个表一个,或者为所有 DDB 表提供一个"*"(请注意,"*" 提供的权限比推荐的要广泛得多)。
Policies:
# Give just CRUD permissions to one table
- DynamoDBCrudPolicy:
TableName: !Ref MyTable
# Give just CRUD permissions to another table
- DynamoDBCrudPolicy:
TableName: !Ref MyOtherTable
# Give just CRUD permissions to all tables
- DynamoDBCrudPolicy:
TableName: "*"