Elastic Load Balancing
クラシックロードバランサー

Classic Load Balancer の SSL ネゴシエーション設定の更新

Elastic Load Balancing は、クライアントとお使いのロードバランサーの間の SSL 接続のネゴシエーションに使用する SSL ネゴシエーション設定を事前定義したセキュリティポリシーを提供します。リスナーに HTTPS/SSL プロトコルを使用する場合は、事前定義されたセキュリティポリシーのいずれか、または独自のカスタムセキュリティポリシーを使用できます。

セキュリティポリシーの詳細については、「Classic Load Balancers の SSL ネゴシエーション設定」を参照してください。Elastic Load Balancing で提供されるセキュリティポリシーの設定については、「事前定義された SSL セキュリティポリシー」を参照してください。

セキュリティポリシーを関連付けないで HTTPS/SSL リスナーを作成する場合、Elastic Load Balancing は事前定義されたデフォルトのセキュリティポリシー、ELBSecurityPolicy-2016-08 をロードバランサーに関連付けます。

既存のロードバランサーで、最新のプロトコルと暗号を使用しない SSL ネゴシエーション設定にしている場合、ロードバランサーを ELBSecurityPolicy-2016-08 を使用するように更新することをお勧めします。希望に応じて、カスタム設定を作成できます。ロードバランサー設定をアップグレードする前に、新しいセキュリティポリシーをテストすることを強くお勧めします。

次の例は、HTTPS/SSL リスナーの SSL ネゴシエーション設定を更新する方法を示しています。変更は、ロードバランサーノードが受け取ったリクエスト及び正常なインスタンスへのルーティング待ちリクエストに影響を与えません。変更された設定は新規のリクエストに対して適用されます。

コンソールを使用した SSL ネゴシエーション設定の更新

デフォルトでは、Elastic Load Balancing は事前定義された最新のセキュリティポリシーをロードバランサーに関連付けます。新しい定義済みポリシーが追加された場合は、新しい定義済みポリシーを使用するようにロードバランサーを更新することをお勧めします。また、別の事前定義されたセキュリティポリシーやカスタムポリシーを選択することもできます。

HTTPS/SSL ロードバランサーの SSL ネゴシエーション設定を更新するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。

  3. ロードバランサーを選択します。

  4. [Listeners] タブで、[Cipher] の [Change] を選択します。

  5. [Select a Cipher] ページで、以下のいずれかのオプションを使用してセキュリティポリシーを選択します。

    • (推奨) [事前定義されたセキュリティポリシー] を選択し、デフォルトポリシーである ELBSecurityPolicy-2016-08 をそのまま使用して、[保存] を選択します。

    • [Predefined Security Policy] を選択し、デフォルト以外の事前定義されているポリシーを選択して、[Save] を選択します。

    • [Custom Security Policy] を選択し、次のようにプロトコルと暗号を少なくとも 1 つずつ有効にします。

      1. [SSL Protocols] で、有効にするプロトコルを 1 つ以上選択します。

      2. 事前定義された SSL セキュリティポリシー にリストされた順序で SSL ネゴシエーションに使用するには、[SSL Options] で [Server Order Preference] を選択します。

      3. [SSL Ciphers] で、有効にする暗号を 1 つ以上選択します。既に SSL 証明書がある場合、DSA および RSA 暗号化は署名アルゴリズムに固有になるため、その証明書を作成する際に使用した暗号を有効にする必要があります。

      4. [Save] を選択します。

AWS CLI を使用した SSL ネゴシエーション設定の更新

事前定義されたデフォルトのセキュリティポリシー ELBSecurityPolicy-2016-08、別の事前定義されたセキュリティポリシー、またはカスタムセキュリティポリシーを使用できます。

事前定義された SSL セキュリティポリシーを使用するには

  1. 次の describe-load-balancer-policies コマンドを使用して、Elastic Load Balancing に用意されている事前定義されたセキュリティポリシーを一覧表示します。

    aws elb describe-load-balancer-policies --query "PolicyDescriptions[?PolicyTypeName==`SSLNegotiationPolicyType`].{PolicyName:PolicyName}" --output table

    出力例を次に示します。

    ------------------------------------------ | DescribeLoadBalancerPolicies | +----------------------------------------+ | PolicyName | +----------------------------------------+ | ELBSecurityPolicy-2016-08 | | ELBSecurityPolicy-TLS-1-2-2017-01 | | ELBSecurityPolicy-TLS-1-1-2017-01 | | ELBSecurityPolicy-2015-05 | | ELBSecurityPolicy-2015-03 | | ELBSecurityPolicy-2015-02 | | ELBSecurityPolicy-2014-10 | | ELBSecurityPolicy-2014-01 | | ELBSecurityPolicy-2011-08 | | ELBSample-ELBDefaultCipherPolicy | | ELBSample-OpenSSLDefaultCipherPolicy | +----------------------------------------+

    ポリシーで有効な暗号を確認するには、次のコマンドを使用します。

    aws elb describe-load-balancer-policies --policy-names ELBSecurityPolicy-2016-08 --output table

    事前定義されたセキュリティポリシーの設定については、「事前定義された SSL セキュリティポリシー」を参照してください。

  2. create-load-balancer-policy コマンドを使用して、前のステップで一覧表示した、事前定義されたセキュリティポリシーのいずれかを利用する SSL ネゴシエーションのポリシーを作成します。たとえば、次のコマンドでは事前定義されたデフォルトのセキュリティポリシーが使用されます。

    aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType --policy-attributes AttributeName=Reference-Security-Policy,AttributeValue=ELBSecurityPolicy-2016-08

    ロードバランサーのポリシー数の制限を超えた場合は、delete-load-balancer-policy コマンドを使用して、未使用のポリシーを削除します。

  3. (オプション)次の describe-load-balancer-policies コマンドを使用して、ポリシーが作成されたことを確認します。

    aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy

    応答には、ポリシーの説明が含まれます。

  4. 次の set-load-balancer-policies-of-listener コマンドを使用して、ポリシーをロードバランサーのポート 443 で有効にします。

    aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy

    注記

    set-load-balancer-policies-of-listener コマンドは、指定されたロードバランサーのポートの現在のポリシーのセットを、指定されたポリシーのセットで上書きします。--policy-names リストには、有効にするすべてのポリシーを含める必要があります。現在有効なポリシーを省略すると、そのポリシーは無効になります。

  5. (オプション) 次の describe-load-balancers コマンドを使用して、新しいポリシーがロードバランサーのポートに対して有効になっていることを確認します。

    aws elb describe-load-balancers --load-balancer-name my-loadbalancer

    応答には、ポリシーがポート 443 で有効になっていることが示されます。

    ... { "Listener": { "InstancePort": 443, "SSLCertificateId": "ARN", "LoadBalancerPort": 443, "Protocol": "HTTPS", "InstanceProtocol": "HTTPS" }, "PolicyNames": [ "my-SSLNegotiation-policy" ] } ...

カスタムセキュリティポリシーを作成するとき、プロトコルと暗号を少なくとも 1 つずつ有効にする必要があります。DSA および RSA の暗号は署名アルゴリズムに固有であり、SSL 証明書を作成するために使用されます。すでに SSL 証明書がある場合は、証明書を作成するときに使用された暗号を有効にします。カスタムポリシーの名前は、ELBSecurityPolicy-ELBSample- で始めないでください。これらの プレフィックスは、事前定義されたセキュリティポリシーの名前用に予約されているためです。

カスタム SSL セキュリティポリシーを使用するには

  1. create-load-balancer-policy コマンドを使用して、カスタムセキュリティポリシーを利用する SSL ネゴシエーションのポリシーを作成します。(例:

    aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType --policy-attributes AttributeName=Protocol-TLSv1.2,AttributeValue=true AttributeName=Protocol-TLSv1.1,AttributeValue=true AttributeName=DHE-RSA-AES256-SHA256,AttributeValue=true AttributeName=Server-Defined-Cipher-Order,AttributeValue=true

    ロードバランサーのポリシー数の制限を超えた場合は、delete-load-balancer-policy コマンドを使用して、未使用のポリシーを削除します。

  2. (オプション)次の describe-load-balancer-policies コマンドを使用して、ポリシーが作成されたことを確認します。

    aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy

    応答には、ポリシーの説明が含まれます。

  3. 次の set-load-balancer-policies-of-listener コマンドを使用して、ポリシーをロードバランサーのポート 443 で有効にします。

    aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy

    注記

    set-load-balancer-policies-of-listener コマンドは、指定されたロードバランサーのポートの現在のポリシーのセットを、指定されたポリシーのセットで上書きします。--policy-names リストには、有効にするすべてのポリシーを含める必要があります。現在有効なポリシーを省略すると、そのポリシーは無効になります。

  4. (オプション) 次の describe-load-balancers コマンドを使用して、新しいポリシーがロードバランサーのポートに対して有効になっていることを確認します。

    aws elb describe-load-balancers --load-balancer-name my-loadbalancer

    応答には、ポリシーがポート 443 で有効になっていることが示されます。

    ... { "Listener": { "InstancePort": 443, "SSLCertificateId": "ARN", "LoadBalancerPort": 443, "Protocol": "HTTPS", "InstanceProtocol": "HTTPS" }, "PolicyNames": [ "my-SSLNegotiation-policy" ] } ...