SQL Server 巨量資料叢集的安全性概念

適用於:SQL Server 2019 (15.x)

重要

Microsoft SQL Server 2019 巨量資料叢集附加元件將會淘汰。 SQL Server 2019 巨量資料叢集的支援將於 2025 年 2 月 28 日結束。 平台上將完全支援含軟體保證 SQL Server 2019 的所有現有使用者,而且軟體將會持續透過 SQL Server 累積更新來維護,直到該時間為止。 如需詳細資訊,請參閱公告部落格文章Microsoft SQL Server 平台上的巨量資料選項

本文將涵蓋重要的安全性相關概念。

SQL Server 巨量資料叢集可提供一致的授權和驗證。 巨量資料叢集可以與 Active Directory (AD) 整合,方法是透過完全自動化部署針對現有網域設定 AD 整合。 在搭配 AD 整合設定巨量資料叢集之後,您可以利用現有的身分識別與使用者群組在所有端點上進行統一存取。 此外,在您於 SQL Server 中建立外部資料表之後,您可以透過將外部資料表的存取權授與 AD 使用者與群組,進而將資料存取原則集中到單一位置,來控制對資料來源的存取。

在這段 14 分鐘的影片中,您將會看到巨量資料叢集安全性的概觀:

驗證

外部叢集端點支援 AD 驗證。 使用您的 AD 身分識別來向巨量資料叢集進行驗證。

叢集端點

巨量資料叢集有五個進入點

  • 主要執行個體 - 用來透過資料庫工具和 SSMS 或 Azure Data Studio 等應用程式存取叢集中 SQL Server 主要執行個體的 TDS 端點。 使用來自 Azure Data CLI (azdata) 的 HDFS 或 SQL Server 命令時,該工具將會連線到其他端點,取決於作業。

  • 用來存取 HDFS 檔案的閘道,Spark (Knox) - 用來存取服務 (例如 webHDFS 與 Spark) 的 HTTPS 端點。

  • 叢集管理服務 (控制器) 端點 - 公開 REST API 來管理叢集的巨量資料叢集管理服務。 Azdata 工具需要連線到此端點。

  • 管理 Proxy - 用來存取「記錄搜尋」儀表板和「計量」儀表板。

  • 應用程式 Proxy - 管理部署於巨量資料叢集內部之應用程式的端點。

Cluster endpoints

目前沒有開啟其他連接埠從外部存取叢集的選項。

授權

在整個叢集中,從 Spark 與 SQL Server 一路將查詢發送到 HDFS 時,不同元件之間的整合式安全性將能使原始使用者的身分識別能夠傳遞。 如上所述,有各式各樣的外部叢集端點支援 AD 驗證。

在管理資料存取的叢集中有兩個層級的授權檢查。 巨量資料內容中的授權是在 SQL Server 中完成,方法是在物件上和具有控制清單 (ACL) 的 HDFS 中使用傳統 SQL Server 權限,這會將使用者身分識別與特定權限相關聯。

安全的巨量資料叢集是指在 SQL Server 與 HDFS/Spark 之間,針對驗證和授權案例提供一致且連貫的支援。 驗證是驗證使用者或服務識別的程序,並確保其為所宣稱的身分。 授權是指根據要求使用者的識別,授與或拒絕對特定資源的存取。 此步驟是在透過驗證識別使用者之後執行。

巨量資料內容中的授權會透過存取控制清單 (ACL) 執行,這會建立使用者識別與特定權限的關聯。 HDFS 透限制對服務 API、HDFS 檔案與作業執行的存取來支援授權。

傳輸中加密及其他安全性機制

針對用戶端和外部端點之間,以及叢集內元件之間通訊的加密,是搭配 TLS/SSL 使用憑證來保護。

SQL Server 與 SQL Server 之間的所有通訊 (例如與資料集區通訊的 SQL 主要執行個體) 都是使用 SQL 登入來保護。

重要

巨量資料叢集會使用 etcd 來儲存認證。 最佳做法是,您必須確定 Kubernetes 叢集已設定為使用待用的 etcd 加密。 根據預設,不會加密儲存在 etcd 中的祕密。 Kubernetes 文件提供此管理工作的詳細資料: https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/

待用資料加密

SQL Server 巨量資料叢集的待用加密功能集可支援 SQL Server 和 HDFS 元件應用程式層級加密的核心案例。 請遵循待用加密概念和設定指南一文來取得完整的功能使用指南。

重要

針對所有 SQL Server 巨量資料叢集部署,建議使用磁碟區加密。 在 Kubernetes 叢集中設定的客戶提供存放磁碟區也應該加密,以作為待用資料加密的完整方法。 SQL Server 巨量資料叢集的待用加密功能是額外一層安全性,可針對 SQL Server 資料和記錄檔提供應用程式層級的加密,以及 HDFS 加密區域支援。

基本系統管理員登入

您可以選擇在 AD 模式中,或是僅使用基本系統管理員登入來部署叢集。 不過,只使用基本系統管理員登入並非生產環境所支援的安全性模式,只應用於評估產品。

即使您選擇 Active Directory 模式,系統仍然會為叢集系統管理員建立基本登入。 此功能會提供替代存取權,以在 AD 連線中斷時使用。

在部署之後,系統便會將叢集中的系統管理員權限授與此基本登入。 登入的使用者將會成為 SQL Server 主要執行個體中的系統管理員,以及叢集控制器中的管理員。 Hadoop 元件不支援混合模式驗證,這表示基本系統管理員登入無法用來向閘道 (Knox) 進行驗證。

這些是您需要在部署期間定義的登入認證。

叢集管理使用者名稱:

  • AZDATA_USERNAME=<username>

叢集管理密碼:

  • AZDATA_PASSWORD=<password>

注意

請注意,在非 AD 模式中,使用者名稱必須搭配上述密碼使用,以針對閘道 (Knox) 進行驗證來存取 HDFS/Spark。 在 SQL Server 2019 CU5 之前,使用者名稱為 root

從 SQL Server 2019 (15.x) CU 5 開始,當您使用基本驗證部署新的叢集時,所有端點 (包括閘道) 都會使用 AZDATA_USERNAMEAZDATA_PASSWORD。 升級至 CU 5 的叢集上的端點會繼續使用 root 作為使用者名稱,以連線至閘道端點。 這項變更不適用於使用 Active Directory 驗證的部署。 請參閱版本資訊中的透過閘道端點存取服務的認證

管理金鑰版本

SQL Server 2019 巨量資料叢集允許使用加密區域,對 SQL Server 和 HDFS 進行金鑰版本管理。 如需詳細資訊,請參閱巨量資料叢集中的金鑰版本

下一步

SQL Server 2019 巨量資料叢集簡介

工作坊:Microsoft SQL Server 巨量資料叢集架構

Kubernetes RBAC

巨量資料叢集常見問題集