如何自动启用Cloudformation中指定的ELB Cipher策略

How to automatically enable the ELB Cipher policy specified in the Cloudformation

我在 Cloudformation ELB 策略属性下指定的策略在部署后未启用。我必须手动启用它,然后旧的默认策略才生效。如何自动启用Cloudformation中指定的ELB Cipher策略?

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html

Policies:
    - PolicyName: My-SSLNegotiation-Policy
      PolicyType: SSLNegotiationPolicyType
      Attributes:
      - Name: Reference-Security-Policy
        Value: ELBSecurityPolicy-TLS-1-2-2017-01

在 AWS 控制台上,它仍将预定义策略显示为 ELBSecurityPolicy-2016-08,这是默认策略

然后我不得不使用下面的 cli 手动启用它然后它显示预定义策略为 ELBSecurityPolicy-TLS-1-2-2017-01

aws elb set-load-balancer-policies-of-listener --load-balancer-name auhuman-ELB-qwertyuiop --load-balancer-port 443 --policy-names Auhuman-ELBSecurityPolicy-TLS-1-2-2017-01 --region us-east-1

这种策略定义风格与经典的 EC2 负载均衡器相关联。如果可能的话,您应该使用 V2 application load balancer instead。经典 ELB 的真正唯一用例是如果您有不在 VPC 中的经典 EC2 实例……您应该考虑这些实例的迁移策略。

假设您可以使用 V2 ALB,您可以在侦听器上使用 SslPolicy 属性 来声明您的策略,例如:

LoadBalancerSecureListener:
  Type: AWS::ElasticLoadBalancingV2::Listener
  Properties:
    LoadBalancerArn: !Ref LoadBalancer
    Protocol: HTTPS
    Port: 443
    Certificates:
      - CertificateArn: !Ref ACSCertificate
    SslPolicy: ELBSecurityPolicy-TLS-1-2-2017-01
    DefaultActions:
      - Type: forward
        TargetGroupArn: !Ref DefaultTargetGroup

当然,您需要根据您的情况替换适当的参考资料。

如果您绝对必须使用经典 ELB,则需要通过将 PolicyNames 属性 添加到侦听器配置来将策略名称与侦听器相关联,如:

 Loadbal:
    Type: 'AWS::ElasticLoadBalancing::LoadBalancer'
    Properties:
      Subnets:
        - !Ref subnet1
        - !Ref subnet2
      Listeners:
        - InstancePort: 80
          LoadBalancerPort: 443
          Protocol: HTTPS
          SSLCertificateId: >-
            !Ref ACSCertificate
          PolicyNames:
            - My-SSLNegotiation-Policy
      Policies:
        - PolicyName: My-SSLNegotiation-Policy
          PolicyType: SSLNegotiationPolicyType
          Attributes:
            - Name: Reference-Security-Policy
              Value: ELBSecurityPolicy-TLS-1-2-2017-01