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

如何在Terraform中配置Ingress安全组的端口范围?

解决Terraform中AWS安全组Ingress端口范围配置问题

你遇到的问题核心是Terraform的from_port和to_port字段要求传入数值类型,而非AWS CLI中使用的端口范围字符串格式。

错误原因

你在配置中直接写了from_port = 50000-50001,这在Terraform里会被解析为数值计算(50000减50001),结果为-1,这就是plan输出里端口显示为-1的原因。

正确配置方式

Terraform需要分别指定范围的起始端口和结束端口,对应CLI中的--port 50000-50001参数:

方式1:使用aws_security_group内嵌ingress块

resource "aws_security_group" "allow_tls" {
  name        = "allow_tls"
  description = "Allow TLS inbound traffic"
  vpc_id      = aws_vpc.main.id

  ingress {
    description   = "Allow ports 50000-50001 TCP"
    from_port     = 50000  # 端口范围起始值
    to_port       = 50001  # 端口范围结束值
    protocol      = "tcp"
    cidr_blocks   = ["0.0.0.0/0"]
  }

  tags = {
    Name = "allow_tls"
  }
}

方式2:使用aws_security_group_rule独立资源

# 先创建基础安全组
resource "aws_security_group" "allow_tls" {
  name        = "allow_tls"
  description = "Allow TLS inbound traffic"
  vpc_id      = aws_vpc.main.id

  tags = {
    Name = "allow_tls"
  }
}

# 添加端口范围规则
resource "aws_security_group_rule" "allow_port_range" {
  type              = "ingress"
  from_port         = 50000
  to_port           = 50001
  protocol          = "tcp"
  cidr_blocks       = ["0.0.0.0/0"]
  security_group_id = aws_security_group.allow_tls.id
}

配置完成后执行terraform plan,就能看到from_port和to_port被正确设置为50000和50001,实现与CLI命令完全一致的安全组规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:15:34