ELB のプロトコルセキュリティ設定の確認

Classic ELB リスナーで古い SSL/TLS プロトコルを許可しないでください。

説明

Classic ELB のセキュリティポリシーで SSLv2、SSLv3、TLS 1.0、TLS 1.1 を許可すると、クライアントが古い暗号化プロトコルで接続できます。このような接続は、既知のプロトコルの弱点の影響を受けたり、サービスの転送時のセキュリティ要件を満たさなかったりする場合があります。

ポリシー名だけでなく、リスナーに実際に適用されるプロトコルと暗号スイートを確認する必要があります。フロントエンドのポリシーは、バックエンド接続の TLS 設定を代替しません。

想定される影響

  • 古いプロトコルを使用する接続では、機密データの保護が弱まるおそれがあります。
  • 古いポリシーを削除すると旧式のクライアントが接続できなくなる場合があり、互換性の確認が必要です。

対処方法

古いプロトコルを許可するポリシーを削除し、TLS 1.2 を使用する ELBSecurityPolicy-TLS-1-2-2017-01 など、要件に合う Classic ELB ポリシーを選んでください。証明書とクライアントの互換性を確認し、HTTPS または SSL リスナーの PolicyNames で関連付けてください。変更後に実際に使用されるプロトコルと暗号スイートを確認してください。

例

ポリシー定義だけを比較する抜粋です。適用するには証明書とリスナーが必要で、そのリスナーの PolicyNames に MySSLPolicy を指定してください。

変更前

yaml
Resources:
  MyLoadBalancer:
    Type: AWS::ElasticLoadBalancing::LoadBalancer
    Properties:
      Policies:
        - PolicyName: MySSLPolicy
          PolicyType: SSLNegotiationPolicyType
          Attributes:
            - Name: Protocol-SSLv2
              Value: true

SSLv2 を許可する過去のポリシー構成です。運用中のリスナーにこの設定を残さないでください。

変更後

yaml
Resources:
  MyLoadBalancer:
    Type: AWS::ElasticLoadBalancing::LoadBalancer
    Properties:
      Policies:
        - PolicyName: MySSLPolicy
          PolicyType: SSLNegotiationPolicyType
          Attributes:
            - Name: Reference-Security-Policy
              Value: ELBSecurityPolicy-TLS-1-2-2017-01

TLS 1.2 のみを許可する定義済みポリシーを参照します。この定義を記述するだけでは、リスナーには関連付けられません。

参考資料