AWS GraphQL Appsync - 无法担任角色
Posted
技术标签:
【中文标题】AWS GraphQL Appsync - 无法担任角色【英文标题】:AWS GraphQL Appsync - unable to assume role 【发布时间】:2020-04-05 18:43:12 【问题描述】:我正在运行一个 react 技术栈 -> graphQL -> appsync -> lambda -> go
当我从客户端运行我的 graphQL 查询时,我收到了这个错误:
Unable to assume role arn:aws:iam::<SOMENUMBER>:role/service-role/MyRoleForMyLambda.
事实上,这一切都运行良好,直到我不小心将我的数据源上的函数 ARN 和角色更改为其他的。我将它们改回来,但现在 Appsync 似乎无法找到角色和功能 ARN。我尝试创建一个全新的数据源,但我遇到了同样的问题。通常,功能 ARN 和/或角色不会出现在下拉列表中,我手动输入它们。有时它可以让我在没有错误的情况下保存 - 有时在尝试保存数据源时,我会收到有用的错误消息“错误”。有时保存后,当我再次查看它们时,函数 ARN 字段为空白,除非我单击“不在下拉列表中”链接。
我认为问题不在于我的角色本身,因为 appsync 似乎甚至无法承担开始时的角色。我已经阅读了有关将信任策略作为解决方案的信息,但我不知道将它们放在哪里。
非常感谢任何帮助。
【问题讨论】:
【参考方案1】:在您的 IAM 控制台中,您需要将 Appsync 服务作为可信实体添加到您尝试代入的角色中
点击编辑信任关系,输入以下内容:
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Principal":
"Service": "appsync.amazonaws.com"
,
"Action": "sts:AssumeRole"
]
【讨论】:
是的,您必须检查角色本身并确保 appsync 能够承担该角色,例如信任关系正确并且它指向正确的 lambda 函数。跨度> 谢谢!我实际上解决了这个问题,但是您出色的显示答案肯定会对其他人有所帮助:) 奇怪的是,它在没有这种信任关系的情况下在我的一个环境中工作再次感谢以上是关于AWS GraphQL Appsync - 无法担任角色的主要内容,如果未能解决你的问题,请参考以下文章
AWS Lambda 函数无法访问 AppSync GraphQL API - 权限被拒绝
Dynamo DB 中的 AWS AppSync 简单 graphql 解析器无法正常工作,这让我发疯
从 lambda 调用 AWS AppSync GraphQL API 变异查询
Graphql - 无权访问来自 AWS AppSync Amplify 控制台的错误消息