AWS AppSync GraphQL Read权限策略配置后未生效问题咨询
思路正确性说明
你的整体实现思路是可行的:AppSync配置多授权模式后,未登录场景下可以通过Amplify自动分配的未授权IAM角色调用指定的GraphQL接口,不需要用户登录Cognito。你编写的IAM权限策略本身规则无误,只要配置正确即可正常生效。
未授权报错排查清单
- 检查Schema授权指令配置
必须在GraphQL Schema的对应查询字段上显式添加@aws_iam授权标记,否则AppSync会直接拦截IAM身份的请求,不管IAM策略是否配置正确。示例配置:
这是此类报错最常见的诱因。type Query { getUserById(id: ID!): User @aws_cognito_user_pools # 保留原有Cognito授权配置 @aws_iam # 新增IAM授权支持 } - 检查策略挂载对象
不要将策略挂载到普通IAM用户,必须挂载到Amplify项目对应的未授权IAM角色,该角色名称通常带有{Amplify项目名}-unauthRole的前缀,你可以在IAM控制台角色列表中搜索确认。 - 校验资源ARN正确性
确认策略中的<REGION>(AWS区域,如us-east-1)、<ACCOUNT>(12位AWS账号ID)、<APIID>(AppSync API的ID)三个占位符已全部替换为实际值,无拼写错误。 - 控制台测试身份校验
AppSync控制台使用IAM模式测试时,默认使用的是你当前登录控制台的身份权限,若要模拟未登录用户的效果,你需要给当前控制台登录的身份也附加上述AppSync访问策略,或者直接在前端未登录状态下发起请求验证,测试结果更符合实际使用场景。
内容的提问来源于stack exchange,提问作者Sumchans
相关产品推荐
相关产品推荐

