如何使用 AWS CLI 确定 ELB 侦听器关联的活动 SSL 安全策略?
上次更新日期:2022 年 2 月 28 日
我想使用 AWS Command Line Interface (AWS CLI) 来确定 Elastic Load Balancing (ELB) 中 HTTPS 或 SSL 侦听器上的活动安全策略。我该如何操作?
简短描述
注意:如果您在运行 AWS CLI 命令时遇到错误,请确保使用的是最新版本的 AWS CLI。
您可以为 Amazon Elastic Compute Cloud (Amazon EC2) 的负载均衡器添加 HTTPS 侦听器。侦听器的 SSL 安全策略会显示在 Amazon EC2 控制台中。如需相关说明,请参阅《更新 HTTPS/SSL 负载均衡器的 SSL 协商配置》。
您可以使用类似于以下内容的 AWS CLI 命令 describe-load-balancer-policies 来显示负载均衡器侦听器 SSL 安全策略名称和预定义 SSL 安全策略:
aws elb describe-load-balancer-policies --load-balancer-name EXAMPLEELB --query "PolicyDescriptions[?PolicyTypeName==`SSLNegotiationPolicyType`].{PolicyName:PolicyName,ReferenceSecurityPolicy:PolicyAttributeDescriptions[0].AttributeValue}" --output table
示例输出:
-------------------------------------------------------------------------------------
| DescribeLoadBalancerPolicies |
+-------------------------------------------------------+---------------------------+
| PolicyName | ReferenceSecurityPolicy |
+-------------------------------------------------------+---------------------------+
| ELBSecurityPolicy-2015-05 | ELBSecurityPolicy-2015-05 |
| AWSConsole-SSLNegotiationPolicy-TESTELB-1446825761570 | ELBSecurityPolicy-2015-03 |
| AWSConsole-SSLNegotiationPolicy-TESTELB-1446774067525 | ELBSecurityPolicy-2015-05 |
| AWSConsole-SSLNegotiationPolicy-TESTELB-1446774575245 | ELBSecurityPolicy-2015-05 |
| AWSConsole-SSLNegotiationPolicy-TESTELB-1447023243695 | ELBSecurityPolicy-2014-10 |
| AWSConsole-SSLNegotiationPolicy-TESTELB-1447039877149 | false |
| AWSConsole-SSLNegotiationPolicy-TESTELB-1447039147749 | ELBSecurityPolicy-2011-08 |
| AWSConsole-SSLNegotiationPolicy-TESTELB-1447102065672 | ELBSecurityPolicy-2014-10 |
+-------------------------------------------------------+---------------------------+
注意:如果 ReferenceSecurityPolicy 值为 false,说明策略不是用预定义安全策略之一创建。
输出将返回与负载均衡器侦听器关联的 SSL 安全策略,但不指明哪个策略处于活动状态。
解决方法
要确定活动负载均衡器侦听器 SSL 安全策略和任何关联的预定义 SSL 安全策略,请执行以下操作:
1. 运行类似以下内容的 AWS 命令 describe-load-balancers:
aws elb describe-load-balancers --load-balancer-name EXAMPLEELB --query "LoadBalancerDescriptions[*].{ActivePolicy:ListenerDescriptions}" --output table
示例输出:
---------------------------------------------------------------------------------
| DescribeLoadBalancers |
|| ActivePolicy ||
||| Listener |||
||+-------------------+-------------------------------------------------------+||
||| InstancePort | 443 |||
||| InstanceProtocol | SSL |||
||| LoadBalancerPort | 443 |||
||| Protocol | SSL |||
||| SSLCertificateId | arn:aws:iam::803981987763:server-certificate/ELBSSL |||
||+-------------------+-------------------------------------------------------+||
||| PolicyNames |||
||+---------------------------------------------------------------------------+||
||| AWSConsole-SSLNegotiationPolicy-TESTELB-1447102065672 |||
||+---------------------------------------------------------------------------+||
|| ActivePolicy ||
||| Listener |||
||+-----------------------------------------------------+---------------------+||
||| InstancePort | 80 |||
||| InstanceProtocol | HTTP |||
||| LoadBalancerPort | 80 |||
||| Protocol | HTTP |||
||+-----------------------------------------------------+---------------------+||
输出将返回与负载均衡器关联的策略名称。
2. 要获取有关策略的更多信息,请运行类似以下内容的 AWS CLI 命令 describe-load-balancer-policies:
aws elb describe-load-balancer-policies --load-balancer-name EXAMPLEELB --policy-name AWSConsole-SSLNegotiationPolicy-TESTELB-1447102065672 --query "PolicyDescriptions[0].{ReferenceSecurityPolicy:PolicyAttributeDescriptions[0].AttributeValue}" --output table
示例输出:
----------------------------------------------------------
| DescribeLoadBalancerPolicies |
+--------------------------+-----------------------------+
| ReferenceSecurityPolicy | ELBSecurityPolicy-2014-10 |
+--------------------------+-----------------------------+