保護 Azure 中 PaaS 資料庫的最佳做法

在此文章中,我們將討論用來保護平台即服務 (PaaS) web 與行動應用程式的 Azure SQL DatabaseAzure Synapse Analytics 安全性的最佳做法。 這些最佳做法衍生自我們的 Azure 經驗和客戶 (例如您自己) 的經驗。

Azure SQL Database 和 Azure Synapse Analytics 可為您的網際網路型應用程式提供關聯式資料庫的服務。 讓我們來瞭解在 PaaS 部署中所使用的 Azure SQL Database 和 Azure Synapse Analytics 時,能協助保護您應用程式和資料的服務:

  • Microsoft Entra 驗證 (而不是 SQL Server 驗證)
  • Azure SQL 防火牆
  • 透明資料加密 (TDE)

使用集中式身分識別存放庫

可以將 Azure SQL Database 設定成使用下列兩種驗證類型的其中之一:

  • SQL 驗證會使用使用者名稱和密碼。 為資料庫建立伺服器時,您已指定採用使用者名稱和密碼的「伺服器管理員」登入。 使用這些認證時,您能夠以資料庫擁有者身分向該伺服器上的任何資料庫進行驗證。

  • Microsoft Entra 驗證會使用由 Microsoft Entra ID 管理的身分識別,並且受控網域和整合式網域都支援此驗證。 若要使用 Microsoft Entra 驗證,您必須建立另一個名為 "Microsoft Entra admin" 的伺服器管理員,此管理員能夠管理 Microsoft Entra 使用者和群組。 此管理員也可以執行一般伺服器管理員可執行的所有作業。

Microsoft Entra 驗證為使用 Microsoft Entra ID 中的身分識別連線至 Azure SQL Database 和 Azure Synapse Analytics 的機制。 Microsoft Entra ID 提供一個 SQL Server 驗證替代方案,可讓您停止在各個資料庫伺服器擴散使用者身分識別。 Microsoft Entra 驗證可讓您在一個中央位置集中管理資料庫使用者及其他 Microsoft 服務的身分識別。 中央識別碼管理提供單一位置以管理資料庫使用者並簡化權限管理。

使用 Microsoft Entra ID 代替 SQL 驗證的優點

  • 允許在單一位置變換密碼。
  • 使用外部 Microsoft Entra 群組來管理資料庫權限。
  • 藉由啟用整合式 Windows 驗證和 Microsoft Entra ID 支援的其他形式驗證來避免儲存密碼。
  • 使用自主資料庫使用者,在資料庫層級驗證身分。
  • 針對連線到 SQL Database 的應用程式支援權杖型驗證。
  • 支援 Active Directory Federation Services (ADFS) 的網域同盟或本機 Microsoft Entra ID 的原生使用者/密碼驗證,而不需進行網域同步處理。
  • 支援來自 SQL Server Management Studio 之使用「Active Directory 通用驗證」(包括 Multi-Factor Authentication (MFA)) 的連線。 MFA 包括增強式驗證與一系列簡單的驗證選項。 驗證選項為電話、簡訊、具有 PIN 的智慧卡或行動應用程式通知。 如需更多詳細資訊,請參閱通用驗證搭配 Azure SQL Database 和 Azure Synapse Analytics

若要深入瞭解 Microsoft Entra 驗證,請參閱:

注意

若要確定 Microsoft Entra ID 很適合您的環境,請參閱 Microsoft Entra 功能和限制

根據 IP 位址限制存取

您可以建立指定可接受之 IP 位址範圍的防火牆規則。 這些規則可以同時以伺服器和資料庫層級作為目標。 建議您儘可能使用資料庫層級防火牆規則來增強安全性,並且讓您的資料庫更具有可攜性。 伺服器層級防火牆規則最適用於系統管理員,以及當您有許多資料庫具有相同的存取需求,但您又不想花時間個別設定每個資料庫的情況。

SQL Database 的預設來源 IP 位址限制會允許來自任何 Azure 位址 (包括其他訂用帳戶和租用戶) 的存取。 您可以將其限制為只允許您的 IP 位址存取該執行個體。 即使在有 SQL 防火牆和 IP 位址限制的情況下,仍然需要增強式驗證。 請參閱本文稍早所提出的建議。

若要深入了解 Azure SQL 防火牆和 IP 限制,請參閱:

加密待用資料

透明資料加密 (TDE) 預設為啟用。 TDE 會以透明的方式加密 SQL Server、Azure SQL Database 和 Azure Synapse Analytics 資料和記錄檔。 TDE 會保護對檔案或其備份的直接存取,免於遭受入侵。 如此可讓您加密待用資料,而不需變更現有的應用程式。 TDE 應保持啟用,不過這無法阻止攻擊者使用一般存取路徑。 TDE 提供遵守各種產業中所確立的眾多法律、規定及指導方針的功能。

Azure SQL 會管理 TDE 的金鑰相關問題。 如同 TDE,在移動資料庫時,內部部署必須特別小心,如此才能保障復原能力。 在更複雜的情況下,您可以透過可延伸金鑰管理在 Azure Key Vault 中明確管理金鑰。 請參閱使用 EKM 在 SQL Server 上啟用 TDE。 也可以透過 Azure Key Vault BYOK 功能,實行自備金鑰 (BYOK)。

Azure SQL 可透過 Always Encrypted 提供資料行加密。 如此僅有獲得授權的應用程式得以存取敏感的資料行。 使用此類加密可讓加密資料行的 SQL 查詢限制於相等值。

應用程式層級加密也應該用於選擇性資料。 藉由使用保存在正確國家/地區的金鑰來加密資料,有時即可將資料主權問題的風險疑慮降低。 這甚至可以防止意外資料轉送造成問題,因為在沒有金鑰的情況下,就無法將資料解密,這裡是假設使用增強式演算法 (例如 AES 256)。

您可以採取其他預防措施來協助保護資料庫,例如設計安全系統、加密機密資產,以及建置圍繞資料庫伺服器的防火牆。

下一步

本文介紹用來保護 PaaS web 與行動應用程式的一組 SQL Database 和 Azure Synapse Analytics 安全性的最佳做法。 若要深入了解如何保護您的 PaaS 部署,請參閱︰