Network Load Balancer (NLB) インスタンスの TCP/SSL リスナーを設定する場合、TLS セキュリティポリシーによって、クライアントとの TLS ハンドシェイク中にインスタンスがサポートする TLS プロトコルのバージョンと暗号スイートが決まります。NLB は、選択可能なシステム定義のセキュリティポリシーをいくつか提供します。特定のセキュリティまたはコンプライアンス要件があるユースケースでは、代わりにカスタムセキュリティポリシーを作成します。
仕組み
NLB インスタンスで設定された TLS セキュリティポリシーは、NLB インスタンスがサポートする TLS プロトコルのバージョンと暗号スイートを定義します。TLS ハンドシェイク中、クライアントはサポートされているプロトコルバージョンと暗号スイートのリストを Client Hello メッセージで送信します。NLB インスタンスは、セキュリティポリシーに基づいて相互にサポートされているプロトコルバージョンと暗号スイートを選択し、Server Hello メッセージで応答します。その後のステップ、例えばキー交換やセッションキーの生成では、これらのネゴシエートされたパラメーターが使用されます。
デフォルトポリシー
特別な互換性要件のないインターネット向けアプリケーションでは、tls_cipher_policy_1_2 またはそれ以上のバージョンを使用することをお勧めします。
コンソール
NLB コンソールの [TLS セキュリティポリシー] ページに移動し、[デフォルトポリシー] タブでポリシーの詳細を表示します。
API
ListSystemSecurityPolicy 操作を呼び出して、デフォルトポリシーをリストします。
カスタムポリシー
カスタムポリシーの作成
コンソール
NLB コンソールの [TLS セキュリティポリシー] ページに移動し、NLB インスタンスが配置されているリージョンを選択します。
[カスタムポリシーの作成] をクリックし、次のパラメーターを設定してから、[作成] をクリックします。
最小バージョン: ワークロードに特別な互換性のニーズがない場合は、セキュリティを強化するために [TLS 1.2 以降] を選択します。
TLS 1.3 を有効にする: 互換性のあるサービスの場合、このオプションを有効にしてセキュリティとパフォーマンスを向上させます。
暗号スイート: 選択した TLS バージョンと互換性のある暗号スイートを選択します。
ポリシーが作成された後、リスナーの TLS セキュリティポリシーを設定する ときに選択できます。
API
CreateSecurityPolicy 操作を呼び出して、カスタムポリシーを作成します。カスタムポリシーは、NLB インスタンスと同じリージョンにある必要があることに注意してください。
カスタムポリシー属性の更新
コンソール
NLB コンソールの [TLS セキュリティポリシー] ページに移動し、カスタムポリシーのリージョンを選択します。
ターゲットのカスタムポリシーを見つけ、[アクション] 列の [変更] をクリックします。[TLS セキュリティポリシーの変更] ダイアログボックスで、TLS バージョンまたは暗号スイートを更新します。
API
UpdateSecurityPolicyAttribute 操作を呼び出して、カスタムポリシーの属性を更新します。
カスタムポリシーを別のリージョンに複製する
コンソール
NLB コンソールの [TLS セキュリティポリシー] ページに移動し、カスタムポリシーのリージョンを選択します。
ターゲットのカスタムポリシーを見つけ、[アクション] 列の [他のリージョンに複製] をクリックします。ターゲットリージョンを選択し、[OK] をクリックします。
API
ListSecurityPolicy 操作を呼び出して、カスタムポリシーから TlsVersion および Ciphers パラメーターの値を取得します。次に、CreateSecurityPolicy を呼び出して新しいカスタムポリシーを作成し、取得した値を渡して、リクエストで RegionId をターゲットリージョンの ID に設定します。
カスタムポリシーの削除
カスタムポリシーはリスナーによって使用されている間は削除できません。ポリシーを削除するには、まずリスナーの TLS セキュリティポリシーを変更するか、リスナーを削除する必要があります。
コンソール
NLB コンソールの [TLS セキュリティポリシー] ページに移動し、カスタムポリシーのリージョンを選択します。
ターゲットのカスタムポリシーを見つけ、[アクション] 列の [削除] をクリックし、[OK] をクリックします。
API
DeleteSecurityPolicy 操作を呼び出して、カスタムポリシーを削除します。
リスナーの TLS セキュリティポリシーを設定する
コンソール
TCP/SSL リスナーを作成する 際、[SSL 証明書の設定] ステップまたは [リスナーのクイック作成] ダイアログボックスで [TLS セキュリティポリシー] を選択します。
リスナーの TLS セキュリティポリシーを変更する には、インスタンス詳細ページの [リスナー] タブに移動します。ターゲットリスナーの ID をクリックして [リスナー詳細] ページに移動します。[SSL 証明書] セクションで、[TLS セキュリティポリシー] を変更します。
API
CreateListener 操作を呼び出して TCP/SSL リスナーを作成するか、UpdateListenerAttribute を呼び出して TCP/SSL リスナーの構成を更新する際に、SecurityPolicyId パラメーターを TLS セキュリティポリシーの ID に設定します。
ListSystemSecurityPolicy を呼び出して、デフォルトポリシーの
SecurityPolicyIdをクエリします。ListSecurityPolicy を呼び出して、カスタムポリシーの
SecurityPolicyIdをクエリします。
課金
TLS セキュリティポリシーは無料です。使用した NLB インスタンスに対してのみ課金されます。詳細については、「NLB 課金ルール」をご参照ください。
本番環境での適用
バックエンドトラフィックのセキュリティ: クライアントと NLB インスタンス間のトラフィックは SSL over TCP を使用して暗号化されますが、NLB インスタンスとそのバックエンドサーバー間のトラフィックは、デフォルトでは暗号化されていません (プレーンテキスト)。エンドツーエンドのセキュリティを確保するには、NLB インスタンスとバックエンドサーバーを同じ VPC にデプロイし、セキュリティグループやその他のポリシーを使用してアクセスを厳密に制御します。
TLS バージョン: アプリケーションに特別な互換性要件がない場合は、セキュリティを強化するために TLS 1.2 および TLS 1.3 を使用します。
変更のロールバック: リスナーの TLS セキュリティポリシーを変更した後に問題が発生した場合は、以前のポリシーに戻します。潜在的なサービスの中断を最小限に抑えるために、オフピーク時にこのような変更を実行します。