【问题标题】:Terraform: Allow all internal traffic inside aws security groupTerraform:允许 aws 安全组内的所有内部流量
【发布时间】:2026-02-12 21:50:01
【问题描述】:

我正在尝试允许实例之间的所有 tcp 流量,否则拒绝所有入口和出口流量。

“cidr_blocks”的问题,在 aws 控制台中我可以选择安全组,但在 terraform 中如何实现类似的功能。

resource "aws_security_group" "default" {

  name = "terraform_example" 

  ingress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks =  ????
  }

}

【问题讨论】:

    标签: amazon-web-services terraform aws-security-group cidr


    【解决方案1】:

    在您的入口规则规范集self = true 中允许您的安全组内的流量。要允许来自不同安全组的流量,请使用 security_groups 参数。在这两种情况下,您都可以省略 cidr_blocks 参数。

    【讨论】:

      【解决方案2】:
      • 如果您的要求是允许来自互联网的所有流量,您可以使用
          cidr_blocks      = ["0.0.0.0/0"] 
          ipv6_cidr_blocks = ["::/0"]
      

      • 如果您想允许来自已在 AWS 中创建的指定 VPC 的流量,您可以提供该 cidr 的变量
          cidr_blocks      = [aws_vpc.main.cidr_block]
          ipv6_cidr_blocks = [aws_vpc.main.ipv6_cidr_block]
      

      • 如果您的要求是允许来自特定安全组,我们也可以这样做
          security_groups = [ "aws_security_group.main_sg1.name", "aws_security_group.main_sg2.name" ]
      

      【讨论】: