Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform 使用aws预定义的ssl安全策略地形化aws_lb_ssl_协商_策略_Terraform - Fatal编程技术网

Terraform 使用aws预定义的ssl安全策略地形化aws_lb_ssl_协商_策略

Terraform 使用aws预定义的ssl安全策略地形化aws_lb_ssl_协商_策略,terraform,Terraform,根据: 您可以创建一个新的资源以拥有ELB SSL策略,这样您就可以定制您想要的任何协议和密码。但是,我希望使用由Amazon设置的预定义安全策略 TLS-1-1-2017-01或TLS-1-2-2017-01 有没有办法使用预定义策略而不是设置新的自定义策略?是的,您可以定义它。默认安全策略ELBSecurityPolicy-2016-08已涵盖您要求的所有ssl协议 其次,Protocol-TLSv1.2也涵盖了您要求的两项政策(TLS-1-1-2017-01或TLS-1-2-2017-0

根据:

您可以创建一个新的资源以拥有ELB SSL策略,这样您就可以定制您想要的任何协议和密码。但是,我希望使用由Amazon设置的预定义安全策略
TLS-1-1-2017-01
TLS-1-2-2017-01


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

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

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

()

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

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

为了解决同样的问题,我在这里遇到了以下片段:

基本上,您需要创建两个资源,
aws\u负载平衡器\u策略
,以及
aws\u负载平衡器\u侦听器\u策略
。在
aws\u负载\u平衡器\u策略中
policy\u属性设置为引用预定义的安全策略,然后将侦听器策略设置为引用该aws\u负载\u平衡器\u策略

我在terraform AWS文档中添加了一个示例代码,以使其更加明确,但下面是一个示例代码段:

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控制台中创建的内容时,您会发现它实际上只是选择了适当的预定义安全策略


借鉴Kirkland的答案,对于子孙后代,如果您不需要任何其他保单类型,您可以对aws\u lb\u ssl\u negotation\u保单执行相同的操作:

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

我也在寻找同样的答案,但你的答案看起来与他想要的答案不太一样。你没有解释如何应用策略,他也不想启用协议/密码/选项,而是想应用预定义的策略。也许我的理解有误,但你的示例应用了协议协议TLSv1.2,而不是预定义的策略。我粘贴的表单告诉你哪些策略属于。到目前为止,这似乎是不可能的。github上出现了一个问题供进一步参考:到目前为止似乎还不可能。github上有一个问题需要进一步参考:答案很好,也感谢您更新文档!我只是想指出,您也可以使用aws_lb_ssl_Negotation_策略使用一个资源来完成这项工作——请参阅我的答案,了解格式化代码(看起来您无法在注释中发布代码片段)