適用於容器的應用程式閘道 TLS 原則概觀
您可以使用適用於容器的 Azure 應用程式閘道來控制 TLS 加密,以符合組織的合規性和安全性目標。
TLS 原則包含了 TLS 通訊協定版本、加密套件,以及 TLS 交握期間偏好使用的加密順序等定義。 適用於容器的應用程式閘道目前提供兩個預先定義的原則供您選擇。
使用量和版本詳細資料
- 自訂 TLS 原則可讓您設定閘道的最小通訊協定版本、加密和橢圓曲線。
- 如果未定義 TLS 原則,則會使用預設 TLS 原則。
- 用於連線的 TLS 加密套件,也是以所使用的憑證類型為基礎。 用戶端與適用於容器的應用程式閘道之間所交涉的加密套件是以 YAML 中所定義的 [閘道接聽程式] 設定為基礎。 適用於容器的應用程式閘道和後端目標之間既定連線使用的加密套件,則是以後端目標提供的伺服器憑證類型為基礎。
預先定義的 TLS 原則
適用於容器的應用程式閘道提供兩個預先定義的安全性原則。 您可以選擇其中一個原則,以達到適當的安全性層級。 原則名稱會依推出的年和月 (YYYY-MM) 來定義。 此外,可能會有 -S 變體,表示可能交涉更嚴格的加密變體。 每項原則都有不同的 TLS 通訊協定版本和加密套件。 這些預先定義的原則,都遵照了 Microsoft 安全性小組所提供的最佳做法和建議。 建議您使用最新的 TLS 原則以確保最佳的 TLS 安全性。
下表顯示了每項預先定義原則可支援的加密套件,以及最低通訊協定版本清單。 加密套件的順序會決定 TLS 交涉期間的優先順序。 以下說明這些預先定義原則的加密套件確切順序。
預先定義的原則名稱 | 2023-06 | 2023-06-S |
---|---|---|
最低通訊協定版本 | TLS 1.2 | TLS 1.2 |
啟用的通訊協定版本 | TLS 1.2 | TLS 1.2 |
TLS_AES_256_GCM_SHA384 | ||
TLS_AES_128_GCM_SHA256 | ||
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 | ||
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 | ||
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | ||
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | ||
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 | ||
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | ||
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 | ||
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | ||
橢圓曲線 | ||
P-384 | ||
P-256 |
不支援上述表格中未指定的通訊協定版本、加密和橢圓曲線,而且不會進行交涉。
預設 TLS 原則
未在 Kubernetes 設定中指定任何 TLS 原則時,將會套用預先定義的原則 2023-06。
如何自訂 TLS 原則
TLS 原則可以在 FrontendTLSPolicy 資源中定義,該資源鎖定已定義的閘道接聽程式為目標。 指定 predefined
型別的 policyType,並使用其中一個預先定義的原則名稱:2023-06
或 2023-06-S
使用預先定義的 TLS 原則 2023-06-S 建立新的 FrontendTLSPolicy 資源命令範例。
kubectl apply -f - <<EOF
apiVersion: alb.networking.azure.io/v1
kind: FrontendTLSPolicy
metadata:
name: policy-default
namespace: test-infra
spec:
targetRef:
kind: Gateway
name: target-01
namespace: test-infra
sectionNames:
- https-listener
group : gateway.networking.k8s.io
default:
policyType:
type: predefined
name: 2023-06-S
EOF