這篇文章主要講解了“MaxCompute數(shù)據(jù)安全方法是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MaxCompute數(shù)據(jù)安全方法是什么”吧!
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),杭錦后網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:杭錦后等地區(qū)。杭錦后做網(wǎng)站價(jià)格咨詢:028-86922220MaxCompute 是一個(gè)支持多租戶的統(tǒng)一大數(shù)據(jù)處理平臺(tái),不同的用戶對(duì)數(shù)據(jù)安全需求不盡相同。為了滿足不同租戶對(duì)數(shù)據(jù)安全的靈活需求,MaxCompute 支持項(xiàng)目空間級(jí)別的安全配置,ProjectOwner 可以定制適合自己的外部賬號(hào)支持和鑒權(quán)模型并且在某種程度上保障Project的數(shù)據(jù)安全。
通常情況下,常見的開發(fā)模式為__MaxCompute+DataWorks__方式,針對(duì)這種場(chǎng)景下數(shù)據(jù)安全方案如下:
方式①:
數(shù)據(jù)保護(hù)機(jī)制也被稱之為開啟項(xiàng)目空間數(shù)據(jù)保護(hù),可以通過
MaxCompute console
開啟服務(wù)端禁止數(shù)據(jù)流出:
set projectProtection=true --設(shè)置ProjectProtection規(guī)則:數(shù)據(jù)只能流入,不能流出。 --默認(rèn)時(shí),ProjectProtection不會(huì)被設(shè)置,值為false。
方式②:
那么更多開發(fā)者通過DataWorks進(jìn)行數(shù)據(jù)分析,通常會(huì)屏顯在IDE上并且可以下載結(jié)果,這種可以通過項(xiàng)目管理 > 項(xiàng)目配置中打開“在本項(xiàng)目中能下載select結(jié)果”,具體如下:
那么這種情況下,在DataWorks查詢結(jié)果頁面就不可以通過“下載”按鈕進(jìn)行下載數(shù)據(jù)到本地。
在您的Project被設(shè)置了ProjectProtection之后,您可能很快就會(huì)遇到這樣的需求:user1向您提出申請(qǐng),她的確需要將某張表的數(shù)據(jù)導(dǎo)出您的項(xiàng)目空間。
而且經(jīng)過您的審查之后,那張表也的確沒有泄漏您關(guān)心的敏感數(shù)據(jù)。為了不影響user1的正常業(yè)務(wù)需要,MaxCompute為您提供了在ProjectProtection被設(shè)置之后的兩種數(shù)據(jù)導(dǎo)出途徑。
方式①:
ProjectOwner設(shè)置ExceptionPolicy,針對(duì)已經(jīng)開啟項(xiàng)目數(shù)據(jù)保護(hù)的進(jìn)行開例外。具體方式如下(需要通過MaxCompute console操作):
SET ProjectProtection=true WITH EXCEPTION
這種policy不同于Policy授權(quán)(盡管它與Policy授權(quán)語法完全一樣),它只是對(duì)項(xiàng)目空間保護(hù)機(jī)制的例外情況的一種描述,即所有符合policy中所描述的訪問情形都可以打破ProjectProtection規(guī)則。>>>policy詳細(xì)文檔
{ "Version": "1", "Statement": [{ "Effect":"Allow", "Principal":"ALIYUN$Alice@aliyun.com", "Action":["odps:Select"], "Resource":"acs:odps:*:projects/alipay/tables/table_test", "Condition":{ "StringEquals": { "odps:TaskType":["DT", "SQL"] } } }] }
ProjectProtection是一種數(shù)據(jù)流向的控制,而不是訪問控制。只有在用戶能訪問數(shù)據(jù)的前提下,控制數(shù)據(jù)流向才是有意義的。
***
另外,可以通過show grants [for
] [on type
]
查看某用戶權(quán)限,查看是否加例外成功。
方法②:
設(shè)置TrustedProject,若當(dāng)前項(xiàng)目空間處于受保護(hù)狀態(tài),如果將數(shù)據(jù)流出的目標(biāo)空間設(shè)置為當(dāng)前空間的TrustedProject,那么向目標(biāo)項(xiàng)目空間的數(shù)據(jù)流向?qū)⒉粫?huì)被視為觸犯ProjectProtection規(guī)則??梢酝ㄟ^如下命令方式進(jìn)行設(shè)置(需通過MaxCompute
console進(jìn)行):
list trustedprojects; --查看當(dāng)前project中的所有TrustedProjects add trustedproject; --在當(dāng)前project中添加一個(gè)TrustedProject remove trustedproject ; --在當(dāng)前project中移除一個(gè)TrustedProject
MaxCompute支持Project級(jí)別的IP白名單。
設(shè)置IP白名單后,只有白名單列表中的IP(console或者SDK所在的出口IP)能夠訪問這個(gè)Project。
設(shè)置IP白名單后,您需要等待五分鐘后才會(huì)生效。
切記在設(shè)置白名單的時(shí)候,加上自己當(dāng)前機(jī)器IP,以免把自己屏蔽。
setproject odps.security.ip.whitelist=101.132.236.134,100.116.0.0/16,101.132.236.134-101.132.236.144;
白名單中IP列表的表示格式有三種。
單純IP:例如101.132.236.134。
子網(wǎng)掩碼:100.116.0.0/16。
網(wǎng)段:101.132.236.134-101.132.236.144。
具體詳細(xì)教程可以參考, >>>>IP白名單控制 。
當(dāng)然MaxCompute Policy機(jī)制也可以實(shí)現(xiàn)控制某個(gè)用戶/或者角色的用戶從具體IP地址來訪問具體資源(表、UDF、資源)等。
Policy樣例:
{ "Version": "1", "Statement": [{ "Effect":"Allow", "Principal":"ALIYUN$alice@aliyun.com", "Action":["odps:CreateTable","odps:CreateInstance","odps:List"], "Resource":"acs:odps:*:projects/prj1", "Condition":{ "DateLessThan": { "acs:CurrentTime":"2013-11-11T23:59:59Z" }, "IpAddress": { "acs:SourceIp":"10.32.180.0/23" } } }, { "Effect":"Deny", "Principal":"ALIYUN$alice@aliyun.com", "Action":"odps:Drop", "Resource":"acs:odps:*:projects/prj1/tables/*" }] }
授權(quán)用戶alice@aliyun.com只能在"2013-11-11T23:59:59Z"這個(gè)時(shí)間點(diǎn)之前、只能從“10.32.180.0/23”這個(gè)IP段提交請(qǐng)求, 只允許在項(xiàng)目空間prj1中執(zhí)行CreateInstance, CreateTable和 List操作,禁止刪除prj1下的任何table。具體可以參考Policy文檔。
數(shù)據(jù)保護(hù)傘為DataWorks的一個(gè)數(shù)據(jù)安全模塊,具體可以通過點(diǎn)擊進(jìn)入進(jìn)行了解,其包括數(shù)據(jù)脫敏、安全審計(jì)等。 https://help.aliyun.com/document_detail/86320.html
可以針對(duì)敏感數(shù)據(jù)在DataWorks屏顯進(jìn)行加**顯示,如下圖所示:
注意:數(shù)據(jù)保護(hù)傘是DataWorks的一個(gè)模塊,如果使用了數(shù)據(jù)保護(hù)傘且進(jìn)行了數(shù)據(jù)脫敏,但是通過console進(jìn)行tunnel download還是未脫敏狀態(tài)。
1、列級(jí)別LabelSecurity訪問控制
項(xiàng)目空間中的LabelSecurity安全機(jī)制默認(rèn)是關(guān)閉的,ProjectOwner可以自行開啟。
【應(yīng)用場(chǎng)景】
場(chǎng)景說明:user_profile是某項(xiàng)目空間中的一張含有敏感數(shù)據(jù)的表,它包含有100列,其中有5列包含敏感數(shù)據(jù):id_card,
credit_card, mobile, user_addr, birthday.
當(dāng)前的DAC機(jī)制中已經(jīng)授權(quán)了所有用戶對(duì)該表的Select操作。ProjectOwner希望除了Admin之外,所有用戶都不允許訪問那5列敏感數(shù)據(jù)。
ProjectOwner操作步驟如下:
set LabelSecurity=true; --開啟LabelSecurity機(jī)制 set label 2 to table user_profile(mobile, user_addr, birthday); --將指定列的敏感等級(jí)設(shè)置為2 set label 3 to table user_profile(id_card, credit_card); --將指定列的敏感等級(jí)設(shè)置為3
Alice是項(xiàng)目空間中的一員,由于業(yè)務(wù)需要,她要申請(qǐng)?jiān)L問user_profile的mobile列的數(shù)據(jù),需要訪問1周時(shí)間。項(xiàng)目空間管理員操作步驟如下:
GRANT LABEL 2 ON TABLE user_profile TO USER alice WITH EXP 7;
更多關(guān)于列級(jí)別安全控制文檔: https://help.aliyun.com/document_detail/34604.html
2、Role Policy管理自定義Role
很多用戶會(huì)因?yàn)镈ataWorks內(nèi)置的數(shù)據(jù)開發(fā)、運(yùn)維、管理員等角色不能滿足其個(gè)性化需求,會(huì)基于ACL創(chuàng)建符合自己業(yè)務(wù)邏輯的角色如數(shù)據(jù)分析師、ETL開發(fā)等,基于這些role如何進(jìn)行復(fù)雜的授權(quán),如批量授予ods_開頭的表權(quán)限,但限制條件的,以及Deny類型的角色,這個(gè)時(shí)候就需要結(jié)合Role
policy來精細(xì)化管理。
一次操作對(duì)一組對(duì)象進(jìn)行授權(quán),如所有的函數(shù)、所有以”taobao”開頭的表。
帶限制條件的授權(quán),如授權(quán)只會(huì)在指定的時(shí)段內(nèi)才會(huì)生效、當(dāng)請(qǐng)求者從指定的IP地址發(fā)起請(qǐng)求時(shí)授權(quán)才會(huì)生效、或者只允許用戶使用SQL(而不允許其它類型的Task)來訪問某張表。
方式①:
Policy操作代碼如下所示:
get policy --讀取項(xiàng)目空間的Policy put policy--設(shè)置(覆蓋)項(xiàng)目空間的Policy get policy on role --讀取項(xiàng)目空間中某個(gè)角色的Policy put policy on role --設(shè)置(覆蓋)項(xiàng)目空間中某個(gè)角色的Policy
更多關(guān)于Policy的介紹以及操作詳見文檔: http://www.aiwanba.net/plugin/odps-doc/prddoc/odps_security/odps_sec_authorization_dac.html
方式②:
通過DataWorks-項(xiàng)目管理-MaxCompute配置-自定義用戶角色中進(jìn)行。
創(chuàng)建步驟:
【新增角色】點(diǎn)擊新建角色,填寫角色名稱,勾選需要加入該角色的賬號(hào)(子賬號(hào)用戶)。
【角色授權(quán)】包括兩種一個(gè)是表一個(gè)是項(xiàng)目。以表為例:
選擇需要授權(quán)的表,并賦予相應(yīng)的操作權(quán)限,如下所示針對(duì)具體表賦予具體權(quán)限。
說明:上述兩種方式大的區(qū)別就是,role policy可以進(jìn)行批量表授權(quán),如以taobao_開頭的。但是DataWorks大的方式需要逐個(gè)表來進(jìn)行篩選并配置權(quán)限。
MaxCompute JDBC 2.4針對(duì)數(shù)據(jù)安全加固做了一定的挑戰(zhàn),具體JDBC地址: https://github.com/aliyun/aliyun-odps-jdbc/releases
下載JDBC 2.4(建議)
配置jdbc url,通常如下制定Tunnel endpoint地址,如 jdbc:odps:http://service.cn.maxcompute.aliyun-inc.com/api?tunnelEndpoint=http://dt.cn-shanghai.maxcompute.aliyun-inc.com 。
具體region對(duì)應(yīng)的MaxCompute Endpoint和Tunnel Endpoint不做分析
開啟項(xiàng)目保護(hù)SET ProjectProtection=true,不需要加exception例外,具體可以想見項(xiàng)目保護(hù)機(jī)制章節(jié)。
打開控制返回?cái)?shù)據(jù)條數(shù):setproject READ_TABLE_MAX_ROW=1000;
基于JDBC的工具進(jìn)行查詢,數(shù)據(jù)返回條數(shù)會(huì)控制在1000條以內(nèi)。
說明:如果使用的版本小于JDBC 2.4,并且開啟了項(xiàng)目保護(hù)那么通過JDBC方式會(huì)直接報(bào)錯(cuò)(無權(quán)限)。
感謝各位的閱讀,以上就是“MaxCompute數(shù)據(jù)安全方法是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)MaxCompute數(shù)據(jù)安全方法是什么這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!