Network Load Balancer (NLB) インスタンスの TCP/SSL リスナーを設定する際、TLS セキュリティポリシーは、クライアントとの TLS ハンドシェイク中にインスタンスが使用する TLS プロトコルバージョンと暗号スイートを指定します。NLB は、一般的に使用されるシステム定義のセキュリティポリシーをいくつか提供しています。特定のセキュリティ要件やコンプライアンス要件がある場合は、代わりにカスタムセキュリティポリシーを作成することもできます。
仕組み
NLB インスタンスは、TLS セキュリティポリシーを使用して、TLS ハンドシェイクのための TLS プロトコルバージョンと暗号スイートを指定します。ハンドシェイク中、クライアントはサポートするプロトコルバージョンと暗号スイートをリストした `Client Hello` メッセージを送信します。ポリシーに基づき、NLB インスタンスはクライアントのリストから相互にサポートされるプロトコルバージョンと暗号スイートを選択し、`Server Hello` 応答でその選択を確定します。その後のキー交換やセッションキーの生成などのステップでは、これらのネゴシエートされたパラメーターが使用されます。
デフォルトポリシー
特別な互換性要件のないインターネット向けアプリケーションには、tls_cipher_policy_1_2 ポリシーまたはそれ以降のポリシーを使用してください。
コンソール
NLB コンソールの [TLS セキュリティポリシー] ページに移動します。ポリシーの詳細は デフォルトポリシー タブにあります。
API
ListSystemSecurityPolicy 操作を呼び出して、デフォルトポリシーを取得します。
カスタムポリシー
カスタムポリシーの作成
コンソール
-
Network Load Balancer (NLB) コンソールの [TLS セキュリティポリシー] ページに移動し、NLB インスタンスがデプロイされているリージョンを選択します。
-
カスタムポリシーの作成 をクリックします。次のパラメーターを設定し、作成 をクリックします。
-
最低バージョン:ご利用のワークロードに特別な互換性要件がない場合は、セキュリティを強化するために TLS 1.2 以降 を選択することを推奨します。
-
TLS1.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 セキュリティポリシー を選択します。TCP/SSL リスナーをクイック作成する際、リスナーのクイック作成 ダイアログボックスで TLS セキュリティポリシー を選択します。
-
リスナーの TLS セキュリティポリシーを更新するには、インスタンス詳細ページの リスナー タブに移動し、TCP/SSL リスナーの ID をクリックします。リスナー詳細 ページで、SSL 証明書 セクションの TLS セキュリティポリシー を更新します。
API
CreateListener 操作を呼び出して TCP/SSL リスナーを作成するか、UpdateListenerAttribute 操作を呼び出して TCP/SSL リスナーを更新する際に、SecurityPolicyId パラメーターを TLS セキュリティポリシーの ID に設定します。
-
ListSystemSecurityPolicy 操作を呼び出して、デフォルトポリシーの
SecurityPolicyIdを取得します。 -
ListSecurityPolicy 操作を呼び出して、カスタムポリシーの
SecurityPolicyIdを取得します。
課金
TLS セキュリティポリシーは無料です。ただし、使用する NLB インスタンスに対しては課金されます。詳細については、「NLB の課金ルール」をご参照ください。
本番環境
-
バックエンドトラフィックのセキュリティ:クライアントと NLB 間のトラフィックは TCP/SSL を使用して暗号化されますが、NLB とそのバックエンドサーバー間のトラフィックはデフォルトでプレーンテキストです。エンドツーエンドのセキュリティを確保するためには、NLB とそのバックエンドサーバーを同じ VPC にデプロイし、セキュリティグループを使用してアクセスを厳密に制御してください。
-
TLS バージョン:ご利用のアプリケーションに特定の互換性要件がない限り、より強力なセキュリティのために TLS 1.2 および TLS 1.3 を使用してください。
-
変更のロールバック:TLS セキュリティポリシーの変更後に問題が発生した場合は、リスナーの設定を更新して直ちに変更をロールバックしてください。これらの変更は、オフピーク時に行うことを推奨します。
-
鍵交換アルゴリズム:ご利用のアプリケーションに特定の互換性要件がない限り、本番環境では次の RSA ベースの暗号スイートの使用を避けてください:
AES128-GCM-SHA256、AES256-GCM-SHA384、AES128-SHA256、AES256-SHA256、AES128-SHA、AES256-SHA、およびDES-CBC3-SHA。これらのスイートは Perfect Forward Secrecy (PFS) を欠いており、サイドチャネル攻撃に対して脆弱です。ECDHE または DHE のキー交換を含む暗号スイートを優先してください。
TLS 暗号スイートのリファレンス
この表は、各暗号スイートを対応する OpenSSL 形式、IANA 標準形式、および 16 進数表現にマッピングしています。