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