0

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

我可以在 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:ingress.0:无效或未知密钥:描述

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

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

Terraform 在计划阶段保释:

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

4

2 回答 2

1

到目前为止,这是可能的,您的代码应该是有效的。

于 2017-12-12T12:13:07.820 回答
1

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

您不能设置descriptionaws_security_group_rule资源。

aws_security_group_rule在 Terraform.io 上

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"
}

您可以设置descriptionaws_security_group资源。

aws_security_group在 Terraform.io 上

从他们的文档中:

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属性应该在ingress和声明之外egress声明,在它的根范围内

于 2017-08-31T22:16:06.460 回答