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

Terraform创建AWS VPC后默认安全组配置的疑问与最佳实践咨询

问题解答

1. 新建安全组还是使用默认安全组?最佳实践是什么?

最佳实践是新建独立的安全组,原因如下:

  • 默认安全组初始规则(允许同组内所有入站、全量出站)过于宽松,直接修改容易因配置失误引入安全风险;而且默认组会自动关联到所有未指定安全组的新资源,可能导致意外的权限开放。
  • 新建安全组可以实现规则的粒度化管理:针对不同业务场景(如Web服务、数据库、管理节点)创建专属安全组,规则清晰,便于后续维护、审计和权限隔离。
  • 避免默认安全组的全局特性带来的配置冲突:后续其他资源误关联默认组时,不会继承你自定义的规则,减少故障影响范围。

2. 使用默认安全组时,如何通过Terraform修改规则?

你现有脚本存在VPC ID引用错误、CIDR格式错误、不必要的安全组关联字段等问题,以下是修正后的实现方式,可直接移除默认入站规则并添加两条自定义规则:

# 接管并修改VPC的默认安全组
resource "aws_default_security_group" "default" {
  vpc_id = aws_vpc.my_vpc.id

  # 自定义两条入站规则(默认入站规则会被自动移除)
  ingress = [
    # 规则1:允许指定IP段的SSH访问
    {
      cidr_blocks      = ["192.168.1.0/24"] # 替换为你需要允许的实际IP段
      description      = "Allow SSH from trusted network"
      from_port        = 22
      ipv6_cidr_blocks = []
      prefix_list_ids  = []
      protocol         = "tcp"
      self             = false
      to_port          = 22
    },
    # 规则2:允许指定IP段的HTTP访问
    {
      cidr_blocks      = ["0.0.0.0/0"] # 根据实际需求调整,比如仅允许公司公网IP
      description      = "Allow HTTP traffic"
      from_port        = 80
      ipv6_cidr_blocks = []
      prefix_list_ids  = []
      protocol         = "tcp"
      self             = false
      to_port          = 80
    }
  ]

  # 保留默认全量出站规则(若不需要修改可保留,否则自定义出站规则)
  egress = [
    {
      cidr_blocks      = ["0.0.0.0/0"]
      description      = "Allow all outbound traffic"
      from_port        = 0
      ipv6_cidr_blocks = []
      prefix_list_ids  = []
      protocol         = "all"
      self             = false
      to_port          = 0
    }
  ]

  tags = {
    Name = "default-sg-${var.environment}"
  }
}

关键说明:

  • 使用aws_default_security_group资源时,Terraform会完全接管该安全组的规则配置,所有未在ingress/egress块中定义的原有规则都会被移除,刚好满足你移除默认入站规则的需求。
  • 每条入站规则需作为ingress数组的独立对象,确保两条规则都能生效。
  • 若不需要修改出站规则,必须显式保留默认出站规则块,否则Terraform会清空所有出站规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:20:33