Azure SQL Database 是一個完全託管的平台即服務(PaaS)資料庫引擎,負責大部分資料庫管理功能,如升級、修補、備份及監控,且無需使用者介入。 由於它經常儲存關鍵商業資料,包括客戶紀錄、財務資訊及智慧財產權,保護您的Azure SQL Database對於防範資料外洩、未經授權存取及合規違規至關重要。
本文提供安全建議,協助保護您的 Azure SQL Database 部署。
本文中的安全性建議會實作零信任原則:「明確驗證」、「使用最低許可權存取」和「假設違規」。 如需完整的 零信任 指引,請參閱 零信任 指引中心。
減少攻擊面並減輕威脅
由於 Azure SQL Database 是一個受管理型 PaaS 引擎,Microsoft 強化了作業系統與基礎設施。 你的責任在於減少應用程式與資料表面暴露於攻擊之下,以及及早偵測威脅。
執行 SQL 漏洞評估:利用 SQL 漏洞評估發現、追蹤並修復潛在的資料庫錯誤設定與漏洞。 安排定期掃描,並依據它建立的基準線採取行動。 如需詳細資訊,請參閱 SQL 弱點評估。
防範 SQL 注入:在應用程式中使用參數化查詢與儲存程序,切勿將使用者輸入串接至 SQL 語句中。 SQL 注入仍是針對資料庫應用最常見的攻擊途徑之一。 如需詳細資訊,請參閱 SQL 插入。
施以縱深防禦:結合網路隔離、身份控制、資料保護與監控,確保沒有任何單一控制成為單一故障點。 欲了解更多資訊,請參閱 常見問題手冊。
網路安全性
Azure SQL Database 的網路安全有助於防止未經授權的連線,並降低攻擊風險,使只有受信任的來源能存取您的資料庫。
使用私人端點:透過私有 IP 位址使用 Azure Private Link 連接 Azure SQL Database,以避免暴露資料庫給公共網際網路。 私人連線能減少攻擊面及資料外洩風險。 欲了解更多資訊,請參閱 Azure SQL 資料庫的 Azure Private Link。
關閉公共網路存取:當你依賴私有端點時,請完全關閉公用網路存取,讓所有連線都經過私有端點。 欲了解更多資訊,請參閱 拒絕公共網路存取。
設定伺服器層級防火牆規則:透過 IP 防火牆規則控制 Azure 中邏輯伺服器的存取,這些規則會指定哪些位址或範圍可以連線,遵循最小權限原則。 如需詳細資訊,請參閱 Azure SQL Database 和 Azure Synapse IP 防火牆規則。
設定資料庫層級防火牆規則:若需更細緻的控制,可設定適用於個別資料庫的資料庫層級防火牆規則,以啟用每個資料庫的存取政策。 欲了解更多資訊,請參閱 資料庫層級 IP 防火牆規則。
限制流量至特定虛擬網路:使用虛擬網路規則,只允許來自 Azure 虛擬網路中特定子網的流量,增加超越 IP 規則的網路隔離。 欲了解更多資訊,請參閱 Azure SQL 資料庫的虛擬網路規則。
設定最低 TLS 版本:將邏輯伺服器的最低 TLS 版本設定為 1.2 或更高,使使用較舊且較弱協定的連線被拒絕。 欲了解更多資訊,請參閱 最低 TLS 版本。
選擇適當的連線政策:當你希望所有流量都通過單一埠口閘道,而不是暴露後端節點埠範圍時,請使用 Proxy 連線策略,並在 Azure 內部使用 Redirect 以降低延遲。 覆寫預設值前,請先了解其中的取捨。 欲了解更多資訊,請參閱 Azure SQL 資料庫連接架構。
身分識別與存取權管理
強有力的身份與認證控制限制了授權使用者與應用程式存取 Azure SQL Database 資源,並具備集中式身份管理與更簡便的帳號生命週期控制。
認證與帳號管理
設定 Microsoft Entra 管理員:為您的邏輯伺服器指定一位 Microsoft Entra 管理員,以啟用集中式身份管理及進階認證政策。 如需詳細資訊,請參閱 設定 Microsoft Entra 驗證。
使用 Microsoft Entra 認證:偏好 Microsoft Entra 認證而非 SQL 認證,以集中管理身份及使用條件存取及多重驗證等功能。 如需詳細資訊,請參閱 Microsoft Entra 驗證。
盡可能關閉 SQL 認證:為達到最大安全性,要求所有連線使用 Microsoft Entra 認證並關閉 SQL 驗證,避免 SQL 密碼弱或被盜用的風險。 欲了解更多資訊,請參閱 僅限 Microsoft Entra 的驗證。
建立包含資料庫使用者:盡可能將包含資料庫使用者映射至 Microsoft Entra 身份或群組,取代伺服器層級登入,簡化權限管理並減少伺服器層級存取。 欲了解更多資訊,請參閱 包含式資料庫使用者。
強制多重驗證:要求透過條件存取(MFA)對管理並連接邏輯伺服器的 Microsoft Entra 身份進行多重驗證(MFA),增加密碼之外的保護層。 欲了解更多資訊,請參閱 多重驗證運作方式。
套用條件存取政策:利用條件存取根據使用者位置、裝置合規性及風險控制存取,為每次存取嘗試提供自適應性安全性。 欲了解更多資訊,請參閱 條件存取。
為邏輯伺服器使用管理身份:為邏輯伺服器指派一個系統指派或使用者指派的管理身份,使其能存取 Azure Key Vault(用於 TDE 客戶管理金鑰)和 Azure 儲存體(用於稽核),且不會儲存秘密。 欲了解更多資訊,請參閱 Microsoft Entra for Azure SQL 中的管理身份。
執行強力密碼政策:如果你使用 SQL 認證,要求使用難以輕易猜測的複雜密碼,定期更換密碼,避免在帳號間重複使用。 如需相關資訊,請參閱 密碼原則。
特權存取
授予最低權限:只給予使用者工作功能所需的最低權限,並定期檢視權限。 如需詳細資訊,請參閱開始使用 資料庫引擎權限。
分開管理角色:避免將廣泛的管理員權限授予所有管理員。 使用細粒度權限,並在各項管理功能中實施職責分離。 如需詳細資訊,請參閱 權限。
以資料庫角色分配存取權:利用內建及自訂資料庫角色來實作基於角色的安全性,將使用者指派到角色,而非個別授權。 欲了解更多資訊,請參閱 資料庫層級角色。
使用 Azure RBAC 進行管理操作:使用 Azure 角色基礎存取控制,控制對 Azure SQL Database 管理操作的存取,建立自訂角色,僅授予特定任務所需的權限。 如需詳細資訊,請參閱 適用於資料庫的 Azure 內建角色。
提供即時特權存取:使用 Microsoft Entra Privileged Identity Management(PIM)授予有限時間、核准式的管理權限,讓使用者僅在需要時才擁有提升權限。 欲了解更多資訊,請參閱 特權身份管理。
監控特權活動:啟用稽核以追蹤特權帳號的行為,檢視日誌是否有可疑變更,並警示敏感操作。 如需詳細資訊,請參閱 Azure SQL Database 的稽核。
資料保護
資料保護透過加密、遮蔽及機密保護您的資訊,以防止未經授權的洩露、竄改或敏感資訊遺失。
啟用 透明資料加密 (TDE):加密你的資料庫、日誌及備份檔案。 新資料庫預設啟用 TDE;請在 Azure Key Vault 中使用客戶管理的金鑰,以進一步控制加密金鑰。 欲了解更多資訊,請參閱透明 資料加密(TDE) 及 客戶管理金鑰的TDE。
以 Always Encrypted 保護敏感資料:使用 Always Encrypted 來保護高度敏感的資料,這些資料正在使用、靜止及傳輸中,甚至連管理員都無法查看明文值。 使用安全隔離區以獲得更豐富的功能。 如需詳細資訊,請參閱 Always Encrypted。
以 Ledger 建立防篡改資料:啟用 Ledger 建立不可篡改且可加密驗證的敏感資料變更紀錄,有助於符合法規要求。 如需詳細資訊,請參閱Ledger。
以動態資料遮蔽掩蓋敏感資料:應用動態資料遮蔽,為非特權使用者隱藏敏感資料,同時保留應用程式功能,且不更改應用程式程式碼。 欲了解更多資訊,請參見 動態資料遮罩。
分類並標註敏感資料:使用 SQL 資料發現與分類來識別、分類並標註敏感資料,讓稽核與遮蔽等功能能利用這些元資料,並報告敏感資料的存放位置。 如需詳細資訊,請參閱 資料探索和分類。
以欄位層級權限限制存取:在欄位層級授予或拒絕權限,只有需要敏感欄位的使用者才能閱讀或修改。 欲了解更多資訊,請參閱 GRANT 物件權限。
使用資料列層級安全性 (RLS) 限制資料列:實作 RLS,讓使用者只能存取與其相關的資料列,提供適用於多租戶情境的應用程式層級安全性。 如需詳細資訊,請參閱 Row-Level 安全性。
記錄和監視
全面的日誌與監控能幫助您偵測異常活動、調查事件,並為您的資料庫展現合規性。
啟用 Microsoft Defender for SQL:開啟 Microsoft Defender for SQL,以偵測異常且可能有害的存取或利用資料庫的行為,包括漏洞評估與進階威脅防護。 如需詳細資訊,請參閱適用於 SQL 的 Microsoft Defender。
與 適用於雲端的 Microsoft Defender 整合:使用 適用於雲端的 Microsoft Defender 來對 Azure 資源進行集中式安全性管理、提供安全性建議,以及整合式威脅防護。 欲了解更多資訊,請參閱 適用於雲端的 Defender 中的 Microsoft Defender for SQL。
設定威脅防護警示:針對可疑活動(如 SQL 注入嘗試、異常存取模式及暴力破解認證)設置警示,並將通知導向正確收件人。 欲了解更多資訊,請參閱 進階威脅防護。
啟用稽核:設定稽核以追蹤資料庫事件,並將其寫入 Log Analytics 工作空間、Azure 儲存體 或事件中心。 審計伺服器層級及資料庫層級的事件,確保全面覆蓋。 如需詳細資訊,請參閱 Azure SQL Database 的稽核。
串流診斷日誌:設定診斷設定,將日誌(包括安全類別
SQLSecurityAuditEvents)傳送至 Azure 監視器 Logs、Event Hubs 或 Azure 儲存體,以便保留與分析。 欲了解更多資訊,請參閱 Monitor Azure SQL Database with Azure 監視器。定期檢視稽核日誌:建立流程檢視稽核日誌是否有可疑活動,重點放在特權帳號操作、驗證失敗及敏感資料存取。 如需詳細資訊,請參閱 Azure SQL Database 的稽核。
合規性和治理
治理控管協助你展示法規遵循性,並在資料庫中強制執行一致的安全配置。
追蹤 適用於雲端的 Microsoft Defender 的法規合規:利用法規合規儀表板評估您的資料庫是否符合 PCI DSS、ISO 27001 及 SOC 等標準,並追蹤失效控制措施的修復情況。 欲了解更多資訊,請參閱 法規合規儀表板。
以 Azure 原則 強制配置:為 Azure SQL Database 指派內建的 Azure 原則 定義,以稽核並執行如 TDE、稽核、私有端點及僅 Microsoft Entra 認證等控制措施。 欲了解更多資訊,請參閱 Azure 原則 內建定義 for Azure SQL Database。
使用 Microsoft Purview 管理敏感資料:在 Microsoft Purview 註冊並掃描 Azure SQL Database,以在您的資料資產中編目、分類並管理敏感資料。 欲了解詳細資訊,請參閱 在 Microsoft Purview 中連線到並管理 Azure SQL Database。
應用 Microsoft 雲端安全基準:將 Microsoft 雲端安全基準作為 Azure 整體基準,優先排序並驗證你對 Azure SQL Database 所施加的控制措施。 欲了解更多資訊,請參閱 Microsoft 雲端安全基準測試。
備份及復原
可靠的備份和復原程式可保護您的數據免於因為失敗、災害或攻擊而遺失。 他們也協助你達成復原目標。
確認自動備份設定:確認自動備份已設定妥當,且保留符合您的需求。 Azure SQL Database 預設提供自動化備份,保留時間可設定從 1 天到 35 天不等。 如需詳細資訊,請參閱 自動備份。
配置備份儲存冗餘:選擇符合您可用性與災難復原需求的備份儲存冗餘:本地冗餘(LRS)、區域冗餘(ZRS)、地理冗餘(GRS)或地理區域冗餘(GZRS)。 如需詳細資訊,請參閱 備份儲存備援。
使用長期保留以符合規定:設定長期保留(LTR),當合規要求保留超過預設期限時,將完整備份儲存長達 10 年。 如需詳細資訊,請參閱長期保存。
測試備份與還原程序:定期測試還原,以確認其符合復原時間目標,且還原後的資料庫在完整資料下是否完全正常運作。 欲了解更多資訊,請參閱 「恢復資料庫」。
實施災害復原的地理還原:使用地理還原將資料庫從地理冗餘備份還原到任一 Azure 區域,防範區域故障。 更多資訊請參見 地理還原。
監控備份活動:使用 Azure 監視器 追蹤備份操作並設定故障警報。 欲了解更多資訊,請參閱 「監控並排查備份儲存消耗」。