Application Load Balancer (ALB) の HTTPS リスナーを設定する際、TLS セキュリティポリシーは、クライアントとの TLS ネゴシエーション中に ALB が受け入れる TLS プロトコルバージョンと暗号スイートを指定します。ALB は、さまざまなセキュリティと互換性の要件を満たすために、いくつかの事前定義されたポリシーを提供します。特定の要件に対応するには、カスタム TLS セキュリティポリシーを使用します。
仕組み
ALB の TLS セキュリティポリシーは、TLS ネゴシエーション中にサポートする TLS プロトコルバージョンと暗号スイートを定義します。ハンドシェイク中、クライアントはサポートするプロトコルバージョンと暗号スイートをリストした Client Hello メッセージを送信します。ALB はこのリストをポリシーと照合し、相互にサポートされるプロトコルバージョンと暗号スイートの組み合わせを選択し、Server Hello で応答します。この選択により、キー交換やセッションキー生成など、後続のすべてのステップが決定されます。
デフォルトポリシー
さまざまな情報セキュリティ基準で、ALB の TLS セキュリティポリシーに関する要件が指定される場合があります。以下の表を展開して、デフォルトポリシーでサポートされている TLS プロトコルバージョンと暗号スイートを表示し、必要に応じて設定できます。デフォルトポリシーが要件を満たさない場合は、カスタムポリシーを作成できます。
-
tls_cipher_policy_1_0_to_1_3ポリシーは、ALB 拡張エディションインスタンスでのみサポートされています。 -
特別な互換性要件のないインターネット向けアプリケーションでは、
tls_cipher_policy_1_2ポリシーまたはそれより厳格なポリシーの使用を推奨します。
コンソール
ALB コンソールで、TLS セキュリティポリシーページに移動し、デフォルトポリシー タブを選択して各ポリシーの詳細を表示します。
API
ListSystemSecurityPolicies 操作を呼び出して、デフォルトポリシーを取得します。
カスタムポリシー
カスタムポリシーは、標準版および WAF 有効版の ALB インスタンスでのみ利用可能です。
カスタムポリシーの作成
コンソール
-
ALB コンソールの TLS セキュリティポリシーページに移動し、ご利用の ALB インスタンスのリージョンを選択します。
-
カスタムポリシーの作成 をクリックし、ポリシーを設定してから 作成 をクリックします。
-
最低バージョン:セキュリティを強化するため、アプリケーションで特に必要とされない限り、TLS 1.2 以降 を選択することを推奨します。
-
TLS1.3 の有効化:セキュリティとパフォーマンスを強化するため、アプリケーションと互換性がある場合はこのオプションを有効にすることを推奨します。
-
暗号スイート:選択した暗号スイートは、選択した TLS プロトコルバージョンと互換性がある必要があります。
-
-
カスタムポリシーを作成した後、リスナーの TLS セキュリティポリシーを設定する際に選択できます。
API
CreateSecurityPolicy 操作を呼び出してカスタムポリシーを作成します。カスタムポリシーは、ALB インスタンスと同じリージョンにある必要があります。
HTTPS 暗号化に SM アルゴリズム証明書を使用するには、カスタムポリシーを作成する際に SM アルゴリズム暗号スイート (ECC-SM2-WITH-SM4-SM3) を選択します。詳細については、「ALB での安全な通信のために SM ベースの HTTPS を設定する」をご参照ください。
TLS バージョンと暗号スイートの更新
コンソール
-
ALB コンソールの TLS セキュリティポリシーページに移動し、カスタムポリシーのリージョンを選択します。
-
カスタムポリシーを見つけ、操作 列の 編集 をクリックし、TLS セキュリティポリシーの変更 ダイアログボックスで TLS プロトコルバージョンと暗号スイートを更新します。
API
UpdateSecurityPolicyAttribute 操作を呼び出して、カスタムポリシーの属性を更新します。
カスタムポリシーの他リージョンへのコピー
コンソール
-
ALB コンソールの TLS セキュリティポリシーページに移動し、カスタムポリシーのリージョンを選択します。
-
カスタムポリシーを見つけ、操作 列の 他のリージョンへレプリケーション をクリックし、ターゲットリージョンを選択してから OK をクリックします。
API
ListSecurityPolicies 操作を呼び出して、ソースポリシーから TLSVersions と Ciphers パラメーターを取得します。次に、CreateSecurityPolicy 操作を呼び出し、これらのパラメーターを渡してターゲットリージョンにポリシーを作成します。
カスタムポリシーの削除
リスナーで使用されているカスタムポリシーは削除できません。削除するには、まずリスナーの TLS セキュリティポリシーを変更するか、リスナーを削除する必要があります。
コンソール
-
ALB コンソールの TLS セキュリティポリシーページに移動し、カスタムポリシーのリージョンを選択します。
-
カスタムポリシーを見つけ、操作 列の 削除 をクリックし、次に OK をクリックします。
API
DeleteSecurityPolicy 操作を呼び出して、カスタムポリシーを削除します。
TLS セキュリティポリシーの設定
ALB 拡張版インスタンスは現在、システムデフォルトポリシー tls_cipher_policy_1_0_to_1_3 のみをサポートしています。
コンソール
-
HTTPS リスナーを作成する際、SSL 証明書の設定 タブで TLS セキュリティポリシー を選択します。HTTPS リスナーを迅速に作成する際、リスナーのクイック作成 ダイアログボックスで TLS セキュリティポリシー を選択します。
-
TLS セキュリティポリシーを更新するには:インスタンス詳細ページの リスナー タブで、対象の HTTPS リスナーの ID をクリックして リスナーの詳細 ページを開きます。SSL 証明書 エリアで、TLS セキュリティポリシー を更新します。
API
CreateListener を呼び出して HTTPS リスナーを作成するか、UpdateListenerAttribute を呼び出して HTTPS リスナーを更新する際に、SecurityPolicyId パラメーターで TLS セキュリティポリシーを渡します。
-
ListSystemSecurityPolicies を呼び出して、システムポリシーの
SecurityPolicyIdを取得できます。 -
ListSecurityPolicies を呼び出して、カスタムポリシーの
SecurityPolicyIdをクエリできます。
課金
TLS セキュリティポリシーは無料ですが、ALB インスタンスには課金されます。
本番環境
-
バックエンドトラフィックのセキュリティ:エンドツーエンドのセキュリティを確保するため、ALB インスタンスとバックエンドサーバーを同じ 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。これらの暗号スイートは Forward Secrecy (PFS) をサポートしておらず、サイドチャネル攻撃に対して脆弱です。ECDHE または DHE を使用する暗号スイートを優先してください。
TLS 暗号スイート名のマッピング
この表は、OpenSSL 形式、IANA 標準形式、および 16 進数での暗号スイート名をマッピングします。