不同的 aws_security_group 出口规则取决于用户输入 (terraform)

问题描述 投票:0回答:1

我试图弄清楚如何根据提供的变量制定不同的出口规则。对于我的用例,安全组应该具有对世界的完全出站访问权限,或者完全删除。

目前,当我需要进行这些更改时,我会手动注释掉一条规则与另一条规则,但理想情况下,我想通过使用变量或其他用户提供的方式来控制它。

当我需要向世界开放出口时:

  resource "aws_security_group" "test" {
    ...
    egress {
      from_port        = 0
      to_port          = 0
      protocol         = "-1"
      cidr_blocks      = ["0.0.0.0/0"]
      ipv6_cidr_blocks = ["::/0"]
    }
    ...

当我需要完全删除所有出口规则时:


  resource "aws_security_group" "test" {
    ...
    egress = []
    ...
amazon-web-services terraform aws-security-group
1个回答
0
投票

最好使用

aws_security_group_rule
count
:

variable "enable_egress" {
  type = bool
  default = true
}


resource "aws_security_group" "test" {

}

resource "aws_security_group_rule" "example" {

  security_group_id = aws_security_group.test.id

  count = var.enable_egress == true ? 1 : 0

  type              = "egress"
  from_port        = 0
  to_port          = 0
  protocol         = "-1"
  cidr_blocks      = ["0.0.0.0/0"]
  ipv6_cidr_blocks = ["::/0"] 
}
© www.soinside.com 2019 - 2024. All rights reserved.