Amplify执行amplify push时报iam:PassRole权限不足如何解决?
问题根因
报错的核心是Amplify自动生成的TOTP MFA Lambda执行角色缺少iam:PassRole权限,无法关联系统自动创建的SNS发送角色。你手动创建的同名SNS角色属于CloudFormation栈的管控范围,push失败触发栈回滚时,该角色会被自动删除,同时手动创建的资源也会和栈的资源创建逻辑冲突,导致重复报错。
解决步骤
- 打开Amplify项目中auth服务的配置目录,路径为
amplify/backend/auth/<你的auth资源名>/,如果目录下不存在custom-policies.json文件,手动新建该文件。 - 在
custom-policies.json中添加如下权限配置,给MFA Lambda角色授权PassRole操作,直接填写你报错信息中的SNS角色ARN保证精准匹配:
[ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::474847889857:role/snsb927798344500-staging" } ]
- 保存文件后执行
amplify push,Amplify会先为对应Lambda角色附加上述自定义权限,再执行后续资源创建流程,即可解决权限不足的问题。
备选方案
如果上述自定义策略不生效,可执行amplify update auth,重新走一遍MFA相关配置流程,让Amplify自动补全缺失的权限配置,再执行amplify push即可。
内容的提问来源于stack exchange,提问作者khalid obaidi
相关产品推荐
相关产品推荐

