AWS Amplify部署报错:无法承担指定IAM角色,求排查方案
排查AWS Amplify无法假设指定IAM角色的问题
报错信息
2024-09-01T17:25:22.085Z [ERROR]: !!! Unable to assume specified IAM Role. Please ensure the selected IAM Role has sufficient permissions and the Trust Relationship is configured correctly.
2024-09-01T17:25:22.175Z [INFO]: # Starting environment caching...
2024-09-01T17:25:22.175Z [INFO]: # Environment caching completed
已执行操作
- 按官方流程创建Amplify服务角色(选择AWS服务用例为Amplify)
- 附加权限策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*", "amplify:*", "cloudfront:*", "logs:*", "cloudformation:*", "iam:PassRole", "lambda:*", "cognito-idp:*", "cognito-identity:*", "appsync:*", "dynamodb:*", "s3:GetObject", "s3:ListBucket" ], "Resource": "*" } ] }
- 配置信任策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "amplify.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
- 已将Amplify应用绑定该角色,且以根用户身份执行部署
排查方向
- 核对角色ARN一致性:确认Amplify应用中配置的角色ARN与创建的IAM角色ARN完全匹配,避免复制时出现字符遗漏、拼写错误
- 验证信任策略的区域适配:若Amplify应用部署在特定区域,需检查信任策略是否指定了区域化的服务主体,格式为
amplify.<你的区域>.amazonaws.com - 检查角色权限边界:如果该IAM角色设置了权限边界,需确保边界允许
sts:AssumeRole操作及Amplify核心权限,权限边界会优先于附加策略生效 - 排查账号标签策略限制:若AWS账号存在标签策略,确认该角色的标签符合账号要求,标签策略可能会阻止角色被假设
- 执行IAM模拟测试:在IAM控制台的角色详情页,使用「模拟策略」功能,以
amplify.amazonaws.com为主体,测试sts:AssumeRole操作是否被允许 - 检查组织SCP限制:若为AWS组织账号,确认根组织的服务控制策略(SCP)未限制Amplify服务或
sts:AssumeRole操作 - 确认角色状态:检查IAM角色是否处于活跃状态,未被删除或禁用
- 等待策略生效:IAM策略、信任关系的变更可能需要5-10分钟完全同步,等待后重新尝试部署
内容的提问来源于stack exchange,提问作者Jenia Be Nice Please
相关产品推荐
相关产品推荐

