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

適用于:Azure SQL Database Azure SQL 受控執行個體 Azure Synapse Analytics

本文概述使用 Azure SQL DatabaseAzure SQL 受控執行個體Azure Synapse Analytics 來保護應用程式資料層的基本資訊。 所述的安全性策略會遵循下圖所示的多層式深度防禦方法,並從外部移入:

分層防禦深度圖表。客戶資料會以網路安全性、存取管理和威脅與資訊保護層來封裝。

網路安全性

Microsoft Azure SQL 資料庫、SQL 受控執行個體和 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 受控執行個體。 如需所需網路組態的詳細資訊,請參閱連線到受控執行個體

存取管理

重要

在 Azure 內管理資料庫和伺服器,是由入口網站使用者帳戶的角色指派所控制。 如需有關此文章的詳細資訊,請參閱 Azure 入口網站中的角色型存取控制

驗證

驗證是證明使用者宣告身分的程序。 Azure SQL Database 和 SQL 受控執行個體支援 SQL 驗證和 Azure AD 驗證。 SQL 受控執行個體也支援 Azure AD 主體的 Windows 驗證。

  • SQL 驗證

    SQL 驗證是指使用者透過使用者名稱和密碼連線至 Azure SQL Database 或 Azure SQL 受控執行個體時的驗證。 建立伺服器時,必須指定伺服器管理員登入的使用者名稱和密碼。 使用這些認證時,伺服器管理員能以資料庫擁有者身分向該伺服器或執行個體的任何資料庫進行驗證。 在那之後,伺服器管理員可以建立其他 SQL 登入和使用者,可讓使用者使用使用者名稱和密碼進行連線。

  • Azure Active Directory 驗證

    Azure Active Directory 驗證是使用 Azure Active Directory (Azure AD) 中的身分識別連線至 Azure SQL DatabaseAzure SQL 受控執行個體Azure Synapse Analytics 的機制。 Azure AD 驗證可讓系統管理員在一個中央位置集中管理資料庫使用者的身分識別和權限,以及其他 Azure 服務。 這包括密碼儲存體的最小化,並啟用集中式密碼輪替原則。

    必須建立稱為 Active Directory 系統管理員的伺服器管理員,才能使用 Azure AD 驗證搭配 SQL Database。 如需詳細資訊,請參閱使用 Azure Active Directory 驗證連線到 SQL Database。 Azure AD 驗證支援受控和同盟帳戶。 同盟帳戶支援與 Azure AD 同盟的客戶網域的 Windows 使用者和群組。

    其他可用的 Azure AD 驗證選項為適用於 SQL Server Management Studio 的 Active Directory 通用驗證連線,包括:多重要素驗證條件式存取

  • 適用 Azure AD 主體的 Windows 驗證 (預覽版)

    適用 Azure AD 主體的 Kerberos 驗證 (預覽版) 可啟用適用於 Azure SQL 受控執行個體的 Windows 驗證。 受控執行個體的 Windows 驗證可讓客戶將現有的服務移至雲端,同時維持順暢的使用者體驗,並為基礎結構現代化提供基礎。

    若要對 Azure Active Directory (Azure AD) 主體啟用Windows 驗證,請將 Azure AD 租用戶變成獨立的 Kerberos 領域,並在客戶網域中建立連入信任。 了解如何使用 Azure Active Directory 和 Kerberos 實作 Azure SQL 受控執行個體的 Windows 驗證

重要

在 Azure 內管理資料庫和伺服器,是由入口網站使用者帳戶的角色指派所控制。 如需有關此文章的詳細資訊,請參閱 Azure 入口網站中的 Azure 角色型存取控制。 防火牆規則的存取控制適用於 SQL 受控執行個體。 如需所需網路設定的相關資訊,請參閱下列關於連線到受控執行個體的文章。

授權

授權是指資料庫內的資源和命令控制存取權。 授權方式是將權限指派給 Azure SQL Database 或 Azure SQL 受控執行個體中資料庫內的使用者。 管理權限的理想方式是將使用者帳戶新增至資料庫角色,並將資料庫層級的權限指派給這些角色。 或者也可授與個別使用者特定的物件層級權限。 如需詳細資訊,請參閱登入與使用者

最佳做法是在需要時建立自訂角色。 將使用者新增至具備執行工作職責所需最低權限的角色。 請勿將權限直接指派給使用者。 伺服器系統管理員帳戶是內建 db_owner 角色的成員,具備的權限較廣,且僅應授與具系統管理責任的少數使用者。 若要進一步限制使用者可執行的動作範圍,則可使用 EXECUTE AS 指定所呼叫模組的執行內容。 遵循這些最佳作法也是職責區分的基本步驟。

資料列層級安全性

資料列層級安全性可讓客戶根據執行查詢的使用者特性 (例如群組成員資格或執行內容),來控制對資料庫資料表中資料列的存取。 資料列層級的安全性也可用於執行自訂的標籤式安全性概念。 如需詳細資訊,請參閱資料列層級安全性

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

威脅保護

SQL Database 和 SQL 受控執行個體可提供稽核和威脅偵測功能,以保護客戶資料。

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

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

進階威脅防護

進階威脅防護可分析您的記錄,以偵測不尋常的行為、可能有害的存取或惡意探索資料庫等嘗試。 系統會建立可疑活動警示,例如:SQL 插入、潛在資料滲透及暴力密碼破解攻擊,或存取模式發生異常等,以便攔截提升權限、入侵使用認證等情況。 警示可從適用於雲端的 Microsoft Defender 中檢視,其中會提供可疑活動的詳細資料、進一步調查的建議,以及減輕威脅的動作。 進階威脅防護可針對各伺服器啟用,並產生額外費用。 如需詳細資訊,請參閱開始使用 SQL Database 進階威脅防護

此圖顯示 SQL 威脅偵測監視從外部攻擊者和惡意測試人員存取 Web 應用程式的 SQL 資料庫。

資訊保護和加密

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

SQL Database、SQL 受控執行個體和 Azure Synapse Analytics 會使用傳輸層安全性 (TLS) 來加密移運行中資料,以保護客戶資料。

SQL Database、SQL 受控執行個體和 Azure Synapse Analytics 一律會針對所有連線強制執行加密 (SSL/TLS)。 這可確保不論連接字串中的 EncryptTrustServerCertificate 設定如何,在用戶端與伺服器間「傳輸中」的所有資料皆會加密。

建議的最佳做法是在應用程式所用的連接字串中指定加密連線,而不是信任伺服器憑證。 這會強制讓應用程式驗證伺服器憑證,因而防範應用程式易於遭受中間人攻擊。

例如,使用 ADO.NET 驅動程式時,則是透過 Encrypt=TrueTrustServerCertificate=False 來執行。 如果您從 Azure 入口網站取得連接字串,則它將具有正確的設定。

重要

請注意,某些非 Microsoft 驅動程式依預設可能不會使用 TLS,或得依賴舊版的 TLS (<1.2) 才能運作。 在此情況下,伺服器仍會允許連接至資料庫。 但建議您評估允許這類驅動程式和應用程式連接至 SQL Database 的安全性風險,特別是儲存敏感性資料時。

如需 TLS 和連線能力的相關資訊,請參閱 TLS 考量

透明資料加密 (待用資料加密)

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

在 Azure 中,預設會加密新建立的資料庫,並以內建伺服器憑證保護資料庫加密金鑰。 憑證維護和輪替是由服務管理,使用者不需要輸入任何資料。 想要掌控加密金鑰的客戶可以在 Azure Key Vault 中管理金鑰。

Azure Key Vault 的金鑰管理

透明資料加密 (TDE) 的攜帶您自己的金鑰 (BYOK) 支援可讓客戶使用 Azure Key Vault (Azure 的雲端式外部金鑰管理系統),取得金鑰管理與輪替的擁有權。 如果撤銷了資料庫對金鑰保存庫的存取權,資料庫即無法解密並讀取到記憶體中。 Azure Key Vault 可提供集中金鑰管理平台、使用嚴密監控的硬體安全性模組 (HSM),並可區分管理金鑰和資料的職責,以利符合安全性合規性需求。

一律加密 (使用中加密)

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

一律加密功能的設計訴求是要保護特定資料庫資料行中儲存的敏感性資料以防存取 (例如,信用卡號碼、身分證號碼,或「必須知道」的資料)。 這包括資料庫管理員或其他特殊權限的使用者,該使用者經授權存取資料庫以執行管理工作,但沒有存取已加密資料行中特定資料的商務需求。 資料一律會加密,這表示加密的資料會解密,僅供可存取加密金鑰的用戶端應用程式進行處理。 加密金鑰一律不向 SQL Database 或 SQL Database 受控執行個體公開,且可存放於 Windows 憑證存放區Azure Key Vault

動態資料遮罩

顯示動態資料遮罩的圖表。商務應用程式會將資料傳送至 SQL 資料庫,以在將資料傳回至商務應用程式之前先遮罩資料。

動態資料遮罩會對不具權限的使用者遮罩機密資料,從而限制其曝光。 動態資料遮罩會自動探索 Azure SQL Database 和 SQL 受控執行個體中可能的敏感性資料,並提供為這些欄位加上遮罩的可行建議,盡量避免影響應用程式層。 其運作方式為針對指定的資料庫欄位隱匿查詢結果集中的敏感性資料,而不變更資料庫中的資料。 如需詳細資訊,請參閱開始使用 SQL Database 和 SQL 受控執行個體動態資料遮罩

安全性管理

弱點評估

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

資料探索與分類

資料探索與分類 (目前處於預覽階段) 提供 Azure SQL Database 和 SQL 受控執行個體中內建的基本功能,可用於探索、分類和標記您資料庫中的敏感性資料。 探索與分類您最具敏感性的資料 (商業/財務、醫療保健、個人資料等),可在您組織的資訊保護方面扮演著關鍵角色。 它可以作為以下的基礎結構:

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

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

法規遵循

除了上述可協助您的應用程式符合各種安全性需求的特色和功能之外,Azure SQL Database 也定期參與稽核,並且經過認證符合許多法規標準。 如需詳細資訊,請參閱 Microsoft Azure 信任中心,您可以在當中找到 SQL Database 合規性認證的最新清單。

後續步驟

  • 如需了解在 SQL Database 和 SQL 受控執行個體中使用登入、使用者帳戶、資料庫角色和權限的相關討論,請參閱管理登入和使用者帳戶
  • 如需了解資料庫稽核的相關討論,請參閱稽核
  • 如需了解威脅偵測的相關討論,請參閱威脅偵測