使用AWS预定义SSL安全策略对Terraform aws_lb_ssl_negotiation_policy进行Terraform

时间:2017-09-14 19:07:45

标签: terraform

根据:original solution

您可以创建新资源以获得ELB SSL策略,以便您可以自定义所需的任何协议和密码。但是,我希望使用亚马逊设置的预定义安全策略 TLS-1-1-2017-01TLS-1-2-2017-01

https://www.terraform.io/docs/providers/aws/r/lb_ssl_negotiation_policy.html

有没有办法使用预定义的策略而不是设置新的自定义策略?

3 个答案:

答案 0 :(得分:1)

为了获得柯克兰(Kirkland)的答案,为了后代,如果不需要任何其他策略类型,可以使用aws_lb_ssl_negotation_policy做同样的事情:

resource "aws_lb_ssl_negotiation_policy" "my-elb-ssl-policy" {
  name          = "my-elb-ssl-policy"
  load_balancer = "${aws_elb.my-elb.id}"
  lb_port       = 443

  attribute {
    name  = "Reference-Security-Policy"
    value = "ELBSecurityPolicy-TLS-1-2-2017-01"
  }
}

答案 1 :(得分:0)

是的,你可以定义它。默认安全策略ELBSecurityPolicy-2016-08已涵盖您要求的所有ssl协议。

其次,Protocol-TLSv1.2涵盖了您要求的两项政策(TLS-1-1-2017-01或TLS-1-2-2017-01)。

http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-policy-table.html

enter image description here

因此,请确保使用以下代码启用它:

resource "aws_lb_ssl_negotiation_policy" "foo" {
  ...
  attribute {
    name  = "Protocol-TLSv1.2"
    value = "true"
  }
}

答案 2 :(得分:0)

为解决同一问题,我在这里遇到了以下代码段:https://github.com/terraform-providers/terraform-provider-aws/issues/822#issuecomment-311448488

基本上,您需要创建两个资源,aws_load_balancer_policyaws_load_balancer_listener_policy。在aws_load_balancer_policy中,将policy_attribute设置为引用预定义的安全策略,然后将侦听器策略设置为引用该aws_load_balancer_policy。

我在terraform AWS文档中添加了一个Pull Request,以便在此处使其更加明确,但这是示例片段:

resource "aws_load_balancer_policy" "listener_policy-tls-1-1" {
  load_balancer_name = "${aws_elb.elb.name}"
  policy_name        = "elb-tls-1-1"
  policy_type_name   = "SSLNegotiationPolicyType"

  policy_attribute {
    name  = "Reference-Security-Policy"
    value = "ELBSecurityPolicy-TLS-1-1-2017-01"
  }
}

resource "aws_load_balancer_listener_policy" "ssl_policy" {
  load_balancer_name = "${aws_elb.elb.name}"
  load_balancer_port = 443

  policy_names = [
    "${aws_load_balancer_policy.listener_policy-tls-1-1.policy_name}",
  ]
}

乍一看,这似乎是基于预定义的安全策略创建自定义策略,但是当您查看AWS控制台中创建的内容时,您会发现它实际上只是选择了适当的预定义安全策略

ELB Security Policy Selection