在 Azure SQL 受控執行個體中設定最低 TLS 版本

最低傳輸層安全性 (TLS) 版本設定可讓客戶控制其 Azure SQL 受控執行個體所使用的 TLS 版本。

目前支援 TLS 1.0、1.1 和 1.2。 設定最低 TLS 版本,可確保能夠支援後續較新的 TLS 版本。 例如,若選擇高於 1.1 的 TLS 版本, 表示只會接受 TLS 1.1 和 1.2 的連線,而會拒絕 TLS 1.0。 在測試以確認您的應用程式可加以支援後,建議您將最低 TLS 版本設定為 1.2,因為其中包含在舊版中發現的弱點適用的修正程式,而且這是 Azure SQL 受控執行個體中支援的最高 TLS 版本。

針對相依於舊版 TLS 的應用程式客戶,我們建議根據應用程式的需求來設定最低 TLS 版本。 針對仰賴應用程式使用未加密的連線進行連線的客戶,我們建議不要設定任何最低 TLS 版本。

如需詳細資訊,請參閱 SQL Database 連線能力的 TLS 考量

設定最低 TLS 版本後,若嘗試從用戶端登入,但用戶端所使用的 TLS 版本低於伺服器的最低 TLS 版本,則登入將會失敗,並出現下列錯誤:

Error 47072
Login failed with invalid TLS version

注意

當您設定最低 TLS 版本時,會在應用程式層強制執行最低版本。 當您直接針對受控執行個體端點執行時,嘗試在通訊協定層上判斷 TLS 支援的工具,可能還會傳回除了必要最低版本以外的 TLS 版本。

透過 PowerShell 設定最低 TLS 版本

注意

本文使用 Azure Az PowerShell 模組,這是與 Azure 互動時建議使用的 PowerShell 模組。 若要開始使用 Az PowerShell 模組,請參閱安裝 Azure PowerShell。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az。

重要

Azure SQL Database 仍然支援 PowerShell Azure Resource Manager 模組,但所有未來的開發都是針對 Az.Sql 模組。 如需這些 Cmdlet,請參閱 AzureRM.Sql \(英文\)。 Az 模組和 AzureRm 模組中命令的引數本質上完全相同。 下列指令碼需要 Azure PowerShell 模組

下列 PowerShell 指令碼說明如何在執行個體層級上 GetSet [最低 TLS 版本] 屬性:

#Get the Minimal TLS Version property
(Get-AzSqlInstance -Name sql-instance-name -ResourceGroupName resource-group).MinimalTlsVersion

# Update Minimal TLS Version Property
Set-AzSqlInstance -Name sql-instance-name -ResourceGroupName resource-group -MinimalTlsVersion "1.2"

透過 Azure CLI 設定最低 TLS 版本

重要

本節中的所有指令碼都需要 Azure CLI

Bash 殼層中的 Azure CLI

下列 CLI 指令碼說明如何在 Bash 殼層中變更 [最低 TLS 版本] 設定:

# Get current setting for Minimal TLS Version
az sql mi show -n sql-instance-name -g resource-group --query "minimalTlsVersion"

# Update setting for Minimal TLS Version
az sql mi update -n sql-instance-name -g resource-group --set minimalTlsVersion="1.2"