適用於:Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
本文概述使用 Azure SQL Database、Azure SQL 受控執行個體和 Azure Synapse Analytics 來保護應用程式資料層的基本資訊。 所述安全策略遵循如下圖所示的分層防禦縱深方法,並從外部向內推進:
網路安全性
Azure SQL Database、Azure SQL Managed Instance 與 Azure Synapse Analytics 提供雲端與企業應用的關聯式資料庫服務。 為協助保護客戶資料,在根據 IP 位址或 Azure 虛擬網路流量的來源明確授與存取權前,防火牆會防止伺服器存取網路。
IP 防火牆規則
IP 防火牆規則會根據每個要求的來源 IP 位址授與資料庫存取權。 如需詳細資訊,請參閱 Azure SQL Database 和 Azure Synapse Analytics 防火牆規則概觀。
虛擬網路防火牆規則
虛擬網路服務端點會透過 Azure 骨幹擴充您的虛擬網路連線能力,並且讓 Azure SQL Database 找出流量源自的虛擬網路子網路。 若要允許流量觸達 Azure SQL Database,請使用 SQL服務標籤,允許透過網路安全性群組輸出流量。
- 虛擬網路規則可讓 Azure SQL Database 只接受虛擬網路內所選子網路傳來的通訊。
- 使用防火牆規則控制存取不適用於 SQL 受控實例。 如需所需網路組態的詳細資訊,請參閱連線到受控執行個體
注意
使用防火牆規則控制存取不適用於 SQL 受控實例。 如需所需網路組態的詳細資訊,請參閱連線到受控執行個體
網路安全界限
Azure 網路安全邊界會在部署於虛擬網路外部的平台即服務(PaaS)資源周圍建立邏輯性的網路邊界。
- Azure 網路安全邊界幫助你控制 Azure SQL 資料庫的公共網路存取權。
- 使用 Azure 網路安全邊界來控制存取並不適用於 Azure SQL 受管實例。
重要
Azure SQL 資料庫與網路安全邊界目前處於預覽階段。 預覽版沒有服務等級協議,也不建議在生產工作負載中使用。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
驗證
驗證是證明使用者宣告身分的程序。 Azure SQL 資料庫與 SQL 管理實例支援使用 Microsoft Entra ID(前稱 Azure Active Directory)及 SQL 認證。 SQL 受控執行個體還支援適用於 Microsoft Entra 主體的 Windows 驗證。
Microsoft Entra 驗證:
Microsoft Entra 認證是一種透過使用 Microsoft Entra ID 中的身份來連接 Azure SQL 資料庫、 Azure SQL 管理實例及 Azure Synapse Analytics 的機制。 Microsoft Entra 驗證讓管理員能夠在一個中央位置,集中管理資料庫使用者的身分識別和權限,以及其他 Azure 服務。 這有助於消除秘密與密碼的使用。
必須建立名為 Microsoft Entra 系統管理員的伺服器管理員,才能搭配 SQL Database 使用 Microsoft Entra 驗證。 如需詳細資訊,請參閱使用 Microsoft Entra 驗證連線到 SQL Database。 Microsoft Entra 驗證同時支援受控和同盟帳戶。 同盟帳戶支援與 Microsoft Entra ID 同盟之客戶網域的 Windows 使用者和群組。
Microsoft Entra 支援數個不同的驗證選項,包括多重要素驗證、整合式 Windows 驗證和條件式存取。
適用於 Microsoft Entra 主體的 Windows 驗證:
適用於 Microsoft Entra 主體的 Kerberos 驗證會啟用適用於 Azure SQL 受控執行個體的 Windows 驗證。 適用於受控執行個體的 Windows 驗證可讓客戶將現有的服務移至雲端,同時維持順暢的使用者體驗,並為基礎結構現代化提供基礎。
若要啟用 Microsoft Entra 主體的 Windows 驗證,您會將 Microsoft Entra 租使用者轉換成獨立的 Kerberos 領域,並在客戶網域中建立傳入信任。 了解如何使用 Microsoft Entra ID 和 Kerberos 實作適用於 Azure SQL 受控執行個體的 Windows 驗證。
SQL 驗證:
SQL 驗證是指使用者透過使用者名稱和密碼連線至 Azure SQL Database 或 Azure SQL 受控執行個體時的驗證。 建立伺服器時,必須指定伺服器管理員登入的使用者名稱和密碼。 使用這些認證時,伺服器管理員能以資料庫擁有者身分向該伺服器或執行個體的任何資料庫進行驗證。 之後,伺服器管理員可以建立其他 SQL 登入帳號和使用者,讓使用者能使用使用者名稱和密碼連線。
授權與存取管理
授權指的是控制對伺服器與資料庫管理,以及資料庫內資料、資源和指令的存取。 授權方式是將權限指派給 Azure SQL Database 或 Azure SQL 受控執行個體中資料庫內的使用者。 在 Azure 內管理資料庫和伺服器,是由入口網站使用者帳戶的角色指派所控制。 如需詳細資訊,請參閱 Azure 入口網站中的 Azure 角色型存取控制。
管理權限的理想方式是將使用者帳戶新增至資料庫角色,並將資料庫層級的權限指派給這些角色。 或者也可授與個別使用者特定的物件層級權限。 如需詳細資訊,請參閱登入與使用者。
此外,Azure SQL 管理實例提供 伺服器層級角色 (固定或自訂)來管理伺服器/實例的權限。 伺服器層級角色的權限適用於整個伺服器。 伺服器層級的主體可以加入到伺服器層級的角色中。
最佳做法是在需要時建立自訂角色。 將使用者新增至具備執行工作職責所需最低權限的角色。 請勿將權限直接指派給使用者。 伺服器系統管理員帳戶是內建 db_owner 角色的成員,具備的權限較廣,且僅應授與具系統管理責任的少數使用者。 若要進一步限制使用者可執行的動作範圍,則可使用 EXECUTE AS 指定所呼叫模組的執行內容。 遵循這些最佳做法也是分離職責的基本步驟。
資料列層級安全性
資料列層級安全性可讓客戶根據執行查詢的使用者特性 (例如群組成員資格或執行內容),來控制對資料庫資料表中資料列的存取。 資料列層級的安全性也可用於執行自訂的標籤式安全性概念。 如需詳細資訊,請參閱資料列層級安全性。
威脅保護
Azure SQL 資料庫與 SQL 管理實例透過稽核與威脅偵測功能,保護客戶資料安全。
Azure 監視器記錄和事件中樞中的 SQL 審核
SQL Database 和 SQL 受控執行個體稽核會將資料庫事件記錄到客戶自有 Azure 儲存體帳戶中的稽核記錄,藉此追蹤資料庫活動並協助維護安全性標準的合規性。 稽核可讓使用者監視進行中的資料庫活動,以及分析和調查歷史活動,以找出潛在威脅或可疑的濫用和安全性違規。 如需詳細資訊,請參閱開始使用 Azure Database 稽核。
Advanced Threat Protection
進階威脅防護可分析您的記錄,以偵測不尋常的行為、可能有害的存取或惡意探索資料庫等嘗試。 系統會建立可疑活動警示,例如:SQL 插入、潛在資料滲透及暴力密碼破解攻擊,或存取模式發生異常等,以便攔截提升權限、入侵使用認證等情況。 警示可從適用於雲端的 Microsoft Defender 中檢視,其中會提供可疑活動的詳細資料、進一步調查的建議,以及減輕威脅的動作。 進階威脅防護可針對各伺服器啟用,並產生額外費用。 如需詳細資訊,請參閱開始使用 SQL Database 進階威脅防護。
資訊保護和加密
傳輸層安全性(傳輸中加密)
SQL Database、SQL 受控執行個體和 Azure Synapse Analytics 使用 傳輸層安全性 (TLS) 加密傳輸中的資料,以確保客戶資料安全。 TLS 加密連線始終被強制執行。 這可確保所有資料在用戶端和伺服器之間傳輸時都經過加密。
具體而言,這些服務所管理的所有 SQL Server 執行個體都會將設定旗標 ForceEncryption 設定為 Yes。 用戶端和驅動程式必須支援加密連線,才能連線到任一服務。 因此,可以連接的 TDS 協議的最低版本是 TDS 7.1。
最佳實務是,如果您有支援 TDS 8.0 的 SQL 驅動程式,建議您使用 嚴格連線加密。
如果您的驅動程式缺乏對 TDS 8.0 的支援,請使用強制加密,並且不要信任伺服器憑證。 例如,使用 ADO.NET 驅動程式時,請在 Encrypt=True 連接字串中使用 and TrustServerCertificate=False 來完成此動作。 您從 Azure 入口網站取得的連接字串已設定這些值。
在生產使用中應避免將參數設定為TrustServerCertificateTrue。
TrustServerCertificate=True 太寬鬆了,不能防範中間人攻擊威脅。 相反地,如果您的用戶端預期伺服器憑證中有不同的網域名稱,請使用參數 HostNameInCertificate 來提供正確的網域名稱進行驗證。
例如,使用 ADO.NET 驅動程式透過自訂網域名稱contoso-instance.123456.database.windows.net連線到受控執行個體contoso-instance.contoso.com時,請設定連線參數Encrypt=True,然後設定 HostNameInCertificate=contoso-instance.123456.database.windows.net。 這可讓驅動程式根據預期的 VNet 本機端點網域名稱驗證伺服器憑證。
重要
某些非Microsoft驅動程序預設不會使用 TLS,或依賴舊版的 TLS(<1.2)才能運作。 在此情況下,伺服器仍會允許連接至資料庫。 但建議您評估允許這類驅動程式和應用程式連接至 SQL Database 的安全性風險,特別是儲存敏感性資料時。
如需 TLS 和連線的詳細資訊,請參閱 TLS 考量。
透明資料加密(靜態加密)與服務管理金鑰
SQL Database、SQL 受控執行個體和 Azure Synapse Analytics 的透明資料加密 (TDE) 會新增一層安全性來協助保護待用資料,以免原始檔案或備份遭到未經授權或離線存取。 常見的案例包括資料中心遭竊或不安全的硬體或媒體 (例如磁碟機和備份磁帶) 處置方式。 TDE 會使用 AES 加密演算法將整個資料庫加密,應用程式開發人員不需對現有的應用程式進行任何變更。
在 Azure 中,預設會加密新建立的資料庫,並以內建伺服器憑證保護資料庫加密金鑰。 憑證維護和輪替是由服務管理,使用者不需要輸入任何資料。 想要掌控加密金鑰的客戶可以在 Azure Key Vault 中管理金鑰。
透明資料加密(靜態加密)與客戶管理金鑰
對於需要更嚴格控制加密金鑰的客戶, 透明資料加密 (TDE)支援 客戶管理的金鑰。 此 CMK 與邏輯伺服器相關聯,並包裹該伺服器下所有資料庫的加密金鑰。 或者,CMK 也可以在個別 資料庫層次設定。 透過管理 CMK,客戶可控制金鑰輪換、撤銷及稽核,這些通常對合規或嚴格安全政策至關重要。
始終加密與使用安全封閉區域的始終加密(使用中的加密)
Always Encrypted 及 Always Encrypted with Secure Enclaves 是設計用來保護存放在特定資料庫欄位中的敏感資料免受存取的功能(例如信用卡號碼、國家/區域識別號碼,或基於 需要知道 的資料)。 這包括資料庫管理員或其他特殊權限的使用者,該使用者經授權存取資料庫以執行管理工作,但沒有存取已加密資料行中特定資料的商務需求。 資料一律會加密,這表示加密的資料會解密,僅供可存取加密金鑰的用戶端應用程式進行處理。 加密金鑰一律不向 SQL Database 或 SQL Database 受控執行個體公開,且可存放於 Windows 憑證存放區或 Azure Key Vault。
動態資料遮罩
動態資料遮罩可藉由遮罩處理,使不具權限的使用者無法看見敏感性資料。 動態資料遮罩會自動探索 Azure SQL Database 和 SQL 受控執行個體中可能的敏感性資料,並提供為這些欄位加上遮罩的可行建議,盡量避免影響應用程式層。 其運作方式是模糊化查詢結果集中的敏感數據,而不變更資料庫中的數據。 如需詳細資訊,請參閱開始使用 SQL Database 和 SQL 受控執行個體動態資料遮罩。
總帳
Azure SQL 資料庫中的 Ledger 與 SQL Managed Instance 是一項提供資料完整性密碼學證明的功能。 有了「Ledger」,你可以查看資料是否被竄改的功能。 您可以使用密碼編譯方式向稽核員或其他商業當事人證明您的資料未遭竄改。
Ledger 採用防篡改技術,將資料庫變更記錄在不可更改的帳本中,確保任何未經授權的修改都能被偵測。 這對於需要法規遵循、可審計性及多方信任的情境特別有用。 啟用帳本後,客戶能驗證資料的完整性,降低詐騙或資料竄改的風險。
安全性管理
弱點評估
弱點評量是容易設定的服務,可探索、追蹤及協助修復潛在的資料庫弱點,其目標在於主動改善整體資料庫安全性。 弱點評定 (VA) 屬於適用於 SQL 的 Microsoft Defender 供應項目,是進階 SQL 安全性功能的整合套件。 您可以透過適用於 SQL 的 Microsoft Defender 中央入口網站,來存取和管理弱點評定。
資料探索與分類
數據探索和分類(目前為預覽版)提供 Azure SQL Database 和 SQL 受控實例內建的基本功能,以探索、分類和標記資料庫中的敏感數據。 探索與分類您最具敏感性的資料 (商業/財務、醫療保健、個人資料等),可在您組織的資訊保護方面扮演著關鍵角色。 它可以作為以下的基礎結構:
- 各種安全性案例,例如針對敏感性資料異常存取的監視 (稽核) 及警示。
- 對包含高度敏感性資料的資料庫進行存取控制並強化安全性。
- 協助符合資料隱私標準和法規合規性需求。
如需詳細資訊,請參閱開始使用資料探索與分類。
法規遵循
除了上述可協助您的應用程式符合各種安全性需求的特色和功能之外,Azure SQL Database 也定期參與稽核,並且經過認證符合許多法規標準。 如需詳細資訊,請參閱 Microsoft Azure 信任中心,您可以在當中找到 SQL Database 合規性認證的最新清單。