Azure 虛擬機器上的 SQL Server 安全性考量
本文包含整體安全性指導方針,可協助制定 Azure 虛擬機器 (VM) 中 SQL Server 執行個體的存取安全。
Azure 符合多種業界規範及標準,可讓您使用在虛擬機器中執行的 SQL Server,建置相容的解決方案。 如需 Azure 的法規相符性資訊,請參閱 Azure 信任中心。
請先檢閱適用於 SQL Server 和 Azure VM 的安全性最佳做法,再檢閱本文以取得特別適用於 Azure VM 上 SQL Server 的最佳做法。
若要深入了解 SQL Server VM 最佳做法,請參閱此系列的其他文章:檢查清單、VM 大小、HADR 設定及收集基準。
檢查清單
請檢閱本節中的下列檢查清單,先簡單了解安全性最佳做法,本文其餘部分將提供更詳細的說明。
SQL Server 特徵和功能提供在資料庫層級保護數據的方法,這些方法可與基礎結構層級的安全性功能結合。 這些功能一起為雲端式和混合式解決方案的基礎結構層級提供 深度 防禦。 此外,透過 Azure 安全性措施,您可以加密敏感性資料、保護虛擬機器免於病毒和惡意程式碼的威脅、保護網路流量、識別和偵測威脅、符合合規性需求,並提供單一方法來管理及報告混合式雲端中的任何安全性需求。
- 使用適用於雲端的 Microsoft Defender 來評估和採取動作,以改善您資料環境的安全性態勢。 Azure 進階威脅防護 (ATP) 等功能可以跨混合式工作負載使用,以改善安全性評估,並讓您能夠回應風險。 向 SQL IaaS 代理程式延伸模組註冊您的 SQL Server VM,以在 Azure 入口網站的 SQL 虛擬機器資源內顯示適用於雲端的 Microsoft Defender 評定。
- 利用適用於 SQL 的 Microsoft Defender 來探索及減輕潛在資料庫弱點,以及偵測可能對 SQL Server 執行個體和資料庫層造成威脅的異常活動。
- 弱點評定是適用於 SQL 的 Microsoft Defender 的一部分,可探索並協助補救您 SQL Server 環境的潛在風險。 它可讓您查看安全性狀態,並包含解決安全性問題的可行步驟。
- 使用 Azure 機密 VM 來強化對待用資料的保護,並防止主機操作員存取待用資料。 Azure 機密 VM 可讓您放心地將敏感性資料儲存在雲端,並符合嚴格的合規性需求。
- 如果您使用的是 SQL Server 2022,請考慮使用 Microsoft Entra 驗證來連線到 SQL Server 執行個體。
- Azure Advisor 會分析您的資源設定和使用量遙測,然後建議可協助您改善 Azure 資源成本效益、效能、高可用性和安全性的解決方案。 在虛擬機器、資源群組或訂閱層級使用 Azure Advisor 來協助識別並套用最佳做法,以最佳化您的 Azure 部署。
- 當您的合規性與安全性需求要求您使用加密金鑰來進行端對端資料加密 (包括加密暫時性磁碟 (本機連結的暫存磁碟)) 時,請使用 Azure 磁碟加密。
- 系統預設會使用 Azure 儲存體服務加密將待用的受控磁碟加密,其中加密金鑰為儲存在 Azure 中的 Microsoft 受控金鑰。
- 如需受控磁碟加密選項的比較,請檢閱受控磁碟加密比較圖表
- 您應該在虛擬機器上關閉管理連接埠 - 開啟遠端管理連接埠會使您的 VM 暴露在網際網路型攻擊的高風險層級之下。 這些攻擊會嘗試對認證發動暴力密碼破解攻擊,來取得機器的系統管理員存取權。
- 開啟 Azure 虛擬機器的 Just-In-Time (JIT) 存取
- 透過遠端桌面通訊協定 (RDP) 使用 Azure Bastion。
- 使用 Azure 防火牆來鎖定連接埠並僅允許必要的應用程式流量,這是一項受控防火牆即服務 (FaaS),可根據原始 IP 位址授與/拒絕伺服器存取。
- 使用網路安全性群組 (NSG) 來篩選 Azure 虛擬網路中的 Azure 資源往返流量
- 使用應用程式安全性群組,將具有類似連接埠篩選需求及類似功能的伺服器分組在一起,例如網頁伺服器和資料庫伺服器。
- 針對網頁伺服器和應用程式伺服器,請使用 Azure 分散式阻斷服務 (DDoS) 保護。 DDoS 攻擊旨在耗盡網路資源,讓應用程式變慢或沒有回應。 DDos 攻擊通常會以使用者介面為目標。 Azure DDoS 保護會在不必要的網路流量影響服務可用性之前先予以清理
- 利用 VM 擴充功能可協助解決反惡意程式碼、預期狀態、威脅偵測、預防及補救,以解決作業系統、電腦和網路層級的威脅:
- 來賓設定擴充功能會在虛擬機器內執行稽核與設定作業。
- 適用於 Windows 和 Linux 的網路監看員代理程式擴充功能會監視網路效能、診斷和分析服務,以允許監視 Azure 網路。
- 適用於 Windows 的 Microsoft Antimalware 擴充功能,可協助識別和移除病毒、間諜軟體及其他惡意程式碼,並具有可設定的警示。
- 評估協力廠商擴充功能,例如適用於 Windows VM 的 Symantec Endpoint Protection (/azure/virtual-machines/extensions/symantec)
- 利用 Azure 原則來建立可套用至您環境的商務規則。 Azure 原則會根據 JSON 格式中定義的規則比較這些資源的屬性,以評估 Azure 資源。
- Azure 藍圖可讓雲端架構設計師和中央資訊技術人員定義一組可重複使用的 Azure 資源,其中實作並遵循組織的標準、模式和需求。 Azure 藍圖與 Azure 原則不同。
- 使用 Windows Server 2019 或 Windows Server 2022 使 Azure VM 上的 SQL Server 符合 FIPS 規範。
如需安全性最佳做法的詳細資訊,請參閱 SQL Server安全性最佳做法和保護 SQL Server。
機器上適用於 SQL 的 Microsoft Defender
適用於雲端的 Microsoft Defender 是整合的安全性管理系統,旨在評估和提供機會來改善您資料環境的安全性態勢。 Microsoft Defender 為 Azure VM 上的 SQL Server 機器保護提供適用於 SQL 的 Microsoft Defender。 使用適用於 SQL 的 Microsoft Defender 來探索及減輕潛在資料庫弱點,以及偵測可能對 SQL Server 執行個體和資料庫層造成威脅的異常活動。
適用於 SQL 的 Microsoft Defender 提供下列優點:
- 弱點評定可探索並協助補救您 SQL Server 環境的潛在風險。 它可讓您查看安全性狀態,並包含解決安全性問題的可行步驟。
- 使用適用於雲端的 Microsoft Defender 的安全性分數。
- 檢閱目前可用的計算和資料建議清單以取得進一步詳細資料。
- 向 SQL Server IaaS 代理程式延伸模組註冊您的 SQL Server VM,以對 Azure 入口網站中的 SQL 虛擬機器資源提供適用於 SQL 的 Microsoft Defender 建議。
連接埠管理
當您使用 SQL IaaS 代理程式延伸模組註冊 SQL Server VM 之後,就可以在 Azure 入口網站中使用 SQL 虛擬機器資源來設定許多安全性設定,例如,啟用 Azure Key Vault 整合或 SQL 驗證。
此外,當您啟用機器上適用於 SQL 的 Microsoft Defender 之後,就可以在 Azure 入口網站中直接檢視 SQL 虛擬機器資源內適用於雲端的 Defender 功能,例如弱點評定和安全性警示。
若要深入了解,請參閱在入口網站中管理 SQL Server VM。
機密 VM
Azure 機密 VM 提供強大硬體強制執行的界限,可強化客體 OS 的保護,以防止主機操作員存取。 為 Azure VM 上的 SQL Server 選擇機密 VM 大小可提供多一層保護,讓您放心地將敏感性資料儲存在雲端,並達成嚴格的合規性需求。
Azure 機密 VM 利用 AMD 處理器搭配 SEV-SNP 技術,使用處理器所產生的金鑰來加密 VM 的記憶體。 這有助於在使用期間保護資料 (SQL Server 流程記憶體內處理的資料) 不受主機 OS 未經授權的存取。 機密 VM 的 OS 磁碟也可以使用金鑰繫結加密至至虛擬機器之信賴平台模組 (Trusted Platform Module, TPM) 晶片,強化待用資料的保護。
如需詳細的部署步驟,請參閱快速入門:將 SQL Server 部署至機密 VM。
機密 VM 的磁碟加密建議與其他 VM 大小不同。 請參閱磁碟加密來深入了解。
Microsoft Entra 驗證
從 SQL Server 2022 開始,您可以使用 Microsoft Entra ID (前身為 Azure Active Directory) 搭配下列其中一個驗證方法來連線到SQL Server:
- 密碼可實現透過 Microsoft Entra 認證進行驗證
- 與 MFA 通用:新增多重要素驗證
- 整合會使用同盟提供者,例如 Active Directory 同盟服務 (ADFS) 來啟用單一登入 (SSO) 體驗
- 服務主體可在 Azure 應用程式上進行驗證
- 受控識別可在被指派有 Microsoft Entra 身分識別的應用程式上進行驗證
如需開始使用,請檢閱<設定 SQL Server VM 的 Microsoft Entra 驗證>(機器翻譯)。
Azure Advisor
Azure Advisor 是個人化的雲端顧問,可協助您遵循最佳做法來將 Azure 部署最佳化。 Azure Advisor 可分析您的資源組態和使用量遙測,然後建議可協助您改善 Azure 資源的成本效益、效能、高可用性和安全性的解決方案。 Azure Advisor 可以在虛擬機器、資源群組或訂閱層級進行評估。
Azure 金鑰保存庫整合
有多個 SQL Server 加密功能,例如透明資料加密 (TDE)、資料行層級加密 (CLE) 和備份加密。 這些形式的加密需要您管理和儲存用來加密的密碼編譯金鑰。 Azure Key Vault 服務旨在改善安全性,以及在安全且高可用性的位置管理這些金鑰。 SQL Server 連接器讓 SQL Server 可以從 Azure Key Vault 使用這些金鑰。
請考慮下列事項:
- Azure Key Vault 會將應用程式祕密儲存在集中式雲端位置,以安全地控制存取權限和個別存取記錄。
- 當您將自己的金鑰攜帶到 Azure 時,建議將祕密和憑證儲存在 Azure Key Vault 中。
- Azure 磁碟加密會使用 Azure Key Vault 來控制及管理磁碟加密金鑰和祕密。
存取控制
當您使用 Azure 資源庫映像建立 SQL Server 虛擬機器時,[SQL Server 連線] 選項可讓您選擇 [本機 (在 VM 內)]、[私人 (在虛擬網路內)] 或 [公用 (網際網路)]。
如需最佳的安全性,請為您的案例選擇最嚴格的選項。 例如,如果您執行的應用程式可存取相同 VM 上的 SQL Server,則 [本機] 是最安全的選擇。 如果您執行的 Azure 應用程式需要存取 SQL Server,則 [私人] 選項只能在指定的 Azure 虛擬網路內保護與 SQL Server 的通訊。 如果您需要 SQL Server VM的 [公用] \(網際網路) 存取,請務必遵循本主題中的其他最佳做法,以縮寫受攻擊面。
入口網站中選取的選項會使用 VM 網路安全性群組 (NSG) 上的輸入安全性規則來允許或拒絕虛擬機器的網路流量。 您可以修改或建立新的輸入 NSG 規則,以允許 SQL Server 連接埠 (預設值 1433) 的流量。 您也可以指定允許透過此連接埠通訊的特定 IP 位址。
除了可限制網路流量的 NSG 規則,您也可以在虛擬機器上使用 Windows 防火牆。
使用您使用端點搭配傳統部署模型,如果虛擬機器上有任何不使用的端點,請將它們全部移除。 如需有關在端點中使用 ACL 的指示,請參閱 在端點上管理 ACL。 如果是使用 Azure Resource Manager 的 VM,則不需要這麼做。
請考慮為 Azure 虛擬機器中的 SQL Server 資料庫引擎執行個體啟用加密連線。 使用簽署憑證設定 SQL Server 執行個體。 如需詳細資訊,請參閱啟用 Database Engine 的加密連接和連接字串語法。
保護網路連線或周邊時,請考慮下列事項:
- Azure 防火牆 - 一項具狀態的受控防火牆即服務 (FaaS),可根據原始 IP 位址授與/拒絕伺服器存取,以保護網路資源。
- Azure 分散式阻斷服務 (DDoS) 保護 - DDoS 攻擊會耗盡網路資源,讓應用程式變慢或沒有回應。 Azure DDoS 保護會在不必要的網路流量影響服務可用性之前先予以清理。
- 網路安全性群組 (NSG) - 篩選 Azure 虛擬網路中的 Azure 資源往返流量
- 應用程式安全性群組 - 提供具有類似連接埠篩選需求的伺服器群組,並將具有類似功能的伺服器分組在一起,例如網頁伺服器。
磁碟加密
本節提供磁碟加密的指引,但建議會因您要在 Azure VM 上部署傳統 SQL Server 或 SQL Server 至 Azure 機密 VM 而有所不同。
傳統 VM
部署到非 Azure 機密 VM 的受控磁碟會使用伺服器端加密和 Azure 磁碟加密。 伺服器端加密提供待用加密並保護資料安全,以符合組織的安全性與合規性承諾。 Azure 磁碟加密會使用 BitLocker 或 DM-Crypt 技術,並與 Azure Key Vault 整合以加密 OS 和資料磁碟。
請考慮下列事項:
- Azure 磁碟加密 - 使用 Azure 磁碟加密,為 Windows 和 Linux 虛擬機器加密虛擬機器磁碟。
- 當您的合規性與安全性需求要求您使用加密金鑰來進行端對端資料加密 (包括加密暫時性磁碟 (本機連結的暫存磁碟)) 時,請使用 Azure 磁碟加密。
- Azure 磁碟加密 (ADE) 利用 Windows 的業界標準 BitLocker 功能和 Linux 的 DM-Crypt 功能,提供 OS 和資料磁碟加密。
- 受控磁碟加密
- 系統預設會使用 Azure 儲存體服務加密將待用的受控磁碟加密,其中加密金鑰為儲存在 Azure 中的 Microsoft 受控金鑰。
- Azure 受控磁碟中的資料會使用 256 位元的 AES 加密 (可用的最強區塊編碼器之一),以透明的方式進行加密,而且符合 FIPS 140-2 規範。
- 如需受控磁碟加密選項的比較,請檢閱受控磁碟加密比較圖表。
Azure 機密 VM
如果您要使用 Azure 機密 VM,請考慮下列建議,以最大化安全性權益:
- 設定機密 OS 磁碟加密,將 OS 磁碟加密金鑰繫結至虛擬機器的信賴平台模組 (TPM) 晶片,並讓受保護的磁碟內容只能供 VM 存取。
- 使用 BitLocker 加密您的資料磁碟 (任何包含資料庫檔案、記錄檔或備份檔案的磁碟),並啟用自動解除鎖定 - 如需詳細資訊,請檢閱 manage-bde autounlock 或 EnableBitLockerAutoUnlock。 自動解除鎖定可確保加密金鑰儲確實儲存在 OS 磁碟上。 若與機密 OS 磁碟加密搭配使用,可保護儲存至 VM 磁碟的待用資料免於未經授權的主機存取。
可信啟動
部署第 2 代虛擬機器時,您可以選擇啟用受信任的啟動,以防止進階和持續性的攻擊技術。
透過受信任的啟動,您可以:
- 使用已驗證的開機載入器、OS 核心和驅動程式,安全地部署虛擬機器。
- 安全保護虛擬機器中的金鑰、憑證和密碼。
- 取得整個開機鏈完整性的見解和信賴度。
- 確定工作負載是受信任且可驗證的。
當您為 Azure VM 上的 SQL Server 啟用受信任的啟動時,目前不支援下列功能:
- Azure Site Recovery
- Ultra 磁碟
- 受控映像
- 巢狀虛擬化
管理帳戶
您不希望攻擊者容易猜到帳戶名稱或密碼。 使用下列秘訣來協助:
建立不是名為 Administrator的唯一本機系統管理員帳戶。
為您的所有帳戶使用複雜的強式密碼。 如需如何建立強式密碼的詳細資訊,請參閱 建立強式密碼一文。
根據預設,Azure 會在 SQL Server 虛擬機器安裝期間選取 Windows 驗證。 因此,系統會停用 SA 登入,並由安裝程式指派密碼。 我們建議不要使用或啟用 SA 登入。 如果您必須具有 SQL 登入,請使用下列其中一個策略:
使用具有 sysadmin 成員資格的唯一名稱建立 SQL 帳戶。 在佈建期間啟用 SQL 驗證,即可從入口網站執行此作業。
提示
如果您未在佈建期間啟用 SQL 驗證,您必須將驗證模式手動變更為 SQL Server 和 Windows 驗證模式。 如需詳細資訊,請參閱 變更伺服器驗證模式。
如果您必須使用 SA 登入,請在佈建後啟用此登入,然後指派新的強式密碼。
注意
不支援使用 Microsoft Entra Domain Services 連線至 SQL Server VM – 請改用 Active Directory 網域帳戶。
稽核與報告
Log Analytics 的稽核功能會記錄事件,並寫入至安全 Azure BLOB 儲存體帳戶中的稽核記錄。 Log Analytics 可用來解譯稽核記錄的詳細資料。 稽核可讓您將資料儲存至個別儲存體帳戶,並為您選取的所有事件建立稽核線索。 您也可以針對稽核記錄使用 Power BI 來快速分析和深入了解資料,以及提供法規合規性的檢視。 若要深入了解 VM 和 Azure 層級的稽核,請參閱 Azure 安全性記錄和稽核。
虛擬機器層級存取
關閉您電腦上的管理連接埠 - 開啟遠端管理連接埠會使您的 VM 暴露在網際網路型攻擊的高風險層級之下。 這些攻擊會嘗試對認證發動暴力密碼破解攻擊,來取得機器的系統管理員存取權。
- 開啟 Azure 虛擬機器的 Just-In-Time (JIT) 存取。
- 透過遠端桌面通訊協定 (RDP) 使用 Azure Bastion。
虛擬機器延伸模組
Azure 虛擬機器擴充功能是受信任的 Microsoft 或協力廠商擴充功能,可協助解決特定需求和風險,例如防毒軟體、惡意程式碼、威脅防護等。
- 來賓設定擴充功能
- 若要確保機器來賓內設定的安全設定,請安裝來賓設定延伸模組。
- 來賓內設定包括作業系統設定、應用程式設定或目前狀態,以及環境設定。
- 安裝後便可使用客體內原則,例如「應啟用 Windows 惡意探索防護」。
- 網路流量資料收集代理程式
- 適用於雲端的 Microsoft Defender 會使用 Microsoft Dependency Agent,從 Azure 虛擬機器收集網路流量資料。
- 此代理程式會啟用進階網路保護功能,例如網路對應上的流量視覺效果、網路強化建議和特定網路威脅。
- 評估 Microsoft 和協力廠商的擴充功能來解決反惡意程式碼、預期狀態、威脅偵測、預防及補救,以解決作業系統、電腦和網路層級的威脅。
FIPS 合規性
FIPS 是美國政府標準,定義資訊技術產品和系統中密碼編譯模組的最低安全性需求。 SQL Server 能夠符合 SQL Server 2016 和更新版本 或 SQL Server 2014 與 延伸安全性更新 的 FIPS 規範。
若要符合 Azure VM 上 SQL Server 的 FIPS 規範,您應該位於默認啟用 FIPS 的 Windows Server 2022 上。 如果使用安全性技術實作指南 (STIG) 找到 V-93511 中所指定的原則手動啟用 FIPS,Windows Server 2019 也可以符合 FIPS 規範。
SQL Server 目前在 Linux Azure VM 上不符合 FIPS 規範。
相關內容
請先檢閱適用於 SQL Server 和 Azure VM 的安全性最佳做法,再檢閱本文以取得特別適用於 Azure VM 上 SQL Server 的最佳做法。
如需在 Azure VM 中執行 SQL Server 的其他相關主題,請參閱 Azure 虛擬機器上的 SQL Server 概觀。 如果您有 SQL Server 虛擬機器的相關問題,請參閱常見問題集。
若要深入了解,請參閱此最佳作法系列的其他文章: