Application Load Balancer (ALB) インスタンスの HTTPS リスナーを設定する場合、その TLS セキュリティポリシーは、クライアントとのネゴシエーションに使用される TLS プロトコルのバージョンおよび暗号スイートを決定します。ALB では、複数の事前定義済みデフォルトポリシーが提供されています。これらのポリシーがお客様のセキュリティ要件を満たさない場合は、カスタムポリシーを作成できます。
仕組み
ALB インスタンスにおける TLS セキュリティポリシーは、TLS ネゴシエーションでサポートされる TLS プロトコルのバージョンおよび暗号スイートを定義します。TLS ハンドシェイク中に、クライアントは Client Hello メッセージで、自身がサポートするプロトコルのバージョンおよび暗号スイートの一覧を送信します。このポリシーに基づき、ALB インスタンスは、自身とクライアントの両方がサポートするプロトコルおよび暗号スイートを選択し、Server Hello メッセージで応答します。選択された組み合わせにより、キー交換やセッションキーの生成などの後続ステップが決定されます。
デフォルトポリシー
さまざまな情報セキュリティ標準において、ALB インスタンスに対して特定の TLS セキュリティポリシーが要求される場合があります。以下の表を参照し、お客様のセキュリティおよびコンプライアンス要件を満たすデフォルトポリシーを選定してください。該当するポリシーがない場合は、カスタムポリシーを作成できます。
ALB Extensible Edition インスタンスでは、
tls_cipher_policy_1_0_to_1_3ポリシーのみがサポートされており、他のエディションには適用されません。特別な互換性要件のないインターネット向けアプリケーションの場合、
tls_cipher_policy_1_2またはより厳格なポリシーの使用を推奨します。
コンソール
ALB コンソールの TLS セキュリティポリシー ページに移動します。デフォルトポリシー タブで、各ポリシーの詳細を確認できます。
API
ListSystemSecurityPolicies 操作を呼び出して、デフォルトポリシーを照会します。
カスタムポリシー
カスタムポリシーは、Standard エディションおよび WAF 対応 ALB インスタンスでのみサポートされています。Basic エディションおよび Extensible エディションの ALB インスタンスでは、この機能はサポートされていません。
カスタムポリシーの作成
コンソール
ALB コンソールの TLS セキュリティポリシー ページに移動し、ご利用の ALB インスタンスのリージョンを選択します。
カスタムポリシーの作成 をクリックします。以下のパラメーターを設定し、作成 をクリックします。
最小バージョン:サービスに特別な互換性要件がない場合は、セキュリティを確保するために TLS 1.2 以降 を選択します。
TLS 1.3 の有効化:より強固なセキュリティおよび優れたパフォーマンスを実現するため、クライアントおよびバックエンドサービスが TLS 1.3 をサポートしている場合は、このオプションを選択します。
暗号スイート:選択した暗号スイートは、選択した TLS プロトコルのバージョンと互換性がある必要があります。
ポリシーが作成された後、リスナーへの TLS セキュリティポリシーの関連付け 時に、このポリシーを選択できます。
API
CreateSecurityPolicy 操作を呼び出してカスタムポリシーを作成します。ALB インスタンスで使用する場合、ポリシーのリージョンと ALB インスタンスのリージョンが一致している必要があります。
HTTPS 暗号化に SM アルゴリズム証明書を使用する場合は、カスタム TLS セキュリティポリシーの作成時に、SM アルゴリズム暗号スイート ECC-SM2-WITH-SM4-SM3 を必ず選択してください。詳細な手順については、「4. SM 暗号スイートを含む TLS セキュリティポリシーの作成」をご参照ください。
カスタムポリシーの更新
コンソール
ALB コンソールの TLS セキュリティポリシー ページに移動し、カスタムポリシーのリージョンを選択します。
対象のカスタムポリシーを見つけ、操作 列の 変更 をクリックします。TLS セキュリティポリシーの変更 ダイアログボックスで、TLS プロトコルのバージョンおよび暗号スイートを更新します。
API
UpdateSecurityPolicyAttribute 操作を呼び出して、カスタムポリシーの属性を更新します。
カスタムポリシーの他のリージョンへのコピー
コンソール
ALB コンソールの TLS セキュリティポリシー ページに移動し、カスタムポリシーのリージョンを選択します。
対象のカスタムポリシーを見つけ、操作 列の 他のリージョンへ複製 をクリックします。目的のリージョンを選択し、OK をクリックします。
API
ListSecurityPolicies 操作を呼び出して、カスタムポリシーの TLSVersions および Ciphers パラメーターを取得します。その後、目的のリージョンで CreateSecurityPolicy 操作を呼び出し、これらのパラメーターを渡します。
カスタムポリシーの削除
リスナーに関連付けられているカスタムポリシーは削除できません。ポリシーを削除するには、まずリスナーの TLS セキュリティポリシーを変更するか、リスナー自体を削除する必要があります。
コンソール
ALB コンソールの TLS セキュリティポリシー ページに移動し、カスタムポリシーのリージョンを選択します。
対象のカスタムポリシーを見つけ、操作 列の 削除 をクリックし、OK をクリックします。
API
DeleteSecurityPolicy 操作を呼び出してカスタムポリシーを削除します。
リスナーへの TLS セキュリティポリシーの関連付け
現在、ALB Extensible Edition インスタンスでは、tls_cipher_policy_1_0_to_1_3 ポリシーのみがサポートされています。
コンソール
HTTPS リスナーの作成 時は、SSL 証明書の構成 ステップで TLS セキュリティポリシー を選択します。HTTPS リスナーのクイック作成 時は、クイック作成リスナー ダイアログボックスで TLS セキュリティポリシー を選択します。
リスナーのポリシーの変更 時は、該当するリスナーの詳細ページに移動します。リスナーの詳細 タブの SSL 証明書 セクションで、現在使用中のポリシーの横にある編集アイコンをクリックし、新しい TLS セキュリティポリシー を選択します。
API
CreateListener 操作を呼び出して HTTPS リスナーを作成する場合、または UpdateListenerAttribute 操作を呼び出して HTTPS リスナーを更新する場合、SecurityPolicyId パラメーターで TLS セキュリティポリシーを指定します。
ListSystemSecurityPolicies 操作を呼び出して、デフォルトポリシーの
SecurityPolicyIdを取得できます。ListSecurityPolicies 操作を呼び出して、カスタムポリシーの
SecurityPolicyIdを照会できます。
課金
TLS セキュリティポリシーは無料です。料金は、ALB インスタンスの購入と使用に対してのみ発生します。
本番環境に適用
バックエンドフローのセキュリティ:エンドツーエンドのセキュリティを確保するため、ALB インスタンスおよびバックエンドサーバーを同一の Virtual Private Cloud (VPC) 内に展開してください。セキュリティグループなどのポリシーを活用して、アクセスを厳密に制御します。
TLS プロトコルのバージョン:アプリケーションに特別な互換性要件がない場合は、TLS 1.2 および TLS 1.3 を使用してセキュリティを確保してください。
ロールバック:TLS セキュリティポリシーの変更後に問題が発生した場合は、リスナーの設定を編集することで、以前のポリシーに戻すことができます。これらの変更は、トラフィックが少ない時間帯に行うことを推奨します。
キー交換アルゴリズム:完全転送秘匿性(PFS)を欠き、サイドチャネル攻撃に対して脆弱であるため、次の RSA ベースの暗号スイートを本番環境で使用しないでください。
AES128-GCM-SHA256
AES256-GCM-SHA384
AES128-SHA256
AES256-SHA256
AES128-SHA
AES256-SHA
DES-CBC3-SHA
代わりに、ECDHE または DHE キー交換アルゴリズムを含む暗号スイートを優先的に使用してください。ただし、特定のレガシシステムとの互換性が必要な場合は例外です。
TLS 暗号スイートのリファレンス
この表は、TLS 暗号スイートの OpenSSL 形式、IANA 標準形式、および 16 進数表現のマッピングを示しています。