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

使用Terraform配置Route53时遇Access denied权限问题求助

问题分析与解决:Route53 Alias记录创建时AccessDenied错误

核心错误点

你的Terraform代码存在两处关键参数配置错误,这是导致AccessDenied的根本原因:

  1. Route53记录的托管区域ID配置错误
    当前代码中aws_route53_record.alb_dns的zone_id设为aws_alb.alb.zone_id,这是将ALB的区域ID作为Route53记录的托管区域ID,完全不符合逻辑——Route53记录必须归属你创建的test.cloud托管区域,而非ALB所在的AWS区域。

  2. Alias块的目标区域ID配置错误
    别名记录的zone_id需要指向目标资源(ALB)的区域ID,但你错误地引用了Route53托管区域资源本身,正确的取值应为ALB的zone_id属性。

修复后的完整代码

# 创建应用负载均衡
resource "aws_alb" "alb" {
  name               = "ALB-Terraform"
  internal           = false
  load_balancer_type = "application"
  security_groups    = [aws_security_group.ALB_sg.id]
  ip_address_type    = "ipv4"
  subnets            = ["subnet-X", "subnet-Y", "subnet-Z"]

  tags = {
    environment = "Test"
  }
}

# 创建Route53托管区域
resource "aws_route53_zone" "test_zone" {
  name = "test.cloud"
}

# 为ALB创建Route53 Alias类型记录
resource "aws_route53_record" "alb_dns" {
  zone_id = aws_route53_zone.test_zone.zone_id
  name    = "test.cloud"
  type    = "A"

  alias {
    name                   = aws_alb.alb.dns_name
    zone_id                = aws_alb.alb.zone_id
    evaluate_target_health = true
  }
}

错误原因解释

你原代码中错误地将Route53记录的托管区域指定为ALB的区域ID,导致Terraform尝试访问AWS托管的公共区域(不属于你的账户),而你的TF_user没有权限访问这些AWS自有资源,因此触发403 AccessDenied错误。修正参数后,请求会正确指向你创建的test.cloud托管区域,权限验证即可正常通过。

内容的提问来源于stack exchange,提问作者Ondřej Halata

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 04:30:25