通過(guò)RAM角色授權(quán)模式配置數(shù)據(jù)源
本文以O(shè)SS數(shù)據(jù)源為例,為您介紹如何通過(guò)RAM角色授權(quán)模式配置數(shù)據(jù)源,提高云上數(shù)據(jù)的安全性。
前提條件
如果您需使用RAM用戶登錄并完成本文操作流程,請(qǐng)先為RAM用戶授予AliyunDataWorksFullAccess和 AliyunRAMFullAccess權(quán)限策略,詳情請(qǐng)參見為RAM用戶授權(quán)。
如果您使用的是阿里云主賬號(hào),請(qǐng)忽略該前提條件。
其中,添加權(quán)限請(qǐng)參考下圖步驟。
背景信息
數(shù)據(jù)源是數(shù)據(jù)同步任務(wù)的基礎(chǔ),同時(shí)關(guān)系著企業(yè)云上數(shù)據(jù)的安全性。DataWorks支持您使用更高安全系數(shù)的RAM角色授權(quán)模式配置并訪問(wèn)OSS、AnalyticDB for MySQL 2.0、LogHub、Tablestore和Hologres等部分?jǐn)?shù)據(jù)源,以提升云上數(shù)據(jù)的安全性,避免數(shù)據(jù)源被濫用、密鑰泄露等情況。
數(shù)據(jù)源的訪問(wèn)模式包括RAM角色授權(quán)模式和Access Key模式。本文為您介紹的是通過(guò)RAM角色授權(quán)模式配置數(shù)據(jù)源,您可以根據(jù)業(yè)務(wù)需求進(jìn)行選擇。Access Key模式和RAM角色授權(quán)模式的實(shí)現(xiàn)原理如下:
Access Key模式
在安全性較低的AK(AccessKeyID和AccessKeySecret)模式下,您只需要在頁(yè)面輸入阿里云主賬號(hào)或RAM用戶的AK,即可完成配置。
以O(shè)SS數(shù)據(jù)源為例,您在配置數(shù)據(jù)源頁(yè)面輸入具有訪問(wèn)OSS某個(gè)Bucket權(quán)限的賬號(hào)AK,即可完成配置。
在執(zhí)行、調(diào)度運(yùn)行同步任務(wù)時(shí),您可以通過(guò)該AK來(lái)訪問(wèn)OSS并讀寫數(shù)據(jù)。
說(shuō)明Access Key模式下,一旦該云賬號(hào)的AK被泄露,會(huì)導(dǎo)致OSS數(shù)據(jù)同時(shí)被泄露。
RAM角色授權(quán)模式
RAM角色授權(quán)模式致力于提供安全性更高的數(shù)據(jù)源訪問(wèn)方式,并無(wú)需生成AK,能夠有效地規(guī)避AK泄露的風(fēng)險(xiǎn)。
在RAM角色授權(quán)模式下,您只需要授權(quán)DataWorks服務(wù)賬號(hào)為具有訪問(wèn)OSS權(quán)限的角色,即可實(shí)現(xiàn)無(wú)AK訪問(wèn)OSS數(shù)據(jù)源。
同時(shí),為了兼顧企業(yè)級(jí)用戶的訴求,允許您對(duì)不同數(shù)據(jù)源設(shè)置具有能夠權(quán)限范圍的角色,實(shí)現(xiàn)更專業(yè)的權(quán)限管控。
流程介紹
為方便子賬號(hào)可以替代主賬號(hào)完成全鏈路操作,本說(shuō)明增加阿里云子賬號(hào)在每一個(gè)步驟的操作條件。RAM角色授權(quán)模式的操作流程如下。
阿里云主賬號(hào)或被授予 AliyunRAMFullAccess角色權(quán)限的RAM用戶,進(jìn)入RAM訪問(wèn)控制,分別定義待扮演角色和待授權(quán)策略。
待扮演角色:您需要?jiǎng)?chuàng)建自定義角色供DataWorks服務(wù)賬號(hào)扮演。扮演后,DataWorks服務(wù)賬號(hào)即可在角色具備的權(quán)限范圍內(nèi),訪問(wèn)OSS數(shù)據(jù)源。
待授權(quán)策略:您需要?jiǎng)?chuàng)建包含 PassRole相關(guān)權(quán)限點(diǎn)的策略,用于授權(quán)某個(gè)使用者使用某個(gè)角色創(chuàng)建數(shù)據(jù)源或運(yùn)行同步任務(wù)的權(quán)限。
阿里云主賬號(hào)或被授予 AliyunRAMFullAccess角色權(quán)限的RAM用戶,進(jìn)入RAM訪問(wèn)控制,授權(quán)步驟4、步驟6的RAM用戶使用角色的權(quán)限。
說(shuō)明如果未被授權(quán)的RAM用戶通過(guò)RAM角色授權(quán)模式創(chuàng)建數(shù)據(jù)源,則通過(guò)RAM角色授權(quán)模式數(shù)據(jù)源配置的同步任務(wù)都將運(yùn)行失敗。
數(shù)據(jù)源的創(chuàng)建者進(jìn)入DataWorks數(shù)據(jù)集成,以RAM角色授權(quán)模式創(chuàng)建數(shù)據(jù)源,實(shí)現(xiàn)運(yùn)行同步任務(wù)時(shí),以DataWorks服務(wù)賬號(hào)扮演某個(gè)角色訪問(wèn)OSS數(shù)據(jù)源的最終效果。
說(shuō)明僅當(dāng)數(shù)據(jù)源創(chuàng)建者在步驟3中被授權(quán)后,才能進(jìn)行本步驟的操作。
數(shù)據(jù)同步任務(wù)的創(chuàng)建者進(jìn)入DataStudio(數(shù)據(jù)開發(fā)),基于配置的數(shù)據(jù)源創(chuàng)建同步任務(wù)。
執(zhí)行者在DataStudio或運(yùn)維中心頁(yè)面,執(zhí)行數(shù)據(jù)同步任務(wù)。
說(shuō)明僅當(dāng)任務(wù)的執(zhí)行者在步驟3中被授權(quán)后,才能進(jìn)行本步驟的操作。
操作步驟
創(chuàng)建待扮演角色。
根據(jù)實(shí)際安全場(chǎng)景,您需自定義不同角色,以匹配不同數(shù)據(jù)源。本文以下述場(chǎng)景為例,為您介紹如何創(chuàng)建待扮演角色。
說(shuō)明僅阿里云主賬號(hào)和被授予 AliyunRAMFullAccess權(quán)限的RAM用戶可執(zhí)行本步驟操作。
某企業(yè)有100個(gè)Bucket,存放該企業(yè)的所有數(shù)據(jù),但大數(shù)據(jù)團(tuán)隊(duì)只需要使用其中某個(gè)Bucket的數(shù)據(jù)。如果使用預(yù)設(shè)的 AliyunDataWorksAccessingOSSRole角色,可能導(dǎo)致其它99個(gè)Bucket被大數(shù)據(jù)團(tuán)隊(duì)訪問(wèn),存在管理風(fēng)險(xiǎn)。
因此,云賬號(hào)負(fù)責(zé)人可以為大數(shù)據(jù)團(tuán)隊(duì)創(chuàng)建自定義角色 BigDataOssRole,并限制可以使用角色的人員為大數(shù)據(jù)團(tuán)隊(duì)的相關(guān)人員,實(shí)現(xiàn)團(tuán)隊(duì)間的權(quán)限管控。
創(chuàng)建自定義角色。
本案例示例創(chuàng)建可信實(shí)體為阿里云賬號(hào)、角色名稱為BigDataOssRole的自定義角色。創(chuàng)建步驟,詳情請(qǐng)參見創(chuàng)建可信實(shí)體為阿里云賬號(hào)的RAM角色。
創(chuàng)建自定義權(quán)限策略。
示例創(chuàng)建策略(Policy),僅可讀寫指定Bucket內(nèi)的數(shù)據(jù)。創(chuàng)建策略步驟,詳情請(qǐng)參見創(chuàng)建自定義權(quán)限策略。策略內(nèi)容如下。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:GetObject", "oss:ListObjects", "oss:GetObjectMetadata", "oss:GetObjectMeta", "oss:GetBucketAcl", "oss:GetBucketInfo", "oss:PutObject", "oss:DeleteObject", "oss:PutBucket" ], "Resource": [ "acs:oss:*:*:bucket_name_1", "acs:oss:*:*:bucket_name_1/*" ] } ] }
授權(quán)角色擁有指定權(quán)限策略。
修改BigDataOSSRole角色的信任策略,授權(quán)BigDataOSSRole角色擁有步驟2創(chuàng)建的策略(Policy),用于后續(xù)被授權(quán)BigDataOSSRole角色的用戶可讀取兩個(gè)指定Bucket的數(shù)據(jù)。
重要本步驟必須設(shè)置,否則將無(wú)法使用角色。
修改角色策略,詳情請(qǐng)參見修改RAM角色的信任策略。策略內(nèi)容如下。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "di.dataworks.aliyuncs.com" ] } } ], "Version": "1" }
授權(quán)可以使用角色的人員。
確認(rèn)所有待扮演角色后,您需要將包含PassRole權(quán)限點(diǎn)的Policy授權(quán)給相關(guān)人員,相關(guān)人員才可以通過(guò)該角色創(chuàng)建數(shù)據(jù)源和執(zhí)行同步任務(wù)。同時(shí),您可以根據(jù)實(shí)際場(chǎng)景要求配置人員和角色的對(duì)應(yīng)關(guān)系,即配置哪些人員可以使用哪些角色。
策略模板一:您可以參照如下模板創(chuàng)建策略,該模板允許被授權(quán)者使用所有與DataWorks數(shù)據(jù)集成相關(guān)的角色,請(qǐng)謹(jǐn)慎授權(quán)。
{ "Version": "1", "Statement": [ { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": "di.dataworks.aliyuncs.com" } } } ] }
策略模板二:您可以根據(jù)實(shí)際的安全場(chǎng)景需求,自定義包含PassRole權(quán)限點(diǎn)的Policy,配置人員和角色的對(duì)應(yīng)關(guān)系。
說(shuō)明僅阿里云主賬號(hào)和被授予AliyunRAMFullAccess權(quán)限的RAM用戶可以操作本步驟。
場(chǎng)景示例:如上文待扮演角色的場(chǎng)景示例所述,當(dāng)云賬號(hào)管理者為大數(shù)據(jù)團(tuán)隊(duì)定義了BigDataOssRole角色后,需要指定僅相關(guān)人員才能使用該角色。您可以自定義Policy為BigDataOssRoleAllowUse,并授權(quán)給相關(guān)人員。
創(chuàng)建名稱為BigDataOssRoleAllowUse的策略,詳情請(qǐng)參見創(chuàng)建自定義權(quán)限策略。其中,策略腳本如下:
{ "Version": "1", "Statement": [ { "Action": "ram:PassRole", "Resource": "acs:ram::19122324****:role/BigDataOssRole", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": [ "oss.aliyuncs.com", "di.dataworks.aliyuncs.com" ] } } } ] }
說(shuō)明請(qǐng)?zhí)鎿Q上述策略中的UID(19122324****)為當(dāng)前登錄的阿里云主賬號(hào)的UID。
管理員授權(quán)BigDataOssRoleAllowUse策略給允許使用BigDataOssRole角色的RAM用戶,被授權(quán)BigDataOssRoleAllowUse策略的RAM用戶可以通過(guò)BigDataOssRole角色來(lái)創(chuàng)建數(shù)據(jù)源(將BigDataOssRole作為數(shù)據(jù)源的訪問(wèn)身份)、運(yùn)行同步任務(wù)。
創(chuàng)建數(shù)據(jù)源。
當(dāng)云賬號(hào)管理者完成對(duì)數(shù)據(jù)源創(chuàng)建者的授權(quán)后,即可創(chuàng)建數(shù)據(jù)源。
阿里云主賬號(hào)和被授予 DataWorksFullAccess策略權(quán)限的RAM用戶,創(chuàng)建并配置OSS數(shù)據(jù)源。
配置時(shí),訪問(wèn)模式選擇RAM角色授權(quán)模式,其他參數(shù)配置如下。使用標(biāo)準(zhǔn)模式工作空間時(shí)您可根據(jù)業(yè)務(wù)需求在選擇配置開發(fā)或生產(chǎn)環(huán)境。
說(shuō)明本文以O(shè)SS數(shù)據(jù)源為例,實(shí)際使用時(shí),請(qǐng)以所需數(shù)據(jù)源界面為準(zhǔn)。配置OSS數(shù)據(jù)源,詳情請(qǐng)參見配置OSS數(shù)據(jù)源。
參數(shù)
描述
數(shù)據(jù)源名稱
數(shù)據(jù)源名稱必須以字母、數(shù)字、下劃線(_)組合,且不能以數(shù)字和下劃線(_)開頭。
數(shù)據(jù)源描述
對(duì)數(shù)據(jù)源進(jìn)行簡(jiǎn)單描述,不得超過(guò)80個(gè)字符。
Endpoint
OSS Endpoint信息,格式為
http://oss.aliyuncs.com
,OSS服務(wù)的Endpoint和地域有關(guān)。訪問(wèn)不同的地域時(shí),需要填寫不同的域名。說(shuō)明Endpoint的正確的填寫格式為
http://oss.aliyuncs.com
,但http://oss.aliyuncs.com
在OSS前加上Bucket值,以點(diǎn)號(hào)的形式連接。例如http://xxx.oss.aliyuncs.com
,測(cè)試連通性可以通過(guò),但同步會(huì)報(bào)錯(cuò)。Bucket
相應(yīng)的OSS Bucket信息,指存儲(chǔ)空間,是用于存儲(chǔ)對(duì)象的容器。
您可以創(chuàng)建一個(gè)或多個(gè)存儲(chǔ)空間,每個(gè)存儲(chǔ)空間可添加一個(gè)或多個(gè)文件。
您可以在數(shù)據(jù)同步任務(wù)中查找此處輸入的存儲(chǔ)空間中相應(yīng)的文件,沒(méi)有添加的存儲(chǔ)空間,則不能查找其中的文件。
訪問(wèn)模式
此處選擇RAM角色授權(quán)模式,通過(guò)STS授權(quán)的方式允許云產(chǎn)品服務(wù)賬號(hào)扮演相關(guān)角色來(lái)訪問(wèn)數(shù)據(jù)源,具備更高安全性。
選擇角色
從選擇角色下拉列表中選擇RAM角色。
地域
從地域下拉列表中選擇地域信息。
測(cè)試網(wǎng)絡(luò)連通性。
在連接配置內(nèi),單擊相應(yīng)資源組后的測(cè)試連通性。
數(shù)據(jù)同步時(shí),一個(gè)任務(wù)只能使用一種資源組。您需要測(cè)試每種資源組的連通性,以保證同步任務(wù)使用的數(shù)據(jù)集成資源組能夠與數(shù)據(jù)源連通,否則將無(wú)法正常執(zhí)行數(shù)據(jù)同步任務(wù)。如果您需要同時(shí)測(cè)試多種資源組,請(qǐng)選中相應(yīng)資源組后,單擊批量測(cè)試連通性。詳情請(qǐng)參見網(wǎng)絡(luò)連通方案。
測(cè)試連通性通過(guò)后,單擊完成。
創(chuàng)建同步任務(wù)。
創(chuàng)建數(shù)據(jù)源后,開發(fā)人員可以進(jìn)入DataStudio(數(shù)據(jù)開發(fā))頁(yè)面,基于該數(shù)據(jù)源創(chuàng)建同步任務(wù),詳情請(qǐng)參見配置同步任務(wù)。
運(yùn)行同步任務(wù)。
任務(wù)執(zhí)行者在DataStudio或運(yùn)維中心頁(yè)面,執(zhí)行數(shù)據(jù)同步任務(wù)。
說(shuō)明在DataStudio(數(shù)據(jù)開發(fā))運(yùn)行任務(wù)時(shí),請(qǐng)確保任務(wù)執(zhí)行者在步驟2(授權(quán)可以使用角色的人員)中已被授權(quán),避免任務(wù)運(yùn)行失敗。