繁体   English   中英

如何使用Terraform设置安全组规则描述?

[英]How can I set the security group rule description with Terraform?

看来您现在可以设置安全组规则描述 这对于维护用于管理访问的白名单非常有用。

我可以在AWS控制台中设置描述,但无法弄清楚如何使用Terraform进行描述。

我的假设是,如果AWS API允许这样做,则Terraform可以在没有Terraform代码中显式支持的情况下完成此任务。 也许那是一厢情愿的想法,我们将不得不等待Terraform支持该新功能,或者我只是做错了。

我尝试仅在规则声明中声明description属性(就像对安全组本身的描述一样):

    ingress {
        from_port       = 22
        to_port         = 22
        protocol        = "tcp"
        cidr_blocks     = ["123.456.789.123"]
        description     = "some rule description"
        }

Terraform在计划阶段使用以下方法来保全:

aws_security_group.somegroup:入口0:无效或未知密钥:说明

我还尝试在规则声明中设置标签(就像设置安全组名称一样):

     ingress {
         from_port       = 22
         ...
      tags {
           "Description" = "some rule description"
           }
      }

Terraform在计划阶段使用以下方法来保全:

aws_security_group.somegroup:ingress.0:无效或未知密钥:标签

似乎您没有正确使用Terraform api。

您无法将description设置为aws_security_group_rule资源。

Terraform.io上的aws_security_group_rule

resource "aws_security_group_rule" "allow_all" {
  type            = "ingress"
  from_port       = 0
  to_port         = 65535
  protocol        = "tcp"
  cidr_blocks     = ["0.0.0.0/0"]
  prefix_list_ids = ["pl-12c4e678"]

  security_group_id = "sg-123456"
}

您可以将description设置为aws_security_group资源。

Terraform.io上的aws_security_group

从他们的文档中:

resource "aws_security_group" "allow_all" {
  name        = "allow_all"
  description = "Allow all inbound traffic"

  ingress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port       = 0
    to_port         = 0
    protocol        = "-1"
    cidr_blocks     = ["0.0.0.0/0"]
    prefix_list_ids = ["pl-12c4e678"]
  }
}

aws_security_groupdescription属性应在其根范围内的ingressegress声明之外声明

截至目前,您的代码应该是有效的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM