使用 terraform,有人知道如何从 aws_elastic_beanstalk_environment 资源内为 ELB 设置 预定义 SSL 安全策略吗?
我尝试了各种参数排列,从类似下面的内容中分支出来,但没有运气。 ````
setting {
name = "PolicyNames"
namespace = "aws:elb:listener"
value = "ELBSecurityPolicy-TLS-1-2-2017-01"
}
```
这可以使用设置语法来完成吗?
问候 迈克尔
以下适用于经典ELB,LoadBalancerPorts也需要设置为443才能使预定义策略生效。
setting {
namespace = "aws:elb:policies:sslpolicy"
name = "SSLReferencePolicy"
value = "ELBSecurityPolicy-TLS-1-2-2017-01"
}
setting {
namespace = "aws:elb:policies:sslpolicy"
name = "LoadBalancerPorts"
value = "443"
}
试试这个:
setting {
name = "SSLReferencePolicy"
namespace = "aws:elb:policies:policy_name"
value = "ELBSecurityPolicy-TLS-1-2-2017-01"
}
SSL 参考政策
预定义安全策略的名称,该策略遵循 AWS 安全最佳实践,并且您希望为 SSLNegotiationPolicyType 策略启用该策略,该策略定义负载均衡器将接受的密码和协议。该策略只能与 HTTPS/SSL 侦听器关联。
参考:
我终于得到了 AWS Premium Support 的答复:
option_settings:
aws:elb:listener:
PolicyNames: sslpolicy
aws:elb:policies:sslpolicy:
LoadBalancerPorts: 443
SSLReferencePolicy: 'ELBSecurityPolicy-TLS-1-2-2017-01'
基本上,
aws:elb:policies:policy_name
不是有效的命名空间,这就是为什么您会收到类似“更新名为:awseb-e-6-AWSEBLoa-QXCM4ZPPQDJF 的负载均衡器失败原因:策略名称只能包含字母数字字符或破折号”的错误 - policy_name
需要替换为您选择的名称(在我的例子中是 sslpolicy),然后在 aws:elb:listener
命名空间中列为策略。需要输入 LoadBalancerPorts
才能使新的 SSLReferencePolicy
真正生效。
这有效:
setting {
name = "SSLReferencePolicy"
namespace = "aws:elb:policies:SSLReferencePolicy"
value = "ELBSecurityPolicy-TLS-1-2-2017-01"
}