在 Databricks 中使用 AWS 的安全性最佳實踐
Databricks 湖倉儲平台(The Databrick Lakehouse Platform)是世界上第一個湖倉儲(lakehouse)架構——一個賦能你所有分析工作的開源、合一平台。湖倉儲使得橫跨資料團隊的跨功能合作成為實際,這些團隊可能含有資料工程師、資料科學家、機器學習工程師、分析師等等。
這篇文章中,我們會分享一系列企業資料團隊可以採用的雲端安全性功能與其功用,以根據他們的風險狀況和治理政策去強化他們在 AWS 上的 Databricks 環境。 關於更多 Databricks 如何在 Amazon Web Services (AWS)上執行,可以觀看 AWS 文件以及這一篇 《AWS上的 Databricks 安全性》好取得更多在安全性和合規上取得更多細節。
Databricks 安全性功能
客戶管理的 VPC
為了更加簡化的部署和集中化治理,讓你的雲端基礎設施與安全性團隊能夠客製化並控制 Databricks 會使用的 AWS 網絡。
私有叢集的安全叢集連線
在你的私有子網路中部署 Databricks 叢集。拜安全叢集連線所賜,VPC中的傳入規則就不需要有通訊埠打開,叢集基礎設施也不需要有公有 IP 與控制平面(the Control Plane)互動。
與 AWS PrivateLink 繫結的私有 Databricks 工作區
你可以在 AWS 上建立 AWS PrivateLinks 所驅動的 Databricks 私有工作區。透過這項功用,你可以確保所有工作區前端和後端介面的使用者和叢集流量都是在 AWS 的網路骨幹上。你也能夠根據風險狀況建立出純私有或是混合工作區。如果你有對你的 VPC 設定量身定做的DNS,請閱讀《客製化DNS與 AWS PrivateLink 的 Databricks 工作區》。
在 AWS 上與 Databricks 的資料洩漏保護
藉由 AWS 提供的雲原生防火牆服務路由(routing,動詞)流量,給予你的安全性團隊在網路出口(egress)上完全的可見度與控制能力。因為這是可插拔的架構,你可使用任何次世代防火牆(next-gen transparent firewall)。你可以使用 PrivateLink 來實作它。
給你的 S3 儲存貯體限制存取
使用 S3 儲存貯體政策對所信任的 IP 和 VPC 限制存取。確保你有符合儲存貯體政策的需求,接著就能夠有條件地允許或拒絕任何其他來源的存取。
從 Databricks 安全地存取 AWS 資料源
藉由 AWS PrivateLink 或是 閘道 VPC 端點來確保你的 Databricks 叢集與 AWS 雲原生資料來源之間的私有連線。使用 VPC 端點政策嚴謹地執行哪個 S3 儲存貯體能夠從你的客戶管理 VPC 去存取,同時也要確保你也有允許 Databricks 所需的 S3 儲存貯體有唯讀存取權。
託管服務中客戶管理的鑰匙
使用你自己在 AWS Key Management Service (KMS) 管理的機密鑰匙對你儲存在 Databricks 控制平面裡的筆記本、機密、查詢語法與查詢歷史做加密。Databricks 透過類似雲服務提供者所使用的信封加密技術維護存取鑰匙階層結構,也就是會以你自擁有的鑰匙(CMK)所包裝的資料加密鑰匙(Data Encryption Key,DEK)去加密資料。
透過 IP 存取清單限制企業 IP
如果你並不是使用純私有工作區,你可以指定信任的 IP 位址給 Databricks 工作區(譬如說,你的本地網路出口 (egress)閘道的公有 IP )。透過 IP 存取清單去設定允許與封鎖清單,確保使用者只能從已知和所信任的 IP 存取他們的 Databricks 工作區。
實作細緻的資料安全性以及透過動態檢視的遮罩
大部分的雲原生安全性控制屬於檔案層級的身份和存取管理,但如果你想要給不同使用者對資料集提供不同的身份或是遮蔽和修剪特定的欄位呢?在 Databricks 中,資料擁有者可以建立動態檢視並管理那些他們使用基於 SQL 資料物件使用權限去建立的表格控制權。這些允許權限都在表格存取控制叢集和 SQL 分析端點上嚴格地被執行。
使用叢集政策去執行資料存取模式並管理成本
透過登入直達或是表格存取控制執行資料存取模型需要 Databricks 管理者能夠嚴格執行使用者可以創建的叢集種類。叢集政策讓 Databricks 管理者可以藉由所准取的叢集設定去建立樣板,然後開始使用這些政策。這件事從成本的角度來看也是有幫助的——為著實踐隨用即付的目的,基於專案的標籤可以在叢集資源上被採用,或是只有特定的使用者在一些特殊的狀況下能夠索取像是 GPU 叢集這樣昂貴的資源而不是隨心所欲的基礎上。
從你的身份提供者透過 SCIM 自動佈建與同步使用者與群組
建立使用者和群組位置管理你資料和分析工具的存取權是種帶來複雜性和風險的反向模式。藉由 Databricks,你能從你的身份提供者經由跨網域身份識別管理(System for Cross-domain Identity Management,SCIM)去設定使得使用者和群組自動被同步。
使用權杖牌管理 API 管理個人存取權杖牌
個人存取權杖讓你的使用者不論是透過 CLI、API、或是第三方工具,都能夠存取一個 Databricks 工作區的非 UI 介面。不過,PAT權杖如果沒有集中管理或稽核就容易被誤用。權杖管理 API 允許管理者建立、表列、撤銷甚至管理與 PAT 權杖有關的生命週期,以提供集中控制好降低風險並增加治理的層級。
信任也被 Databricks 認證
Databricks 管理者能夠設定低延遲稽核紀錄讓 Databricks 使用者執行的活動被遞送。這些紀錄能夠與像是 S3 伺服器存取紀錄這樣AWS 專特的紀錄做結合,對誰在什麼時候做了什麼事提供 360 度的檢視。
註記
此篇文章作者為 Andrew Weaver 、 Greg Wood 、和 Abhinav Garg ,於 2021 年 5月 24 日撰寫於 Databricks 的公司部落格裡面。有需要的人,可以從這裏閱讀原文 — —Security Best Practices for AWS on Databricks — — 。