如何使用 AWS CLI 确定应用到 Elastic Load Balancing HTTPS 和 SSL 侦听器的活动 SSL 安全策略?

上次更新日期:2015 年 12 月 8 日

如何使用 AWS CLI 确定 ELB 侦听器关联的活动 SSL 安全策略?

简短描述

注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您运行的是最新版本的 AWS CLI。

按照使用控制台添加 HTTPS 侦听器中的步骤配置负载均衡器侦听器时,侦听器的 SSL 安全策略显示在 AWS EC2 控制台的 Select a Cipher 对话框中,如更新 HTTPS/SSL 负载均衡器的 SSL 协商配置中的步骤 6 所述。在 AWS CLI 中,运行下面的 describe-load-balancer-policies 命令可以显示负载均衡器侦听器 SSL 安全策略名称及任何预定义的 Elastic Load Balancing 的 SSL 安全策略。请务必将 TESTELB 替换为您的负载均衡器名称:

aws elb describe-load-balancer-policies --load-balancer-name TESTELB --query "PolicyDescriptions.{PolicyName:PolicyName,ReferenceSecurityPolicy:PolicyAttributeDescriptions.AttributeValue}" --output table
注意:CLI 示例使用的是 AWS CLI 在 Windows 命令提示符窗口中所用的语法。要在 Linux 或 Windows PowerShell 上运行上述命令,请用单引号而不是双引号括住 --query 参数。有关在不同平台上运行 AWS CLI 命令时语法差异的更多信息,请参阅 为 AWS 命令行界面指定参数值。

此命令应该生成类似于下述信息的输出:

-------------------------------------------------------------------------------------
|                             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,说明策略不是用 Elastic Load Balancing 的 SSL 安全策略中描述的预定义安全策略创建的。

此 AWS CLI 命令返回负载均衡器侦听器关联的 SSL 安全策略,但不指示哪个负载均衡器侦听器 SSL 安全策略当前处于活动状态。要确定当前处于活动状态的策略,请完成“解决”部分中描述的步骤。

解决方法

运行下述 AWS CLI 命令返回处于活动状态的负载均衡器侦听器 SSL 安全策略,及任何关联的预定义 SSL 安全策略:

1.要返回处于活动状态的侦听器 SSL 安全策略的相关信息,请运行 describe-load-balancers(记得将 TESTELB 替换为您的负载均衡器名称):

aws elb describe-load-balancers --load-balancer-name TESTELB --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.要返回处于活动状态的侦听器 SSL 安全策略关联的任何预定义 SSL 安全策略,请运行 describe-load-balancer-policies(记得将 TESTELB 替换为您的负载均衡器名称,将 AWSConsole-SSLNegotiationPolicy-TESTELB-1447102065672 替换为处于活动状态的侦听器 SSL 安全策略名称):

aws elb describe-load-balancer-policies --load-balancer-name TESTELB --policy-name AWSConsole-SSLNegotiationPolicy-TESTELB-1447102065672 --query "PolicyDescriptions.{ReferenceSecurityPolicy:PolicyAttributeDescriptions.AttributeValue}" --output table
此命令应该返回类似于下述信息的输出:

----------------------------------------------------------
|              DescribeLoadBalancerPolicies              |
+--------------------------+-----------------------------+
|  ReferenceSecurityPolicy |  ELBSecurityPolicy-2014-10  |
+--------------------------+-----------------------------+

注意:如果返回的预定义 SSL 安全策略值为 false,说明处于活动状态的负载均衡器侦听器 SSL 安全策略不是用 Elastic Load Balancing 的 SSL 安全策略中描述的预定义安全策略创建的。