使用Terraform自动接受Transit Gateway对等连接失败求助
解决同一区域Transit Gateway对等连接无法接受的问题
问题根源
你遇到的错误核心在于同一账户同一区域内的TGW对等连接不需要手动执行接受操作:
- AWS会自动接受同一账户、同区域下创建的TGW对等连接请求,此时你额外添加的
aws_ec2_transit_gateway_peering_attachment_accepter资源属于冗余配置,强行调用会触发参数校验错误。 - 你设置的
peer_region = var.region_2如果和两个TGW所在区域一致,这个参数完全可以省略,反而会造成逻辑混淆。
修正后的代码
删掉多余的接受资源,并简化区域配置(同区域场景下):
resource "aws_ec2_transit_gateway_peering_attachment" "TGW_A_B_Peering_Attachment" { peer_account_id = aws_ec2_transit_gateway.Transit_GW_A.owner_id peer_transit_gateway_id = aws_ec2_transit_gateway.Transit_GW_B.id transit_gateway_id = aws_ec2_transit_gateway.Transit_GW_A.id # 同一区域可直接省略peer_region,或者明确设置为TGW所在区域 # peer_region = var.region_2 tags = { Name = "TGW A and B Peering" } }
额外排查要点
- 确认两个TGW的归属:
- 检查
aws_ec2_transit_gateway.Transit_GW_A和aws_ec2_transit_gateway.Transit_GW_B的owner_id和部署区域是否完全一致。
- 检查
- 如果是跨账户同区域的场景:
- 接受方账户需要配置对应的权限,且
aws_ec2_transit_gateway_peering_attachment_accepter资源必须放在接受方的Terraform配置中,同时要通过provider指定接受方的账户信息。
- 接受方账户需要配置对应的权限,且
内容的提问来源于stack exchange,提问作者charles uneze
相关产品推荐
相关产品推荐

