Elastic Load Balancing
Application Load Balancer

Application Load Balancer の HTTPS リスナー

暗号化された接続を使用するリスナーを作成できます (SSL オフロードとも呼ばれます)。この機能によって、ロードバランサーと SSL あるいは TLS セッションを開始したクライアント間のトラフィックを暗号化できます。

HTTPS リスナーを使用するには、ロードバランサーに SSL/TLS サーバー証明書少なくとも 1 つデプロイする必要があります。ターゲットにリクエストを送信する前に、ロードバランサーはこの証明書を使用して接続を終了し、クライアントからのリクエストを復号します。

Elastic Load Balancing は、セキュリティポリシーと呼ばれる Secure Socket Layer (SSL) ネゴシエーション設定を使用して、クライアントとロードバランサー間の SSL 接続をネゴシエートします。セキュリティポリシーはプロトコルと暗号の組み合わせです。プロトコルは、クライアントとサーバーの間の安全な接続を確立し、クライアントとロードバランサーの間で受け渡しされるすべてのデータのプライバシーを保証します。暗号とは、暗号化キーを使用してコード化されたメッセージを作成する暗号化アルゴリズムです。プロトコルは、複数の暗号を使用し、インターネットを介してデータを暗号化します。接続ネゴシエーションのプロセスで、クライアントとロードバランサーでは、それぞれサポートされる暗号とプロトコルのリストが優先される順に表示されます。デフォルトでは、サーバーのリストで最初にクライアントの暗号と一致した暗号が安全な接続用に選択されます。

Application Load Balancer ではクライアントまたはターゲット接続の SSL 再ネゴシエーションはサポートされていません。

SSL 証明書

ロードバランサーは X.509 証明書 (SSL/TLS サーバー証明書) を使用します。証明書とは、認証機関 (CA) によって発行された識別用デジタル形式です。証明書には、認識用情報、有効期間、パブリックキー、シリアル番号と発行者のデジタル署名が含まれます。

ロードバランサーで使用する証明書を作成するときに、ドメイン名を指定する必要があります。

AWS Certificate Manager (ACM) を使用して、ロードバランサーの証明書を作成することをお勧めします。ACM は、Elastic Load Balancing と統合して、ロードバランサーに証明書をデプロイできます。詳細については、『AWS Certificate Manager ユーザーガイド』を参照してください。

また、SSL/TLS を使用して署名証明書リクエスト (CSR) を作成し、CA から CSR 署名を取得して証明書を発行し、ACM にこの証明書をインポートする、あるいは AWS Identity and Access Management (IAM) に証明書をアップロードすることもできます。ACM への証明書のインポートに関する詳細については、AWS Certificate Manager ユーザーガイドの「証明書のインポート」を参照してください。IAM にアップロードする証明書に関する詳細については、IAM ユーザーガイド の「サーバー証明書の使用」を参照してください。

重要

4096 ビット RSA キーまたは EC キーを使用する証明書を ACM との統合を介してロードバランサーにインストールすることはできません。4096 ビット RSA キーまたは EC キーを使用する証明書をロードバランサーで使用するには、IAM にアップロードする必要があります。

HTTPS リスナーを作成するには、デフォルトの証明書を指定する必要があります。別の証明書を追加することで、リスナーにオプションの証明書リストを作成できます。これによって、ロードバランサーが複数のドメインを同じポートでサポートし、各ドメインに別々の証明書を提供できます。リスナーのデフォルトの証明書は、デフォルトでは証明書リストに追加されません。詳細については、「サーバー証明書の更新」を参照してください。

クライアントは、Server Name Indication (SNI) プロトコル拡張子を使用して到達先のホスト名を指定します。ホスト名が証明書リストの証明書と一致しない場合、ロードバランサーはデフォルトの証明書を選択します。ホスト名が証明書リストの単一の証明書と一致する場合、ロードバランサーはその証明書を選択します。クライアントが提供するホスト名が証明書リストの複数の証明書と一致する場合、ロードバランサーはクライアントがサポートできる最適な証明書を選択します。証明書の選択は、次の条件と順序に基づいて行われます。

  • パブリックキーアルゴリズム (RSA よりも ECDSA が優先)

  • ハッシュアルゴリズム (MD5 よりも SHA が優先)

  • キーの長さ (最大が優先)

  • 有効期間

ロードバランサーアクセスログエントリは、クライアントが指定したホスト名とクライアントが提出する証明書を示します。詳細については、「アクセスログのエントリ」を参照してください。

セキュリティポリシー

フロントエンド接続に使用するセキュリティポリシーを選択できます。バックエンド接続には、常に ELBSecurityPolicy-2016-08 セキュリティポリシーが使用されます。Application Load Balancer はカスタムセキュリティポリシーをサポートしていません。

Elastic Load Balancing に用意されている Application Load Balancer 用のセキュリティポリシーは次のとおりです。

  • ELBSecurityPolicy-2016-08

  • ELBSecurityPolicy-FS-2018-06

  • ELBSecurityPolicy-TLS-1-2-2017-01

  • ELBSecurityPolicy-TLS-1-2-Ext-2018-06

  • ELBSecurityPolicy-TLS-1-1-2017-01

  • ELBSecurityPolicy-2015-05

  • ELBSecurityPolicy-TLS-1-0-2015-04

一般的な使用には ELBSecurityPolicy-2016-08 ポリシーをお勧めします。Forward Secrecy (FS) を必要とする場合は、ELBSecurityPolicy-FS-2018-06 ポリシーを使用できます。ELBSecurityPolicy-TLS ポリシーの 1 つを使用して、特定の TLS プロトコルバージョンを無効にする必要があるコンプライアンスおよびセキュリティ標準を満たすか、廃止された暗号を必要とするレガシークライアントをサポートできます。TLS バージョン 1.0 を必要とするのは、一部のインターネットクライアントのみです。ロードバランサーへのリクエストの TLS プロトコルバージョンを表示するには、ロードバランサーのアクセスログ記録を有効にして、アクセスログを調べます。詳細については、「アクセスログ」を参照してください。

次の表は、Application Load Balancer に定義されたセキュリティポリシーについて示しています。

セキュリティポリシー 2016-08 * FS-2018-06 TLS-1-2 TLS-1-2-Ext TLS-1-1 TLS-1-0 †
TLS Protocols

Protocol-TLSv1

Protocol-TLSv1.1

Protocol-TLSv1.2

TLS Ciphers

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

DES-CBC3-SHA

* Application Load Balancer の ELBSecurityPolicy-2016-08 および ELBSecurityPolicy-2015-05 のセキュリティポリシーは同じです。

† DES-CBC3-SHA 暗号 (弱い暗号) を必要とするレガシークライアントをサポートする必要がない限り、このセキュリティポリシーは使用しないでください。

AWS CLI を使用して、Application Load Balancer のセキュリティポリシーの設定を表示するには、describe-ssl-policies コマンドを使用します。

セキュリティポリシーの更新

HTTPS リスナーを作成するときに、ニーズを満たすセキュリティポリシーを選択できます。新しいセキュリティのポリシーを追加したら、HTTPS リスナーを更新して新しいセキュリティポリシーを使用できます。Application Load Balancer はカスタムセキュリティポリシーをサポートしていません。

コンソールを使用してセキュリティポリシーを更新するには

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

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

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

  4. HTTPS リスナーのチェックボックスを選択して、[編集] を選択します。

  5. [Security policy (セキュリティポリシー)] で、セキュリティポリシーを選択します。

  6. [Update] を選択します。

AWS CLI を使用してセキュリティポリシーを更新するには

modify-listener コマンドを使用します。