Sql-Server

具有加密連接的 Always On 可用性組

  • October 23, 2020

我們有一個兩節點 SQL Server 2016 AOAG、TestA、TestB 和偵聽器 TestL。我們想開始在應用伺服器/客戶端和數據庫伺服器之間使用加密連接。

我在兩個有關實現連接加密的 MS 文件中找到了以下部分。只是想知道這是否適用於 AOAG?我懷疑它確實如此,因為 AOAG 確實需要使用故障轉移集群,但希望得到確認。

集群加密

如果要對故障轉移群集使用加密,則必須在故障轉移群集中的所有節點上安裝具有故障轉移群集實例的完全限定 DNS 名稱的伺服器證書。例如,如果您有一個兩節點集群,其中節點名為 test1.your company.com 和 test2。您的 company.com 和名為 fcisql 的 SQL Server 故障轉移群集實例,您必須獲取 fcisql.your company.com 的證書並在兩個節點上安裝該證書。若要配置故障轉移群集以進行加密,然後可以選中 SQL Server 網路配置的“協議”屬性框上的“強制加密”複選框

首先,對於 AG,您需要對參與 AG 的每個實例強制執行協議加密。對於 FCI,只有一個實例。

使用 AG 客戶端也可以連接到 AG 偵聽器,它們可以直接連接到實例。因此,您必須相應地配置證書。請參閱https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/listeners-client-connectivity-application-failover#SSLcertificates

請注意,此配置不需要具有協議加密。需要向客戶端驗證 SQL Server。如果您只想要協議加密,客戶端可能總是要求它,或者您可以使用自簽名證書在伺服器上強制它。

您可能想要研究的另一種方法(如果您只想加密數據的子集)是Always Encrypted。它附帶 SQL Server 2016 SP1 及更高版本的所有版本(或 SP1 之前的 SQL 2016 企業版),並提供列級別的端到端加密。它還與可用性組兼容,但您應該注意其他限制

雖然 SSL 加密傳輸中的數據,但它不會加密靜態數據。強制 SSL 連接和啟用透明數據加密可以模擬與 Always Encrypted 類似的安全級別,但在數據庫級別。這兩個功能雖然不會加密記憶體中的數據,但 Always Encrypted 會這樣做,因為數據是在客戶端解密的。

最後,TDE 是 SQL Server 2019 之前版本企業版獨有的功能。在 SQL Server 2019 及更高版本上,您可以在標準版實例上應用 TDE 加密。在此處查看版本之間的差異和支持的功能。如果您決定深入加密兔子洞,請注意許可要求。

引用自:https://dba.stackexchange.com/questions/184517