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

AWS App Runner创建报错:实例角色假设失败问题求助

问题排查与解决

错误根源

你遇到的InvalidRequestException是因为App Runner实例角色的信任策略配置错误:

  • 你为角色设置的信任主体是build.apprunner.amazonaws.com,这是App Runner构建角色(用于镜像构建环节)的信任对象;
  • 而App Runner运行实例使用的角色(即instance_configuration中指定的instance_role_arn),其信任主体必须是tasks.apprunner.amazonaws.com。

修正后的Terraform代码

IAM 角色部分(修正信任策略)

resource "aws_iam_role" "app_runner_instance" {
  name = "MyAppRunnerServiceRole"

  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = "sts:AssumeRole"
        Effect = "Allow"
        Sid    = ""
        Principal = {
          Service = "tasks.apprunner.amazonaws.com" # 修正为实例角色的信任主体
        }
      },
    ]
  })
}

resource "aws_iam_role_policy_attachment" "app_runner_instance" {
  role       = aws_iam_role.app_runner_instance.name
  policy_arn = "arn:aws:iam::aws:policy/service-role/AWSAppRunnerServicePolicyForECRAccess"
}

App Runner 服务部分(关联修正后的角色)

resource "aws_apprunner_service" "main" {
  service_name = "sandbox-service"

  source_configuration {
    image_repository {
      image_configuration {
        port = "5000"
      }
      image_identifier      = "${aws_ecr_repository.main.repository_url}:latest"
      image_repository_type = "ECR"
    }
  }

  instance_configuration {
    instance_role_arn = aws_iam_role.app_runner_instance.arn
  }
}

额外说明

如果你的App Runner服务需要构建环节(比如从源码仓库构建镜像),还需要单独配置构建角色,其信任主体为build.apprunner.amazonaws.com,并关联对应的构建权限策略(如AWSAppRunnerBuildPolicyForECR)。但从你的配置来看,直接使用ECR镜像,无需构建角色,仅需修正实例角色的信任策略即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:25:06