如果建立起一套對數據湖訪問的集中控制體系,結果會如何?我們能更安全、更便捷地幫助內部及外部客戶共享特定數據嗎?
使用AWS Lake Formation并將其與Amazon EMR相集成,大家能夠輕松完成這類管理任務。
本文將從特定用例出發(fā),回顧對現有數據湖內數據訪問與權限加以控制的操作步驟。
示例用例
我們假設您的企業(yè)使用AWS擴展了本地基礎設施。由于本地數據中心內已經具備用于分析及機器學習負載的固定容量,因此您選擇使用云服務執(zhí)行其他計算與存儲任務。AWS Direct Connect將您的數據中心鏈接至最近的AWS區(qū)域。由于您的Active Directory服務器仍位于本地,因此您可以使用Active Directory連接器實現用戶身份驗證聯動。為了實現成本優(yōu)化與敏捷性,您還構建起一個數據湖,通過Lake Formation將業(yè)務數據集中至Amazon Simple Storage Service(Amazon S3)當中。
您的組織希望改善現有數據分析功能,并聘請了外部數據分析顧問。根據最低權限最佳實踐,您只希望與外部顧問共享相關數據,且要求其中不涉及任何個人身份信息(PII),例如姓名、出生日期以及社保號碼等。
為了避免云端數據受到未授權第三方的訪問,我們需要一套安全、受控、符合審計要求且經過加密的數據解決方案。您還要求在列層級限制訪問權限,確保外部顧問無法接觸到PII數據。
此外,您還希望限制顧問對云資源的訪問。他們應僅能使用特定的AWS身份與訪問管理(AWS Identity and Access Management,簡稱IAM)角色訪問EMR集群。
下圖所示,為本用例中的具體架構。
外部顧問通過兼容SMAL的本地目錄服務與IAM聯動,進而實現對AWS資源的身份驗證與訪問。大家可以控制來自本地身份提供方(IdP)對云資源的訪問。關于更多詳細信息,請參閱基于SAML 2.0的聯動機制。
Lake Formation負責管理數據訪問活動。數據湖管理員將在Lake Formation中以列為基本層級為各主體定義數據訪問權限。這里的“主體”可以是與本地目錄服務聯動的用戶。在本用例中,主體為對應外部顧問的特定角色,負責控制他們對EMR集群的只讀訪問權限。
由于我們在Lake Formation中為數據制定了細粒度權限,因此外部顧問將無法觸及員工的姓名、出生日期以及社保號碼。相反,他們只能訪問非PII列。這項措施被稱為假名化(pseudonymization)。在這類場景中,我們無法在沒有其他數據的前提下識別PII。假名化能夠帶來以下好處:
·保證身份驗證以及用戶/數據訪問治理的集中化實現。
·由于存在規(guī)范的身份驗證來源,因此管理開銷更低、安全性水平更高。
·顧問使用IAM角色后,僅能通過Lake Formation訪問數據以及與EMR集群相關聯的實例配置角色。
大家無需管理指向Amazon S3的訪問活動;所有訪問都被集中在Lake Formation當中。如果要與更多用戶共享數據湖數據,只需在Lake Formation進行定義即可。
在下一節(jié)中,我們將探討如何實現這套解決方案。
創(chuàng)建數據湖
在開始本輪演練之前,首先需要創(chuàng)建一個數據湖。您可以通過策略與權限控制對該數據湖的訪問活動,具體權限可以立足數據庫、表或列層級進行創(chuàng)建。
在創(chuàng)建數據庫時,我們需要完成以下步驟以啟用Lake Formation中的細粒度訪問控制權限。
·在Lake Formation控制臺中的Data catalog下,選擇Databases。
·選擇Create database。
·在Name部分,輸入您的數據庫名稱。
·取消Use only IAM access control for new tables in this database勾選項。
如此一來,我們即啟用了Lake Formation權限的細粒度訪問控制。
·選擇Create database。
調整權限
·在Permissions下,選擇Data permissions。
·選擇Grant。
·在IAM users and roles部分,選擇哪些特定的IAM用戶與角色可以訪問數據湖。
這些賬戶可以與兼容AWS的SAML 2.0 IdP配合使用,借此實現對來自本地Active Directory訪問的控制能力。
大家還可以直接定義Active Directory用戶與組,但僅限將Amazon EMR與Lake Formation相集成的上下文之內。
·在Database部分,選擇您的數據庫。
·在Table部分,選擇您的表。
·在Columns部分,選擇Exclude columns。
·在Exclude columns部分,選擇要排除的列(在本用例中,排除first name、last name以及ssn列)。
·在Table permissions部分,選擇Select。
這項功能允許您通過IAM用戶或角色在列層級實現訪問控制。
·選擇Grant。
Lake Formation與Amazon EMR相集成
從Amazon EMR 5.26版本開始,大家可以啟動EMR集群并將其與Lake Formation進行集成。Amazon EMR僅能根據Lake Formation定義的權限訪問特定列或數據。
其中一項核心要求,就是配備一個專為EMR集群定義的外部IdP(例如微軟Active Directory、Okta或者Auth0)。這樣處理的好處,在于大家可以使用現有企業(yè)目錄、合規(guī)性條款以及審計方案控制Lake Formation中的數據訪問活動。
集成完成之后,顧問即可通過Zeppelin或者Apache Spark使用來自Amazon EMR的數據,且保證不會涉及PII內容。
其他安全措施
與大多數AWS服務一樣,Amazon EMR與Lake Formation也可使用IAM功能。在IAM的支持下,我們可以定義IAM用戶或角色,借此授權對其他AWS服務及數據的訪問權限。
在這套安全模式之上,AWS CloudTrail能夠進一步跟蹤所有AWS API請求。您可以通過這項跟蹤功能滿足治理與合規(guī)層面的要求,保證及時了解各類AWS資源的實際使用情況。
要保護數據,大家可以使用傳輸加密與靜態(tài)加密兩種方式。此外,您也可以針對EMR集群定義特定的安全配置。
要使用其他安全服務,您可以選擇Amazon GuardDuty(一項威脅檢測服務)以及Amazon Macie(大規(guī)模數據發(fā)現與保護服務)。
總結
數據的使用在數據格式和規(guī)模兩個方面已經取得了快速的發(fā)展。對不同技術(關系數據庫、NoSQL、圖數據庫、明文文件等)進行管理則會顯著增加運營開銷。隨著競爭烈度的提升,數據規(guī)模也將隨業(yè)務推進而飛速發(fā)展,帶來更大的計算與存儲資源壓力。這一切,都迫使組織需求通往更高敏捷性與速度水平的道路。
此外,大家可能需要與眾多內部及外部客戶共享業(yè)務需求數據,這不僅令數據治理難度進一步提升,同時也給權限與訪問管理帶來沉重負擔。
在本文中,我們解釋了如何控制數據湖的訪問與權限機制。指向數據的訪問活動將經過控制、加密與審計,AWS也通過這種嚴密的方式支持組織客戶的安全發(fā)展。而這一切,都將在本地IdP加AWS/其他外部資源的混合基礎架構之下成為現實。
您也可以啟動數據湖項目,以安全且可擴展的方式通過多種IAM角色實現組織數據共享。整個過程只需要幾分鐘(而非以往安全方案的幾個月),且不會對工程設施造成任何深層影響。
作為這項工作的自然延續(xù),大家還可以將經過整理的數據引入AWS Machine Learning工具所支持的各類機器學習項目。
Original URL:https://aws.amazon.com/cn/blogs/big-data/control-data-access-and-permissions-with-aws-lake-formation-and-amazon-emr/