如何将 SAM(无服务器应用程序模型)模板中的 CRUD 策略定义为 lambda 函数的多个表?

amb*_*tam 2 amazon-web-services aws-cloudformation amazon-dynamodb serverless-application-model

我正在使用 SAM(无服务器应用程序模型)并为 dynamo 的 lambda 函数创建策略。默认情况下,AmazonDynamoDBFullAccess在那里,但我想为 lambda 函数提供DynamoDBCrudPolicy,其中使用了多个表。

在 aws sam docs 中有一张桌子的政策,不超过一张

Policies:
      # Give just CRUD permissions to one table
      - DynamoDBCrudPolicy:
          TableName: !Ref MyTable
Run Code Online (Sandbox Code Playgroud)

这是一张桌子的 CRUD 政策,我想要一张以上的桌子。

Kee*_*son 7

您可以包含多个策略,每个表一个,或者"*"为所有 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: "*"
Run Code Online (Sandbox Code Playgroud)