使用 AWS Lake Formation 配合 Amazon EMR 控制數據訪問與權限

Original URL: https://aws.amazon.com/cn/blogs/big-data/control-data-access-and-permissions-with-aws-lake-formation-and-amazon-emr/

如果建立起一套對數據湖訪問的集中控制體系,結果會如何?我們能更安全、更便捷地幫助內部及外部客戶共享特定數據嗎?

使用AWS Lake Formation並將其與Amazon EMR相集成,大家能夠輕鬆完成這類管理任務。

本文將從特定用例出發,回顧對現有數據湖內數據訪問與權限加以控制的操作步驟。在開始之前,推薦大家參閱以下內容:

示例用例

我們假設您的企業使用AWS擴展了本地基礎設施。由於本地數據中心內已經具備用於分析及機器學習負載的固定容量,因此您選擇使用雲服務執行其他計算與存儲任務。AWS Direct Connect將您的數據中心鏈接至最近的AWS區域。由於您的Active Directory服務器仍位於本地,因此您可以使用Active Directory連接器實現用戶身份驗證聯動。爲了實現成本優化與敏捷性,您還構建起一個數據湖,通過Lake Formation將業務數據集中至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。假名化能夠帶來以下好處:

  • 保證身份驗證以及用戶/數據訪問治理的集中化實現。
  • 由於存在規範的身份驗證來源,因此管理開銷更低、安全性水平更高。
  • 顧問使用IAM角色後,僅能通過Lake Formation訪問數據以及與EMR集羣相關聯的實例配置角色。

大家無需管理指向Amazon S3的訪問活動;所有訪問都被集中在Lake Formation當中。如果要與更多用戶共享數據湖數據,只需在Lake Formation進行定義即可。

在下一節中,我們將探討如何實現這套解決方案。

創建數據湖

在開始本輪演練之前,首先需要創建一個數據湖。您可以通過策略與權限控制對該數據湖的訪問活動,具體權限可以立足數據庫、表或列層級進行創建。

在創建數據庫時,我們需要完成以下步驟以啓用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相集成的上下文之內。關於更多詳細信息,請參閱Amazon EMR與AWS Lake Formation集成功能beta版:面向Apache Spark的數據庫、表與列層級訪問控制支持,以及Amazon EMR組件介紹

  • 在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定義的權限訪問特定列或數據。關於更多詳細信息,請參閱啓用SAML的單點登錄與細粒度訪問控制架構

其中一項核心要求,就是配備一個專爲EMR集羣定義的外部IdP(例如微軟Active Directory、Okta或者Auth0)。這樣處理的好處,在於大家可以使用現有企業目錄、合規性條款以及審計方案控制Lake Formation中的數據訪問活動。關於具體操作說明,請參閱Amazon EMR與AWS Lake Formation的集成功能(beta版)

集成完成之後,顧問即可通過Zeppelin或者Apache Spark使用來自Amazon EMR的數據,且保證不會涉及PII內容。

其他安全措施

與大多數AWS服務一樣,Amazon EMR與Lake Formation也可使用IAM功能。在IAM的支持下,我們可以定義IAM用戶或角色,藉此授權對其他AWS服務及數據的訪問權限。

在這套安全模式之上,AWS CloudTrail能夠進一步跟蹤所有AWS API請求。您可以通過這項跟蹤功能滿足治理與合規層面的要求,保證及時瞭解各類AWS資源的實際使用情況。

要保護數據,大家可以使用傳輸加密與靜態加密兩種方式。此外,您也可以針對EMR集羣定義特定的安全配置。關於更多詳細信息,請參閱加密選項

要使用其他安全服務,您可以選擇Amazon GuardDuty (一項威脅檢測服務)以及 Amazon Macie(大規模數據發現與保護服務)。關於更多詳細信息,請參閱AWS上的安全性、身份與合規性

總結

數據的使用在數據格式和規模兩個方面已經取得了快速的發展。對不同技術(關係數據庫、NoSQL、圖數據庫、明文文件等)進行管理則會顯著增加運營開銷。隨着競爭烈度的提升,數據規模也將隨業務推進而飛速發展,帶來更大的計算與存儲資源壓力。這一切,都迫使組織需求通往更高敏捷性與速度水平的道路。

此外,大家可能需要與衆多內部及外部客戶共享業務需求數據,這不僅令數據治理難度進一步提升,同時也給權限與訪問管理帶來沉重負擔。

在本文中,我們解釋瞭如何控制數據湖的訪問與權限機制。指向數據的訪問活動將經過控制、加密與審計,AWS也通過這種嚴密的方式支持組織客戶的安全發展。而這一切,都將在本地IdP加AWS/其他外部資源的混合基礎架構之下成爲現實。

您也可以啓動數據湖項目,以安全且可擴展的方式通過多種IAM角色實現組織數據共享。整個過程只需要幾分鐘(而非以往安全方案的幾個月),且不會對工程設施造成任何深層影響。

作爲這項工作的自然延續,大家還可以將經過整理的數據引入AWS Machine Learning工具所支持的各類機器學習項目。

作者介紹

Nabil Ezzarhouni

AWS公司合作伙伴解決方案架構師。他主要關注DevOps、機器學習方向,作爲重度寵物愛好者的他還熱衷於陪伴他的小狗Bandit。

Pawan Matta

AWS公司解決方案架構師。Pawan喜歡與客戶合作,並在存儲與遷移等領域爲客戶提供協助。在工作之餘,Pawan喜歡觀看板球比賽和與朋友們玩主機遊戲。

本文轉載自亞馬遜AWS官方博客

原文鏈接

使用 AWS Lake Formation 配合 Amazon EMR 控制數據訪問與權限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章