翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Application Load Balancer のHTTPSリスナーを作成する
リスナーは、接続リクエストをチェックします。ロードバランサーを作成するときにリスナーを定義し、いつでもロードバランサーにリスナーを追加できます。
HTTPS リスナーを作成するには、ロードバランサーに少なくとも 1 つのSSLサーバー証明書をデプロイする必要があります。ロードバランサーはサーバー証明書を使用してフロントエンド接続を終了してから、ターゲットにリクエストを送信する前に、クライアントからのリクエストを復号します。また、クライアントとロードバランサー間の安全な接続をネゴシエートするために使用されるセキュリティポリシーも指定する必要があります。
ロードバランサーが復号化せずに暗号化されたトラフィックをターゲットに渡す必要がある場合は、ポート 443 でTCPリスナーを使用して Network Load Balancer または Classic Load Balancer を作成できます。TCP リスナーでは、ロードバランサーは暗号化されたトラフィックを復号化せずにターゲットに渡します。
Application Load Balancer はED25519キーをサポートしていません。
このページの情報は、ロードバランサーのHTTPSリスナーを作成するのに役立ちます。ロードバランサーにHTTPリスナーを追加するには、「」を参照してくださいApplication Load Balancer のHTTPリスナーを作成する。
目次
SSL 証明書
ロードバランサーには X.509 証明書 (SSL/TLS サーバー証明書) が必要です。証明書とは、認証機関 (CA) によって発行された識別用デジタル形式です。証明書には、認識用情報、有効期間、パブリックキー、シリアル番号と発行者のデジタル署名が含まれます。
ロードバランサーで使用する証明書を作成するときに、ドメイン名を指定する必要があります。TLS 接続を検証できるように、証明書のドメイン名はカスタムドメイン名レコードと一致する必要があります。一致しない場合、トラフィックは暗号化されません。
証明書には、 などの完全修飾ドメイン名 (FQDN) www.example.com
または などの apex ドメイン名を指定する必要がありますexample.com
。また、同じドメインで複数のサイト名を保護するために、アスタリスク (*) をワイルドカードとして使用できます。ワイルドカード証明書をリクエストする場合、アスタリスク (*) はドメイン名の一番左の位置に付ける必要があり、1 つのサブドメインレベルのみを保護できます。例えば、*.example.com
は corp.example.com
、images.example.com
を保護しますが、test.login.example.com
を保護することはできません。また、*.example.com
は、example.com
のサブドメインのみを保護し、ネイキッドドメインまたは apex ドメイン (example.com
) は保護しないことに注意してください。ワイルドカード名は、証明書の [サブジェクト] フィールドと [サブジェクト代替名] 拡張子に表示されます。公開証明書の詳細については、AWS Certificate Manager ユーザーガイドの「公開証明書」を参照してください。
AWS Certificate Manager (ACM)
または、SSL/TLS ツールを使用して証明書署名リクエストを作成し (CSR)、CA によってCSR署名された を取得して証明書を生成し、証明書を にインポートACMするか、 AWS Identity and Access Management () にアップロードすることもできますIAM。への証明書のインポートの詳細についてはACM、「 AWS Certificate Manager ユーザーガイド」の「証明書のインポート」を参照してください。への証明書のアップロードの詳細についてはIAM、「 IAMユーザーガイド」の「サーバー証明書の使用」を参照してください。
デフォルトの証明書
HTTPS リスナーを作成するときは、証明書を 1 つだけ指定する必要があります。この証明書は、default certificate として知られています。HTTPS リスナーを作成した後、デフォルトの証明書を置き換えることができます。詳細については、「デフォルトの証明書の置き換え」を参照してください。
証明書リスト で追加の証明書を指定する場合、デフォルトの証明書は、クライアントが Server Name Indication (SNI) プロトコルを使用してホスト名を指定せずに接続する場合、または証明書リストに一致する証明書がない場合にのみ使用されます。
追加の証明書を指定せずに、単一のロードバランサーを介して複数の安全なアプリケーションをホストする必要がある場合は、ワイルドカード証明書を使用するか、追加のドメインごとにサブジェクト代替名 (SAN) を証明書に追加できます。
証明書リスト
HTTPS リスナーを作成すると、デフォルトの証明書と空の証明書リストが作成されます。リスナーの証明書リストに証明書を追加することもできます。証明書リストを使用すると、ロードバランサーは同じポートで複数のドメインをサポートし、ドメインごとに異なる証明書を提供できます。詳細については、「証明書リストに証明書を追加する」を参照してください。
ロードバランサーは、 をサポートするスマート証明書選択アルゴリズムを使用しますSNI。クライアントから提供されたホスト名が証明書リスト内の単一の証明書と一致する場合、ロードバランサーはこの証明書を選択します。クライアントが提供するホスト名が証明書リストの複数の証明書と一致する場合、ロードバランサーはクライアントがサポートできる最適な証明書を選択します。証明書の選択は、次の条件と順序に基づいて行われます。
-
パブリックキーアルゴリズム ( ECDSAよりも優先RSA)
-
ハッシュアルゴリズム ( SHAよりも優先MD5)
-
キーの長さ (最大が優先)
-
有効期間
ロードバランサーアクセスログエントリは、クライアントが指定したホスト名とクライアントが提出する証明書を示します。詳細については、「アクセスログのエントリ」を参照してください。
証明書の更新
各証明書には有効期間が記載されています。有効期間が終了する前に、必ずロードバランサーの各証明書を更新するか、置き換える必要があります。これには、デフォルトの証明書と証明書リスト内の証明書が含まれます。証明書を更新または置き換えしても、ロードバランサーノードが受信し、正常なターゲットへのルーティングを保留中の未処理のリクエストには影響しません。証明書更新後、新しいリクエストは更新された証明書を使用します。証明書置き換え後、新しいリクエストは新しい証明書を使用します。
証明書の更新と置き換えは次のとおりに管理できます。
-
によって提供され AWS Certificate Manager 、ロードバランサーにデプロイされた証明書は、自動的に更新できます。ACM は有効期限が切れる前に証明書を更新しようとします。詳細については、AWS Certificate Manager ユーザーガイドの 管理された更新 を参照してください。
-
証明書を にインポートした場合はACM、証明書の有効期限をモニタリングし、有効期限が切れる前に更新する必要があります。詳細については、AWS Certificate Manager ユーザーガイドの 証明書のインポート を参照してください。
-
証明書を にインポートした場合はIAM、新しい証明書を作成し、新しい証明書を ACMまたは にインポートしIAM、新しい証明書をロードバランサーに追加して、期限切れの証明書をロードバランサーから削除する必要があります。
セキュリティポリシー
Elastic Load Balancing は、セキュリティポリシーと呼ばれる Secure Socket Layer (SSL) ネゴシエーション設定を使用して、クライアントとロードバランサー間のSSL接続をネゴシエートします。セキュリティポリシーはプロトコルと暗号の組み合わせです。プロトコルは、クライアントとサーバーの間の安全な接続を確立し、クライアントとロードバランサーの間で受け渡しされるすべてのデータのプライバシーを保証します。暗号とは、暗号化キーを使用してコード化されたメッセージを作成する暗号化アルゴリズムです。プロトコルは、複数の暗号を使用し、インターネットを介してデータを暗号化します。接続ネゴシエーションのプロセスで、クライアントとロードバランサーでは、それぞれサポートされる暗号とプロトコルのリストが優先される順に表示されます。デフォルトでは、サーバーのリストで最初にクライアントの暗号と一致した暗号が安全な接続用に選択されます。
考慮事項:
-
Application Load Balancer は、ターゲット接続SSLの再ネゴシエーションのみをサポートします。
-
Application Load Balancer は、カスタムセキュリティポリシーをサポートしていません。
-
ELBSecurityPolicy-TLS13-1-2-2021-06
ポリシーは、 を使用して作成されたHTTPSリスナーのデフォルトのセキュリティポリシーです AWS Management Console。 -
ELBSecurityPolicy-2016-08
ポリシーは、 を使用して作成されたHTTPSリスナーのデフォルトのセキュリティポリシーです AWS CLI。 -
HTTPS リスナーを作成するときは、セキュリティポリシーを選択する必要があります。
-
1.3 を含み、1.TLS2 TLS と下位互換性がある
ELBSecurityPolicy-TLS13-1-2-2021-06
セキュリティポリシーをお勧めします。
-
-
フロントエンド接続に使用されるセキュリティポリシーを選択できますが、バックエンド接続には選択できません。
-
バックエンド接続では、HTTPSリスナーのいずれかが TLS 1.3 セキュリティポリシーを使用している場合、
ELBSecurityPolicy-TLS13-1-0-2021-06
セキュリティポリシーが使用されます。それ以外の場合、バックエンド接続にはELBSecurityPolicy-2016-08
セキュリティポリシーが使用されます。
-
-
特定のTLSプロトコルバージョンの無効化を必要とするコンプライアンスおよびセキュリティ標準を満たすため、または非推奨の暗号を必要とするレガシークライアントをサポートするには、いずれかの
ELBSecurityPolicy-TLS-
セキュリティポリシーを使用できます。Application Load Balancer へのリクエストのTLSプロトコルバージョンを表示するには、ロードバランサーのアクセスログ記録を有効にし、対応するアクセスログエントリを調べます。詳細については、Application Load Balancer のアクセスログ」を参照してください。 -
AWS アカウント および AWS Organizations のサービスコントロールポリシー (SCPs) でそれぞれ Elastic Load Balancing 条件キーを使用することで、 IAMおよび 全体のユーザーが利用できるセキュリティポリシーを制限できます。詳細については、「 ユーザーガイド」の「サービスコントロールポリシー (SCPs)AWS Organizations 」を参照してください。
-
Application Load Balancer はPSK、 (TLS 1.3) とセッションIDs/セッションチケット (TLS 1.2 以前) を使用したTLS再開をサポートしています。再開は、同じ Application Load Balancer IP アドレスへの接続でのみサポートされます。0-RTT データ機能と early_data 拡張機能は実装されていません。
TLS 1.3 セキュリティポリシー
Elastic Load Balancing では、Application Load Balancer TLS に次の 1.3 セキュリティポリシーが用意されています。
-
ELBSecurityPolicy-TLS13-1-2-2021-06
(推奨) -
ELBSecurityPolicy-TLS13-1-2-Res-2021-06
-
ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06
-
ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06
-
ELBSecurityPolicy-TLS13-1-1-2021-06
-
ELBSecurityPolicy-TLS13-1-0-2021-06
-
ELBSecurityPolicy-TLS13-1-3-2021-06
FIPS セキュリティポリシー
重要
Application Load Balancer にアタッチされたすべてのセキュアリスナーは、FIPSセキュリティポリシーまたは非FIPSセキュリティポリシーのいずれかを使用する必要があります。これらを混在させることはできません。既存の Application Load Balancer に 以外のポリシーを使用するリスナーが 2 FIPSつ以上あり、代わりにリスナーにFIPSセキュリティポリシーを使用させたい場合は、1 つだけになるまですべてのリスナーを削除します。リスナーのセキュリティポリシーを に変更しFIPS、FIPSセキュリティポリシーを使用して追加のリスナーを作成します。または、FIPSセキュリティポリシーのみを使用して、新しいリスナーを持つ新しい Application Load Balancer を作成することもできます。
連邦情報処理規格 (FIPS) は、機密情報を保護する暗号化モジュールのセキュリティ要件を指定する米国およびカナダ政府の規格です。詳細については、 AWS クラウドセキュリティコンプライアンスページの「連邦情報処理規格 (FIPS) 140
すべてのFIPSポリシーは、AWS-LC FIPS検証済み暗号化モジュールを活用します。詳細については、暗号化モジュール検証プログラムサイトの AWS-LC
Elastic Load Balancing は、Application Load Balancer に次のFIPSセキュリティポリシーを提供します。
-
ELBSecurityPolicy-TLS13-1-3-FIPS-2023-04
-
ELBSecurityPolicy-TLS13-1-2-Res-FIPS-2023-04
-
ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04
(推奨) -
ELBSecurityPolicy-TLS13-1-2-Ext0-FIPS-2023-04
-
ELBSecurityPolicy-TLS13-1-2-Ext1-FIPS-2023-04
-
ELBSecurityPolicy-TLS13-1-2-Ext2-FIPS-2023-04
-
ELBSecurityPolicy-TLS13-1-1-FIPS-2023-04
-
ELBSecurityPolicy-TLS13-1-0-FIPS-2023-04
FS がサポートするポリシー
Elastic Load Balancing では、Application Load Balancer に対して以下の FS (フォワードシークレット) がサポートするセキュリティポリシーが用意されています。
-
ELBSecurityPolicy-FS-1-2-Res-2020-10
-
ELBSecurityPolicy-FS-1-2-Res-2019-08
-
ELBSecurityPolicy-FS-1-2-2019-08
-
ELBSecurityPolicy-FS-1-1-2019-08
-
ELBSecurityPolicy-FS-2018-06
TLS 1.0~1.2 セキュリティポリシー
Elastic Load Balancing TLS では、Application Load Balancer に次の 1.0~1.2 セキュリティポリシーが用意されています。
-
ELBSecurityPolicy-TLS-1-2-Ext-2018-06
-
ELBSecurityPolicy-TLS-1-2-2017-01
-
ELBSecurityPolicy-TLS-1-1-2017-01
-
ELBSecurityPolicy-2016-08
-
ELBSecurityPolicy-TLS-1-0-2015-04
-
ELBSecurityPolicy-2015-05
( と同じELBSecurityPolicy-2016-08
)
TLS プロトコルと暗号
HTTPS リスナーを追加する
クライアントからロードバランサーへの接続用のプロトコルとポート、およびデフォルトのリスナールールのターゲットグループでリスナーを設定します。詳細については、「リスナーの設定」を参照してください。
前提条件
-
HTTPS リスナーを作成するには、証明書とセキュリティポリシーを指定する必要があります。ターゲットにリクエストをルーティングする前に、ロードバランサーはこの証明書を使用して接続を終了し、クライアントからのリクエストを復号します。ロードバランサーは、クライアントとSSLの接続をネゴシエートするときにセキュリティポリシーを使用します。
-
転送アクションをデフォルトのリスナールールに追加するには、利用可能なターゲットグループを指定する必要があります。詳細については、「Application Load Balancer のターゲットグループを作成する」を参照してください。
-
複数のリスナーで同じターゲットグループを指定できますが、これらのリスナーは同じロードバランサーに属している必要があります。ロードバランサーでターゲットグループを使用するには、ターゲットグループが他のロードバランサーのリスナーによって使用されていないことを確認する必要があります。
コンソールを使用してHTTPSリスナーを追加するには
で Amazon EC2コンソールを開きますhttps://console.aws.amazon.com/ec2/
。 -
ナビゲーションペインで、[ロードバランサー] を選択します。
-
ロードバランサーを選択します。
-
[リスナーとルール] タブから、[リスナーの追加] を選択します。
-
プロトコル : ポート で、デフォルトのポートを選択してHTTPS保持するか、別のポートを入力します。
-
(オプション) 認証を有効にするには、[認証] で [OpenID または Amazon Cognito を使用する] を選択し、要求された情報を提供してください。詳細については、「Application Load Balancer を使用してユーザーを認証する」を参照してください。
-
[Default actions (デフォルトアクション)] で、次のいずれかを実行します。
-
[ターゲットグループへ転送] — トラフィックを転送するターゲットグループを 1 つ以上選択します。ターゲットグループを追加するには、[ターゲットグループの追加] を選択します。複数のターゲットグループを使用している場合は、ターゲットグループごとに重みを選択し、それに関連付けられている割合を確認します。1 つ以上のターゲットグループに対して維持設定を有効にしている場合は、ルールのグループレベルの維持設定を有効にする必要があります。
-
リダイレクト先 URL — クライアントリクエストURLがリダイレクトされる を指定します。これは、パートタブに各URIパートを個別に入力するか、フルURLタブに完全なアドレスを入力することで実行できます。ステータスコードでは、必要に応じてリダイレクトを一時 (HTTP 302) または永続 (HTTP 301) として設定できます。
-
[固定レスポンスを返す] — ドロップされたクライアントリクエストに対して返される [レスポンスコード] を指定します。[コンテンツタイプ] と [レスポンス本文] の指定もできますが、これは必須ではありません。
-
-
[セキュリティポリシー] では、常に最新の事前定義されたセキュリティポリシーを使用することをお勧めします。
-
デフォルトSSL/TLS証明書 では、次のオプションを使用できます。
-
を使用して証明書を作成またはインポートした場合は AWS Certificate Manager、 から ACMを選択し、証明書の選択 から証明書を選択します。
-
を使用して証明書をインポートした場合はIAM、IAM「」を選択し、「証明書の選択」から証明書を選択します。
-
インポートする証明書があるが、リージョンで利用ACMできない場合は、インポート を選択し、 へ IAMを選択します。[証明書名] フィールドに証明書の名前を入力します。証明書プライベートキー で、プライベートキーファイルの内容をコピーして貼り付けます (PEMエンコード)。証明書本文 で、パブリックキー証明書ファイルの内容をコピーして貼り付けます (PEMエンコード)。Certificate Chain で、自己署名証明書を使用していて、ブラウザが証明書を暗黙的に受け入れることが重要ではない場合を除き、証明書チェーンファイルの内容をコピーして貼り付けます (PEMエンコード)。
-
-
(オプション) 相互認証を有効にするには、クライアント証明書処理で相互認証 (m TLS) を有効にします。
有効にすると、デフォルトの相互TLSモードはパススルー になります。
Trust Store で検証 を選択した場合:
-
デフォルトでは、期限切れのクライアント証明書を持つ接続は拒否されます。この動作を変更するには、アドバンスト mTLS 設定 を展開し、クライアント証明書の有効期限 で、期限切れのクライアント証明書を許可する を選択します。
-
Trust Store で既存の信頼ストアを選択するか、新しい信頼ストア を選択します。
-
新しい信頼ストア を選択した場合は、信頼ストア名 、S3 URI認証局の場所 、およびオプションで S3 URI証明書失効リストの場所 を指定します。
-
-
-
[Save] を選択します。
を使用してHTTPSリスナーを追加するには AWS CLI
create-listener コマンドを使用してリスナーとデフォルトのルールを作成し、create-rule コマンドを使用して追加のリスナールールを定義します。