共用方式為


Azure SQL Database 與 SQL 受控執行個體安全性功能的概觀

適用於:Azure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics

本文說明使用 Azure SQL 資料庫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 Managed Instance 支援 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 資料庫,請建立一個名為 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 資料庫或 Azure SQL 管理實例時,透過使用者名稱和密碼進行的認證。 建立伺服器時,必須指定伺服器 管理員 登入,並輸入使用者名稱和密碼。 使用這些認證時,伺服器管理員能以資料庫擁有者身分向該伺服器或執行個體的任何資料庫進行驗證。 之後,伺服器管理員可以建立其他 SQL 登入帳號和使用者,讓使用者能透過使用者名稱和密碼連線。

授權與存取管理

授權指的是控制對伺服器與資料庫管理,以及資料庫內資料、資源和指令的存取。 你可以在 Azure SQL 資料庫或 Azure SQL 管理實例中,將權限分配給資料庫中的使用者。 你的入口網站使用者帳號的角色分配控制 Azure 內的資料庫與伺服器管理。 如需詳細資訊,請參閱 Azure 入口網站中的 Azure 角色型存取控制

透過將使用者帳號加入 資料庫角色 ,並為這些角色指派資料庫層級權限來管理權限。 或者,授予個別使用者特定的 物件層級權限 。 如需詳細資訊,請參閱登入與使用者

此外,Azure SQL 受管理實例提供 伺服器層級角色 (固定或自訂)來管理實例的權限。 伺服器層級的角色擁有伺服器範圍的權限範圍。 你可以把伺服器層級的負責人加入伺服器層級的角色。

最佳做法是在需要時建立自訂角色。 將使用者新增至具備執行工作職責所需最低權限的角色。 請勿將權限直接指派給使用者。 伺服器管理員帳號是內建 db_owner 角色的成員,擁有廣泛的權限,且應該只授予少數具備管理員職責的使用者。 為了進一步限制使用者的操作範圍,請使用 EXECUTE AS 來指定被呼叫模組的執行上下文。 遵循這些最佳做法也是分離職責的基本步驟。

資料列層級安全性

Row-Level 安全性允許您根據執行查詢的使用者特性(例如群組成員身份或執行上下文)來控制對資料庫資料表中資料列的存取。 利用 Row-Level Security 實作自訂的標籤式安全概念。 如需詳細資訊,請參閱資料列層級安全性

此圖表顯示 Row-Level 安全性可保護使用者透過用戶端應用程式存取 SQL 資料庫的個別資料列。

威脅保護

Azure SQL 資料庫與 SQL 管理實例透過稽核與威脅偵測功能,保護客戶資料安全。

Azure 監視器記錄和事件中樞中的 SQL 審核

SQL Database 和 SQL 受控執行個體稽核會將資料庫事件記錄到客戶自有 Azure 儲存體帳戶中的稽核記錄,藉此追蹤資料庫活動並協助維護安全性標準的合規性。 稽核讓您能監控持續的資料庫活動,並分析調查過去的活動,以識別潛在威脅、疑似濫用及安全違規。 如需詳細資訊,請參閱開始使用 Azure Database 稽核

Advanced Threat Protection

進階威脅防護會分析您的日誌,偵測異常行為及潛在有害的存取或利用資料庫嘗試。 它會針對可疑行為(如 SQL 注入、潛在資料外洩、暴力破解攻擊)或存取模式異常發出警示,以偵測權限升級與憑證被洩露。 您可以查看 Microsoft Defender for Cloud 的警示,裡面會提供可疑活動的詳細資料,並提出進一步調查建議及減輕威脅的措施。 你可以為每台伺服器啟用進階威脅防護,但需額外付費。 如需詳細資訊,請參閱開始使用 SQL Database 進階威脅防護

此圖說明 SQL 威脅偵測如何監控從外部攻擊者和惡意內部人員存取其 Web 應用程式的 SQL 資料庫。

資訊保護和加密

傳輸層安全性(傳輸中加密)

SQL Database、SQL 受控執行個體和 Azure Synapse Analytics 使用 傳輸層安全性 (TLS) 加密傳輸中的資料,以確保客戶資料安全。 這些服務始終強制執行 TLS 加密連線,以確保所有資料在用戶端與伺服器間傳輸時都被加密。

具體來說,SQL Database、SQL Managed Instance 和 Azure Synapse Analytics 將配置標誌 ForceEncryption 設為 Yes。 用戶端與驅動程式必須支援加密連線才能連接這些服務。 可連接的最低 TDS 協定版本是 TDS 7.1。

作為最佳實務,如果你有支援 TDS 8.0 的 SQL 驅動程式,請使用 嚴格連線加密

如果你的驅動程式不支援 TDS 8.0,請使用強制加密,且不要信任伺服器憑證。 例如,使用 ADO.NET 驅動程式時,請在 Encrypt=True 連接字串中使用 and TrustServerCertificate=False 來完成此動作。 你從 Azure 入口網站取得的連線字串已經設定好這些值。

避免將參數 TrustServerCertificate 設為 True 生產使用。 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,或依賴較舊版本(1.2 之前)才能運作。 在這種情況下,伺服器仍然允許你連接資料庫。 然而,請評估允許這些驅動程式和應用程式連接 SQL 資料庫的安全風險,尤其是當您儲存敏感資料時。

如需 TLS 和連線的詳細資訊,請參閱 TLS 考量。

透明資料加密(靜態加密)與服務管理金鑰

SQL Database、SQL 受控執行個體和 Azure Synapse Analytics 的透明資料加密 (TDE) 會新增一層安全性來協助保護待用資料,以免原始檔案或備份遭到未經授權或離線存取。 常見的案例包括資料中心遭竊或不安全的硬體或媒體 (例如磁碟機和備份磁帶) 處置方式。 TDE 透過 AES 加密演算法加密整個資料庫,這不需要應用程式開發者對現有應用程式做任何修改。

在 Azure 中,預設會加密新建立的資料庫,並以內建伺服器憑證保護資料庫加密金鑰。 該服務負責管理憑證維護與輪替,且不需使用者介入。 如果你想控制加密金鑰,可以在 Azure Key Vault 中管理金鑰。

透明資料加密(靜態加密)與客戶管理金鑰

如果你需要對加密金鑰有更強的控制,透明資料加密(TDE)支援客戶管理金鑰(CMK)。 此 CMK 與邏輯伺服器相關聯,並包裝該伺服器內所有資料庫的加密金鑰。 或者,你也可以在個別 資料庫層級設定 CMK。 透過管理 CMK,您可以控制金鑰輪換、撤銷與稽核,這通常是合規或嚴格安全政策所必需的。

始終加密與使用安全封閉區域的始終加密(使用中的加密)

顯示 Always Encrypted 功能基本概念的圖表。只有包含金鑰的應用程式才能存取具有鎖定的 SQL 資料庫。

Always EncryptedAlways Encrypted with Secure Enclaves 是設計用來保護存放在特定資料庫欄位中的敏感資料免受存取的功能(例如信用卡號碼、國家/區域識別號碼,或基於 需要知道 的資料)。 此保護包括被授權存取資料庫以執行管理任務,但無業務需求存取加密欄位中特定資料的資料庫管理員或其他特權使用者。 資料一律會加密,這表示加密的資料會解密,僅供可存取加密金鑰的用戶端應用程式進行處理。 加密金鑰一律不向 SQL Database 或 SQL Database 受控執行個體公開,且可存放於 Windows 憑證存放區Azure Key Vault

動態資料遮罩

動態資料遮蔽的示意圖。商業應用程式會將資料傳送到一個 SQL 資料庫,該資料庫會掩蓋資料,然後再回傳給商業應用程式。

動態資料遮罩可藉由遮罩處理,使不具權限的使用者無法看見敏感性資料。 動態資料遮罩會自動探索 Azure SQL Database 和 SQL 受控執行個體中可能的敏感性資料,並提供為這些欄位加上遮罩的可行建議,盡量避免影響應用程式層。 其運作方式是模糊化查詢結果集中的敏感數據,而不變更資料庫中的數據。 如需詳細資訊,請參閱開始使用 SQL Database 和 SQL 受控執行個體動態資料遮罩

總帳

Azure SQL 資料庫中的 Ledger 與 SQL Managed Instance 是一項提供資料完整性密碼學證明的功能。 有了「Ledger」,你可以查看資料是否被竄改的功能。 您可以使用密碼編譯方式向稽核員或其他商業當事人證明您的資料未遭竄改。

Ledger 採用防篡改技術,將資料庫變更記錄在不可更改的帳本中,確保任何未經授權的修改都能被偵測。 此功能對於需要法規遵循、可審計性及多方信任的情境特別有用。 啟用帳本功能後,您可以驗證資料的完整性,降低詐騙或資料竄改的風險。

安全性管理

弱點評估

弱點評量是容易設定的服務,可探索、追蹤及協助修復潛在的資料庫弱點,其目標在於主動改善整體資料庫安全性。 弱點評定 (VA) 屬於適用於 SQL 的 Microsoft Defender 供應項目,是進階 SQL 安全性功能的整合套件。 您可以透過中央的 Microsoft Defender for SQL 入口網站存取並管理漏洞評估。

資料探索與分類

資料發現與分類提供了內建於 Azure SQL 資料庫與 SQL 管理實例中的基本功能,用於發現、分類及標註資料庫中的敏感資料。 發現並分類您最敏感的資料(商業、財務、醫療、個人資料等)在組織資訊保護的地位中扮演關鍵角色。 它作為以下基礎設施:

  • 各種安全性案例,例如針對敏感性資料異常存取的監視 (稽核) 及警示。
  • 對包含高度敏感性資料的資料庫進行存取控制並強化安全性。
  • 協助符合資料隱私標準和法規合規性需求。

如需詳細資訊,請參閱開始使用資料探索與分類

法規遵循

除了協助應用程式滿足各種安全要求的功能外,Azure SQL Database 也會定期參與審核。 它已通過多項合規標準認證。 如需詳細資訊,請參閱 Microsoft Azure 信任中心,您可以在當中找到 SQL Database 合規性認證的最新清單。