You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amplify Gen1中如何配置Auth规则实现指定文档访问权限?

调整后的Schema权限规则

直接替换原@auth规则部分即可满足所有要求,修改后的完整模型代码如下:

type Document
  @model
  @auth (
    rules: [
      # 1. Admin组用户拥有所有文档的完整CRUD权限
      { allow: groups, groups: ["Admin"], operations: [update, create, read, delete] }
      # 2. 用户对自身所在组的文档拥有完整CRUD权限
      { allow: groups, groupsField: "group", operations: [update, create, read, delete] }
      # 3. 所有认证用户仅能读取Admin组的文档
      { allow: private, operations: [read], condition: { eq: ["$context.document.group", "Admin"] } }
    ]
  ) {
  id: ID!
  group: String!
  ...
}

规则说明

  • 第一条规则:明确Admin组内用户对所有Document拥有全部CRUD操作权限,和原规则一致,满足要求1。
  • 第二条规则:通过groupsField: "group"关联用户所在组与文档的group字段,用户只能操作自身组内的文档,满足要求2。
  • 第三条规则:将原无限制的private只读权限添加condition条件,限定仅能读取group字段等于"Admin"的文档,这样所有认证用户(private代表已认证用户)只能查看Admin组的文档,满足要求3。

这样调整后,既保留了前两项权限,又修正了原规则中所有认证用户能读所有文档的问题,完全通过@auth规则实现,不需要额外Lambda触发器或修改解析器。

内容的提问来源于stack exchange,提问作者Eric Webb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 11:22:35