こんにちわ、屋根裏エンジニアの折戸です。
今回はClassic Load Balancer(以下、CLB)のセキュリティポリシーをAWS CLI(以下、CLI)で確認する方法をご紹介します。
参考
詳細については以下をご覧ください。
CLIドキュメント
awscli.amazonaws.com awscli.amazonaws.com
事前準備
AWS CLI
% aws --version aws-cli/2.2.44 Python/3.8.8 Darwin/21.2.0 exe/x86_64 prompt/off
認証設定/プロファイル設定
適宜設定ください
CLBへ設定されている PolicyNames を確認
describe-load-balancers
を実行
※必要に応じて --profile (プロファイル)をご指定ください。
% aws elb describe-load-balancers --load-balancer-name 【CLB名】 --query "LoadBalancerDescriptions[].ListenerDescriptions[].PolicyNames[]" --output text
出力例
AWSConsole-SSLNegotiationPolicy-【CLB名】-*************
セキュリティポリシーの詳細を確認
SSL プロトコル、SSL オプション(サーバーの優先順位)、SSL 暗号を確認します。
describe-load-balancer-policies 実行
PolicyNameを指定して、describe-load-balancer-policies
を実行します。
※必要に応じて --profile (プロファイル)をご指定ください。
% aws elb describe-load-balancer-policies --load-balancer-name 【CLB名】 --policy-name 【PolicyName】 --output table
出力例
ELBSecurityPolicy-2016-08 の場合
------------------------------------------------------------------------------------------ | DescribeLoadBalancerPolicies | +----------------------------------------------------------------------------------------+ || PolicyDescriptions || |+---------------------------------------------------------+----------------------------+| || PolicyName | PolicyTypeName || |+---------------------------------------------------------+----------------------------+| || 【CLB名】 | SSLNegotiationPolicyType || |+---------------------------------------------------------+----------------------------+| ||| PolicyAttributeDescriptions ||| ||+--------------------------------------------+---------------------------------------+|| ||| AttributeName | AttributeValue ||| ||+--------------------------------------------+---------------------------------------+|| ||| Reference-Security-Policy | ELBSecurityPolicy-2016-08 ||| ||| Protocol-TLSv1 | true ||| ||| Protocol-SSLv3 | false ||| ||| Protocol-TLSv1.1 | true ||| ||| Protocol-TLSv1.2 | true ||| ||| Server-Defined-Cipher-Order | true ||| ||| ECDHE-ECDSA-AES128-GCM-SHA256 | true ||| ||| ECDHE-RSA-AES128-GCM-SHA256 | true ||| ||| ECDHE-ECDSA-AES128-SHA256 | true ||| ||| ECDHE-RSA-AES128-SHA256 | true ||| ||| ECDHE-ECDSA-AES128-SHA | true ||| ||| ECDHE-RSA-AES128-SHA | true ||| ||| DHE-RSA-AES128-SHA | false ||| ||| ECDHE-ECDSA-AES256-GCM-SHA384 | true ||| ||| ECDHE-RSA-AES256-GCM-SHA384 | true ||| ||| ECDHE-ECDSA-AES256-SHA384 | true ||| ||| ECDHE-RSA-AES256-SHA384 | true ||| ||| ECDHE-RSA-AES256-SHA | true ||| ||| ECDHE-ECDSA-AES256-SHA | true ||| ||| AES128-GCM-SHA256 | true ||| ||| AES128-SHA256 | true ||| ||| AES128-SHA | true ||| ||| AES256-GCM-SHA384 | true ||| ||| AES256-SHA256 | true ||| ||| AES256-SHA | true ||| ||| DHE-DSS-AES128-SHA | false ||| ||| CAMELLIA128-SHA | false ||| ||| EDH-RSA-DES-CBC3-SHA | false ||| ||| DES-CBC3-SHA | false ||| ||| ECDHE-RSA-RC4-SHA | false ||| ||| RC4-SHA | false ||| ||| ECDHE-ECDSA-RC4-SHA | false ||| ||| DHE-DSS-AES256-GCM-SHA384 | false ||| ||| DHE-RSA-AES256-GCM-SHA384 | false ||| ||| DHE-RSA-AES256-SHA256 | false ||| ||| DHE-DSS-AES256-SHA256 | false ||| ||| DHE-RSA-AES256-SHA | false ||| ||| DHE-DSS-AES256-SHA | false ||| ||| DHE-RSA-CAMELLIA256-SHA | false ||| ||| DHE-DSS-CAMELLIA256-SHA | false ||| ||| CAMELLIA256-SHA | false ||| ||| EDH-DSS-DES-CBC3-SHA | false ||| ||| DHE-DSS-AES128-GCM-SHA256 | false ||| ||| DHE-RSA-AES128-GCM-SHA256 | false ||| ||| DHE-RSA-AES128-SHA256 | false ||| ||| DHE-DSS-AES128-SHA256 | false ||| ||| DHE-RSA-CAMELLIA128-SHA | false ||| ||| DHE-DSS-CAMELLIA128-SHA | false ||| ||| ADH-AES128-GCM-SHA256 | false ||| ||| ADH-AES128-SHA | false ||| ||| ADH-AES128-SHA256 | false ||| ||| ADH-AES256-GCM-SHA384 | false ||| ||| ADH-AES256-SHA | false ||| ||| ADH-AES256-SHA256 | false ||| ||| ADH-CAMELLIA128-SHA | false ||| ||| ADH-CAMELLIA256-SHA | false ||| ||| ADH-DES-CBC3-SHA | false ||| ||| ADH-DES-CBC-SHA | false ||| ||| ADH-RC4-MD5 | false ||| ||| ADH-SEED-SHA | false ||| ||| DES-CBC-SHA | false ||| ||| DHE-DSS-SEED-SHA | false ||| ||| DHE-RSA-SEED-SHA | false ||| ||| EDH-DSS-DES-CBC-SHA | false ||| ||| EDH-RSA-DES-CBC-SHA | false ||| ||| IDEA-CBC-SHA | false ||| ||| RC4-MD5 | false ||| ||| SEED-SHA | false ||| ||| DES-CBC3-MD5 | false ||| ||| DES-CBC-MD5 | false ||| ||| RC2-CBC-MD5 | false ||| ||| PSK-AES256-CBC-SHA | false ||| ||| PSK-3DES-EDE-CBC-SHA | false ||| ||| KRB5-DES-CBC3-SHA | false ||| ||| KRB5-DES-CBC3-MD5 | false ||| ||| PSK-AES128-CBC-SHA | false ||| ||| PSK-RC4-SHA | false ||| ||| KRB5-RC4-SHA | false ||| ||| KRB5-RC4-MD5 | false ||| ||| KRB5-DES-CBC-SHA | false ||| ||| KRB5-DES-CBC-MD5 | false ||| ||| EXP-EDH-RSA-DES-CBC-SHA | false ||| ||| EXP-EDH-DSS-DES-CBC-SHA | false ||| ||| EXP-ADH-DES-CBC-SHA | false ||| ||| EXP-DES-CBC-SHA | false ||| ||| EXP-RC2-CBC-MD5 | false ||| ||| EXP-KRB5-RC2-CBC-SHA | false ||| ||| EXP-KRB5-DES-CBC-SHA | false ||| ||| EXP-KRB5-RC2-CBC-MD5 | false ||| ||| EXP-KRB5-DES-CBC-MD5 | false ||| ||| EXP-ADH-RC4-MD5 | false ||| ||| EXP-RC4-MD5 | false ||| ||| EXP-KRB5-RC4-SHA | false ||| ||| EXP-KRB5-RC4-MD5 | false ||| ||+--------------------------------------------+---------------------------------------+||
AttributeValue
が true
となっているものが有効になっています。
AttributeValueがtrueのみ抽出
% aws elb describe-load-balancer-policies --load-balancer-name 【CLB名】 --policy-name 【PolicyNames名】 --query "PolicyDescriptions[].PolicyAttributeDescriptions[?AttributeValue=='true'].[AttributeName]" --output text
出力例
ELBSecurityPolicy-2016-08 の場合
Protocol-TLSv1 Protocol-TLSv1.1 Protocol-TLSv1.2 Server-Defined-Cipher-Order ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA ECDHE-RSA-AES128-SHA ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-ECDSA-AES256-SHA AES128-GCM-SHA256 AES128-SHA256 AES128-SHA AES256-GCM-SHA384 AES256-SHA256 AES256-SHA
最後に
例えばCLBからALBへ移行を検討する際に、CLBに設定されているセキュリティポリシーやSSL暗号の確認が必要となります。
今回ご紹介しましたCLI操作でCLBに設定されているセキュリティポリシーの確認を効率化できます。
どなたかの参考になれば幸いです。
では。