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

如何在AWS Amplify中为不同GraphQL查询配置独立权限

权限配置修改方案

你当前把@auth规则挂载在了整个Query类型上,所有查询字段都会默认继承这个Admin组访问限制,把规则拆分到每个字段单独配置即可实现需求,修改后的代码如下:

type Query {
  # 所有Cognito用户池登录用户可访问
  invokeLambda: String 
    @function(name: "pythonLambda-${env}") 
    @auth(rules: [{ allow: private }])

  # 仅Admins组用户可访问
  invokeGetGroups: String 
    @function(name: "getPatchGroups-${env}")
    @auth(rules: [{ allow: groups, groups: ["Admins"] }])
}

规则说明

  • allow: private是Amplify GraphQL专属的授权规则,默认适配Cognito用户池认证源,只要是完成登录的有效认证用户都可以调用对应接口。如果你的项目同时配置了多个认证源,可显式指定认证源避免规则冲突,写法为@auth(rules: [{ allow: private, provider: userPools }])。
  • 字段级配置的@auth规则优先级高于类型级的全局规则,这里直接移除了全局规则,单独给每个字段配置权限,逻辑更清晰无遗留隐患。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:54:04