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

AWS AppSync创建Merchant类型提示权限不足问题求助

解决AWS AppSync创建Merchant权限报错问题

排查方向1:确认GraphQL Schema中Mutation字段的权限配置

你的MerchantType加了@aws_iam和@aws_cognito_user_pools指令,但类型上的权限不会自动继承到对应的mutation操作,需要检查createMerchant这个mutation字段是否也配置了正确的权限指令:

type Mutation {
  createMerchant(input: CreateMerchantInput!): MerchantType
    @aws_iam  # 根据使用的认证方式添加对应指令
    @aws_cognito_user_pools  # 可同时添加两种认证方式的指令
}

如果mutation字段缺少这些指令,即使类型有权限,也会导致创建操作被拒绝。

排查方向2:核对IAM策略权限(若使用IAM认证)

如果用IAM作为认证方式,检查当前使用的IAM角色/用户的策略是否包含createMerchant操作的权限:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "appsync:GraphQL",
      "Resource": [
        "arn:aws:appsync:你的区域:你的账号ID:apis/你的API ID/types/Mutation/fields/createMerchant",
        "arn:aws:appsync:你的区域:你的账号ID:apis/你的API ID/types/MerchantType"
      ]
    }
  ]
}

确保Resource路径准确,注意报错里提到的是Merchant,要确认Schema里的类型名是否和IAM策略中的一致,避免拼写错误导致权限不匹配。

排查方向3:检查Cognito用户池权限配置(若使用Cognito认证)

如果用Cognito用户池认证:

  • 确认当前执行操作的用户所属的用户组,在AppSync的Cognito用户池配置中是否被授予了执行createMerchant的权限;
  • 或者在createMerchant的mutation字段上添加组限制指令,比如:
type Mutation {
  createMerchant(input: CreateMerchantInput!): MerchantType
    @aws_cognito_user_pools(cognito_groups: ["MerchantAdmins"])
}

确保当前用户在指定的用户组内。

排查方向4:核对Schema中的类型名称一致性

报错信息显示Not Authorized to access createMerchant on type Merchant,但你提供的类型定义是MerchantType,需要确认:

  • Mutation中的createMerchant返回类型是否是Merchant而非MerchantType?如果是,那Merchant类型本身可能没有配置权限指令;
  • 检查所有涉及的类型名称是否统一,避免拼写或命名不一致导致权限匹配失败。

排查方向5:检查Resolver的权限逻辑

查看createMerchant对应的Resolver请求模板,是否存在自定义的权限校验逻辑,比如使用$util.auth.deny()强制拒绝请求,或者基于validated等字段做了权限限制,导致当前请求不符合条件被拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:20:28