Application Gateway の TLS ポリシーの概要
Azure Application Gateway を使用すると、TLS/SSL 証明書の管理を一元化し、バックエンド サーバー ファームからの暗号化と復号化のオーバーヘッドを低減することができます。 この一元化された TLS の処理によって、お客様の組織のセキュリティ要件に適したサーバーで中心的な役割を担う TLS ポリシーを指定することもできます。 これにより、コンプライアンス要件やセキュリティ ガイドラインに合致した推奨プラクティスを実行できます。
TLS ポリシーでは、TLS プロトコルのバージョン、暗号スイート、および TLS ハンドシェイク中に使用される暗号の優先順位を制御できます。 Application Gateway には、TLS ポリシーを制御するための 2 つのメカニズムが用意されています。 定義済みのポリシーかカスタム ポリシーのいずれかを使用できます。
使用状況とバージョンの詳細
- SSL 2.0 および 3.0 は、すべてのアプリケーション ゲートウェイに対して無効になっており、設定することはできません。
- カスタム TLS ポリシーでは、ゲートウェイの最小プロトコル バージョンとして、任意の TLS プロトコル(TLSv1_0、TLSv1_1、TLSv1_2、またはTLSv1_3)を選択できます。
- TLS ポリシーが選択されていない場合は、そのリソースの作成に使用されている API バージョンに基づいて、既定の TLS ポリシーが適用されます。
- TLS v1.3 をサポートする 2022 定義済み と Customv2 ポリシー は、Application Gateway V2 SKU (Standard_v2 または WAF_v2) でのみ使用できます。
- 2022 定義済みまたは Customv2 ポリシーを使用すると、ゲートウェイ全体の SSL セキュリティとパフォーマンス体制が強化されます (SSL ポリシーと SSL プロファイル)。 そのため、1つのゲートウェイに古いポリシーと新しいポリシーの両方の共存はできません。 クライアントが古い TLS バージョンまたは暗号(たとえば、TLS v1.0)を必要とする場合、ゲートウェイ全体で古い定義済みポリシーまたはカスタムポリシーのいずれかを使用する必要があります。
- 接続に使用される TLS 暗号化スイートはまた、使用される証明書の種類にも基づきます。 「クライアントからアプリケーション ゲートウェイへの接続」で使用される暗号スイートは,アプリケーション ゲートウェイ上のリスナー証明書の種類に基づきます。 一方、「バックエンド プールへのアプリケーション ゲートウェイ接続」の確立に使用される暗号スイートは、バックエンドサーバーによって提示されるサーバー証明書の種類に基づきます。
定義済み TLS ポリシー
Application Gateway は、いくつかの定義済みのセキュリティポリシーを提供しています。 これらのポリシーを使用してゲートウェイを構成し、適切なセキュリティ レベルを設定できます。 ポリシー名には、構成が行われた年月が付加されます(AppGwSslPolicy<YYYYMMDD>)。 各ポリシーでは、それぞれ異なる TLS プロトコルのバージョンおよび/または暗号スイートが提供されます。 これらの定義済みポリシーは、Microsoft セキュリティ チームからのベスト プラクティスと推奨事項を念頭に置いて構成されています。 最新の TLS ポリシーを使用して、最高レベルの TLS セキュリティを設定することをお勧めします。
次のテーブルは、各定義済みポリシーの暗号スイートと最小プロトコル バージョンのサポート リスト を示しています。 暗号スイートの順位により、TLS ネゴシエーション中の優先順位が決定します。 これらの定義済みポリシーの暗号スイートの正確な順序を知るには、ポータルで PowerShell、CLI、REST API、またはリスナー ブレードを参照できます。
定義済みのポリシー名 (AppGwSslPolicy<YYYYYMMDD>) | 20150501 | 20170401 | 20170401S | 20220101 | 20220101S |
---|---|---|---|---|---|
最小プロトコル バージョン | 1.0 | 1.1 | 1.2 | 1.2 | 1.2 |
有効なプロトコル バージョン | 1.0 1.1 1.2 |
1.1 1.2 |
1.2 | 1.2 1.3 |
1.2 1.3 |
既定値 | 正しい (API バージョン < 2023-02-01 の場合) |
いいえ | 誤 | True (API バージョン >= 2023-02-01 の場合) |
いいえ |
TLS_AES_128_GCM_SHA256 | ✗ | ✗ | ✗ | ✓ | ✓ |
TLS_AES_256_GCM_SHA384 | ✗ | ✗ | ✗ | ✓ | ✓ |
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 | ✓ | ✗ | ✗ | ✓ | ✗ |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | ✓ | ✗ | ✗ | ✓ | ✗ |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_RSA_WITH_AES_256_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_RSA_WITH_AES_128_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_RSA_WITH_AES_256_GCM_SHA384 | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_RSA_WITH_AES_128_GCM_SHA256 | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_RSA_WITH_AES_256_CBC_SHA256 | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_RSA_WITH_AES_128_CBC_SHA256 | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_RSA_WITH_AES_256_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_RSA_WITH_AES_128_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 | ✓ | ✓ | ✓ | ✓ | ✗ |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | ✓ | ✓ | ✓ | ✓ | ✗ |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_DSS_WITH_AES_256_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_DSS_WITH_AES_128_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_RSA_WITH_3DES_EDE_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
既定の TLS ポリシー
アプリケーション ゲートウェイ リソース構成で特定の SSL ポリシーが指定されていない場合は、既定の TLS ポリシーが適用されます。 この既定のポリシーの選択は、そのゲートウェイの作成に使用されている API バージョンに基づいています。
- API バージョン 2023-02-01 以降の場合、最小プロトコル バージョンは 1.2 に設定されています (バージョンは 1.3 までサポートされています)。 これらの API バージョンを使用して作成されたゲートウェイには、リソース構成に読み取り専用プロパティ defaultPredefinedSslPolicy:AppGwSslPolicy20220101 が表示されます。 このプロパティは、使用する既定の TLS ポリシーを定義します。
- 2023-02-01 よりも前の API バージョンの場合、定義済みのポリシー AppGwSslPolicy20150501 を既定として使用するため、最小プロトコル バージョンは 1.0 に設定されています (1.2 までのバージョンがサポートされています)。
既定の TLS が要件に適合しない場合は、別の定義済みポリシーを選択するか、カスタムのものを使用します。
Note
更新された既定の TLS ポリシーに対する Azure PowerShell と CLI のサポートは近日公開予定です。
カスタム TLS ポリシー
お客様の要件に合わせて TLS ポリシーを構成する必要がある場合、カスタム TLS ポリシーを使用できます。 カスタム TLS ポリシーでは、サポートされる最小バージョンの TLS プロトコルと、サポートされる暗号スイートとその優先順位を完全に制御できます。
Note
より新しい強力な暗号と TLSv1.3 のサポートは、CustomV2 ポリシーでのみ利用可能です。 強化されたセキュリティとパフォーマンスの利点を提供します。
重要
- Application Gateway v1 SKU (Standard または WAF) でカスタム SSL ポリシーを使用する場合は、必ず、必須の暗号 "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" をリストに追加してください。 この暗号は、Application Gateway v1 SKU でメトリックとログを有効にするために必要です。 これは、Application Gateway v2 SKU (Standard_v2 または WAF_v2) では必須ではありません。
- TLSv1.3 では、暗号スイートの “TLS_AES_128_GCM_SHA256” と “TLS_AES_256_GCM_SHA384” は必須です。 PowerShell または CLI を使用して最小プロトコル バージョン 1.2 または 1.3 で CustomV2 ポリシーを設定する場合は、これらを明示的に記載する必要はありません。 したがって、これらの暗号スイートは、Portal を除き、[Get Details] (詳細の取得) の出力には表示されません。
暗号スイート
Application Gateway では、カスタム ポリシーで選択できる次の暗号スイートがサポートされています。 暗号スイートの順位により、TLS ネゴシエーション中の優先順位が決定します。
- TLS_AES_128_GCM_SHA256 (Customv2 でのみ使用可能)
- TLS_AES_256_GCM_SHA384 (Customv2 でのみ使用可能)
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA256
- TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
制限事項
- バックエンド サーバーへの接続は、常に最小でプロトコル TLS v1.0、最大で TLS v1.2 までです。 そのため、バックエンド サーバーとのセキュリティで保護された接続を確立するには、TLS バージョン 1.0、1.1、1.2 のみがサポートされます。
- 現時点では、TLS 1.3 の実装は "ゼロ ラウンド トリップ時間 (0-RTT)" 機能では有効になっていません。
- TLS セッション (ID またはチケット) の再開はサポートされていません。
- Application Gateway v2 は次の DHE 暗号をサポートしていません。 これらは、定義済ポリシーに記載されている場合でも、クライアントとの TLS 接続には使用されません。 DHE 暗号ではなく、安全でより高速な ECDHE 暗号をお勧めします。
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA
- "最大フラグメント長ネゴシエーション" のサポートを求めている制約付きクライアントは、新しい 2022 定義済みまたは Customv2 ポリシーを使用する必要があります。
次のステップ
TLS ポリシーの構成について学習したい場合は、Application Gateway での TLS ポリシーのバージョンと暗号スイートの構成に関する記事をご覧ください。