【问题标题】:Terraform 11 Additional Security Group ErrorTerraform 11 附加安全组错误
【发布时间】:2021-03-26 18:07:54
【问题描述】:

我正在 Terraform 11 中添加额外的安全组,使用 AWS Provider 2.70.0 到 EFS 挂载目标。

代码块是:

resource "aws_efs_mount_target" "default" {
  count          = "${length(split(",",var.backend_subnets)) > 0 ? length(split(",",var.backend_subnets)) : 0}"
  file_system_id = "${aws_efs_file_system.default.id}"
  ip_address     = "${var.mount_target_ip_address}"
  subnet_id      = "${element(split(",", var.backend_subnets), count.index)}"
  security_groups = ["${var.additional_security_groups == "" ? aws_security_group.efs_default_sg.id : format("%s,%s",var.additional_security_groups,aws_security_group.efs_default_sg.id)}"]
}

变量定义为:

variable "additional_security_groups" {
  description = "Comma separated string of security group ID's"
  default     = ""
}

但出现以下错误:

* module.efs.aws_efs_mount_target.default[1]: 1 error(s) occurred:

* aws_efs_mount_target.default.1: ValidationException:
status code: 400, request id: 5ee48121-27c3-432b-98e9-e2ffdc6e0fdd

plugin.terraform-provider-aws_v2.70.0_x4: 2021/03/26 17:49:50 [ERR] plugin: plugin server: accept unix /tmp/plugin935042092: use of closed network connection

在没有附加安全组的情况下运行没有问题。

【问题讨论】:

  • 试试TF_LOG=debug,这样您就可以看到发送到 AWS 的实际请求和响应。
  • 该错误来自 TF_LOG=debug。我认为这是一个 AWS Provider Plugin 问题。
  • @TheoSweeny 您提供的安全组是否属于与指定子网相同的 VPC?安全组的形式为sg-xxx?为什么它在没有安全组的情况下工作是If the request provides SecurityGroups, this network interface is associated with those security groups. Otherwise, it belongs to the default security group for the subnet's VPC.CreateMountTarget。为什么我要考虑这个,因为错误我 ValidationException .
  • 是的,两个 SG 都在同一个 VPC 中。
  • aws_efs_file_system 资源是什么样的?

标签: amazon-web-services security continuous-integration terraform amazon-efs


【解决方案1】:

所以问题不在于插件,而在于安全组的比较语句。

工作比较:

security_groups = ["${split(",", length(var.additional_security_groups) > 0 ? join(",", concat(list(aws_security_group.efs_default_sg.id), var.additional_security_groups)) : join(",", list(aws_security_group.efs_default_sg.id)))}"]

为了支持这一点,必须将变量类型更改为列表:

variable "additional_security_groups" {
  description = "Comma separated list of security group ID's"
  default     = ["sg-123","sg-789"]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2021-07-13
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 2020-05-29
    相关资源
    最近更新 更多