terraform:source_security_group_id的语法

Mar*_*ins 0 terraform

我需要使用terraform source_security_group_id指示符将另一个安全组设置为当前安全组的源.但是,当我尝试使用明显语法的变体时,比如

resource "aws_security_group" "foo-sg" {

    "ingress" = {
    "from_port" = 443
    "to_port" = 443
    "protocol" = -1
    "source_security_group_id" = "sg-9115bae1"
  }
}
Run Code Online (Sandbox Code Playgroud)

......我收到一个错误:

aws_security_group.foo-sg:ingress.0:无效或未知密钥:source_security_group_id


有没有人使用这个结构的例子?

Mar*_*ins 5

此功能的属性名称是security_groups,可以按如下方式使用:

resource "aws_security_group" "foo-sg" {
  ingress {
    from_port = 443
    to_port   = 443
    protocol  = "tcp"

    security_groups = ["sg-9115bae1"]
  }
}
Run Code Online (Sandbox Code Playgroud)

另请注意,特殊-1protocol(意为"任何协议")会导致端口号被忽略,因为只有UDP和TCP具有端口号的概念.如上例所示,设置protocolto tcp是允许HTTPS的传入连接所必需的.

  • @Mark McWiggins,您需要阅读资源的文档 (https://www.terraform.io/docs/providers/aws/r/security_group.html),如果您将来遇到类似问题,这将很有帮助。 (2认同)