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

AWS Amplify普通用户访问listXbiis权限错误排查与解决

问题原因与修复方案

错误原因

  1. Amplify权限配置残留:仅注释Xbiis类型后执行amplify push,Amplify不会彻底清理后端关联的Resolver、IAM角色策略或AppSync资源规则。之前配置的"仅WebAppAdmin组操作+公共只读"权限可能仍在生效,拦截了普通用户的请求。
  2. Resolver未正确更新:重新启用Xbiis并配置private权限时,Amplify可能没有完全覆盖旧的Resolver逻辑,导致查询时仍沿用旧的权限校验规则。
  3. 权限规则冲突:旧的分组权限、公共访问策略与新的private权限存在冲突,AppSync优先执行了残留的旧规则,拒绝了普通用户的访问请求。

修复步骤

  • 彻底清理后重新部署

    1. 直接删除schema.graphql中Xbiis类型的所有定义(不要只注释),执行amplify push,确认后端完全移除该类型的所有关联资源。
    2. 重新添加Xbiis类型并配置正确的@auth规则:
      type Xbiis @model @auth(rules: [{ allow: private }]) {
        id: ID!
        # 你的其他字段定义
      }
      
    3. 再次执行amplify push,让Amplify重新生成所有Resolver和权限配置。
  • 手动校验AppSync配置

    1. 登录AWS控制台,进入目标AppSync API。
    2. 查看Queries下的listXbiis Resolver,确认其权限逻辑是验证用户已登录(而非仅允许WebAppAdmin组)。
    3. 进入Settings -> Authorization,检查并删除残留的公共访问或分组限制的资源策略。
  • 检查IAM角色权限

    1. 打开IAM控制台,找到项目对应的Auth角色(命名格式通常为amplify-<项目名>-<环境>-authRole)。
    2. 查看该角色的权限策略,确保包含允许已认证用户操作Xbiis的语句,同时移除旧的仅WebAppAdmin组的权限限制。
  • 清除客户端缓存

    1. 清除Web应用的本地存储(LocalStorage/SessionStorage),避免客户端缓存旧的API schema或权限信息。
    2. 重启应用并使用普通用户重新登录,测试listXbiis查询是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:12:43