如何自动启用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
我在 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