本文以OSS資料來源為例,為您介紹如何通過RAM角色授權模式配置資料來源,提高雲上資料的安全性。
前提條件
如果您需使用RAM使用者登入並完成本文操作流程,請先為RAM使用者授予AliyunDataWorksFullAccess和 AliyunRAMFullAccess權限原則,詳情請參見為RAM使用者授權。
如果您使用的是阿里雲主帳號,請忽略該前提條件。
其中,添加許可權請參考下圖步驟。
背景資訊
資料來源是資料同步任務的基礎,同時關係著企業雲上資料的安全性。DataWorks支援您使用更高安全係數的RAM角色授權模式配置並訪問OSS、AnalyticDB for MySQL 2.0、LogHub、Tablestore和Hologres等部分資料來源,以提升雲上資料的安全性,避免資料來源被濫用、密鑰泄露等情況。
資料來源的訪問模式包括RAM角色授權模式和Access Key模式。本文為您介紹的是通過RAM角色授權模式配置資料來源,您可以根據業務需求進行選擇。Access Key模式和RAM角色授權模式的實現原理如下:
Access Key模式
在安全性較低的AK(AccessKeyID和AccessKeySecret)模式下,您只需要在頁面輸入阿里雲主帳號或RAM使用者的AK,即可完成配置。
以OSS資料來源為例,您在配置資料來源頁面輸入具有訪問OSS某個Bucket許可權的帳號AK,即可完成配置。
在執行、調度運行同步任務時,您可以通過該AK來訪問OSS並讀寫資料。
說明Access Key模式下,一旦該雲帳號的AK被泄露,會導致OSS資料同時被泄露。
RAM角色授權模式
RAM角色授權模式致力於提供安全性更高的資料來源訪問方式,並無需產生AK,能夠有效地規避AK泄露的風險。
在RAM角色授權模式下,您只需要授權DataWorks服務帳號為具有訪問OSS許可權的角色,即可實現無AK訪問OSS資料來源。
同時,為了兼顧企業級使用者的訴求,允許您對不同資料來源設定具有能夠許可權範圍的角色,實現更專業的許可權管控。
流程介紹
為方便子帳號可以替代主帳號完成全鏈路操作,本說明增加阿里雲子帳號在每一個步驟的操作條件。RAM角色授權模式的操作流程如下。
阿里雲主帳號或被授予 AliyunRAMFullAccess角色許可權的RAM使用者,進入RAM存取控制,分別定義待扮演角色和待授權策略。
待扮演角色:您需要建立自訂角色供DataWorks服務帳號扮演。扮演後,DataWorks服務帳號即可在角色具備的許可權範圍內,訪問OSS資料來源。
待授權策略:您需要建立包含 PassRole相關許可權點的策略,用於授權某個使用者使用某個角色建立資料來源或運行同步任務的許可權。
阿里雲主帳號或被授予 AliyunRAMFullAccess角色許可權的RAM使用者,進入RAM存取控制,授權步驟4、步驟6的RAM使用者使用角色的許可權。
說明如果未被授權的RAM使用者通過RAM角色授權模式建立資料來源,則通過RAM角色授權模式資料來源配置的同步任務都將運行失敗。
資料來源的建立者進入DataWorksData Integration,以RAM角色授權模式建立資料來源,實現運行同步任務時,以DataWorks服務帳號扮演某個角色訪問OSS資料來源的最終效果。
說明僅當資料來源建立者在步驟3中被授權後,才能進行本步驟的操作。
資料同步任務的建立者進入DataStudio(資料開發),基於配置的資料來源建立同步任務。
執行者在DataStudio或營運中心頁面,執行資料同步任務。
說明僅當任務的執行者在步驟3中被授權後,才能進行本步驟的操作。
操作步驟
建立待扮演角色。
根據實際安全情境,您需自訂不同角色,以匹配不同資料來源。本文以下述情境為例,為您介紹如何建立待扮演角色。
說明僅阿里雲主帳號和被授予 AliyunRAMFullAccess許可權的RAM使用者可執行本步驟操作。
某企業有100個Bucket,存放該企業的所有資料,但巨量資料團隊只需要使用其中某個Bucket的資料。如果使用預設的 AliyunDataWorksAccessingOSSRole角色,可能導致其它99個Bucket被巨量資料團隊訪問,存在管理風險。
因此,雲帳號負責人可以為巨量資料團隊建立自訂角色 BigDataOssRole,並限制可以使用角色的人員為巨量資料團隊的相關人員,實現團隊間的許可權管控。
建立自訂角色。
本案例樣本建立可信實體為阿里雲帳號、角色名稱為BigDataOssRole的自訂角色。建立步驟,詳情請參見建立可信實體為阿里雲帳號的RAM角色。
建立自訂權限原則。
樣本建立策略(Policy),僅可讀寫指定Bucket內的資料。建立策略步驟,詳情請參見建立自訂權限原則。策略內容如下。
{ "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/*" ] } ] }
授權角色擁有指定權限原則。
修改BigDataOSSRole角色的信任策略,授權BigDataOSSRole角色擁有步驟2建立的策略(Policy),用於後續被授權BigDataOSSRole角色的使用者可讀取兩個指定Bucket的資料。
重要本步驟必須設定,否則將無法使用角色。
修改角色策略,詳情請參見修改RAM角色的信任策略。策略內容如下。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "di.dataworks.aliyuncs.com" ] } } ], "Version": "1" }
授權可以使用角色的人員。
確認所有待扮演角色後,您需要將包含PassRole許可權點的Policy授權給相關人員,相關人員才可以通過該角色建立資料來源和執行同步任務。同時,您可以根據實際情境要求配置人員和角色的對應關係,即配置哪些人員可以使用哪些角色。
原則範本一:您可以參照如下模板建立策略,該模板允許被授權者使用所有與DataWorksData Integration相關的角色,請謹慎授權。
{ "Version": "1", "Statement": [ { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": "di.dataworks.aliyuncs.com" } } } ] }
原則範本二:您可以根據實際的安全情境需求,自訂包含PassRole許可權點的Policy,配置人員和角色的對應關係。
說明僅阿里雲主帳號和被授予AliyunRAMFullAccess許可權的RAM使用者可以操作本步驟。
情境樣本:如上文待扮演角色的情境樣本所述,當雲帳號管理者為巨量資料團隊定義了BigDataOssRole角色後,需要指定僅相關人員才能使用該角色。您可以自訂Policy為BigDataOssRoleAllowUse,並授權給相關人員。
建立名稱為BigDataOssRoleAllowUse的策略,詳情請參見建立自訂權限原則。其中,策略指令碼如下:
{ "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" ] } } } ] }
說明請替換上述策略中的UID(19122324****)為當前登入的阿里雲主帳號的UID。
管理員授權BigDataOssRoleAllowUse策略給允許使用BigDataOssRole角色的RAM使用者,被授權BigDataOssRoleAllowUse策略的RAM使用者可以通過BigDataOssRole角色來建立資料來源(將BigDataOssRole作為資料來源的訪問身份)、運行同步任務。
建立資料來源。
當雲帳號管理者完成對資料來源建立者的授權後,即可建立資料來源。
阿里雲主帳號和被授予 DataWorksFullAccess策略許可權的RAM使用者,建立並配置OSS資料來源。
配置時,訪問模式選擇RAM角色授權模式,其他參數配置如下。使用標準模式工作空間時您可根據業務需求在選擇配置開發或生產環境。
說明本文以OSS資料來源為例,實際使用時,請以所需資料來源介面為準。配置OSS資料來源,詳情請參見配置OSS資料來源。
參數
描述
資料來源名稱
資料來源名稱必須以字母、數字、底線(_)組合,且不能以數字和底線(_)開頭。
資料來源描述
對資料來源進行簡單描述,不得超過80個字元。
Endpoint
OSS Endpoint資訊,格式為
http://oss.aliyuncs.com
,OSS服務的Endpoint和地區有關。訪問不同的地區時,需要填寫不同的網域名稱。說明Endpoint的正確的填寫格式為
http://oss.aliyuncs.com
,但http://oss.aliyuncs.com
在OSS前加上Bucket值,以點號的形式串連。例如http://xxx.oss.aliyuncs.com
,測試連通性可以通過,但同步會報錯。Bucket
相應的OSS Bucket資訊,指儲存空間,是用於儲存物件的容器。
您可以建立一個或多個儲存空間,每個儲存空間可添加一個或多個檔案。
您可以在資料同步任務中尋找此處輸入的儲存空間中相應的檔案,沒有添加的儲存空間,則不能尋找其中的檔案。
訪問模式
此處選擇RAM角色授權模式,通過STS授權的方式允許雲產品服務帳號扮演相關角色來訪問資料來源,具備更高安全性。
選擇角色
從選擇角色下拉式清單中選擇RAM角色。
地區
從地區下拉式清單中選擇地區資訊。
測試網路連通性。
在串連配置內,單擊相應資源群組後的測試連通性。
資料同步時,一個任務只能使用一種資源群組。您需要測試每種資源群組的連通性,以保證同步任務使用的Data Integration資源群組能夠與資料來源連通,否則將無法正常執行資料同步任務。如果您需要同時測試多種資源群組,請選中相應資源群組後,單擊批量測試連通性。詳情請參見網路連通方案。
測試連通性通過後,單擊完成。
建立同步任務。
建立資料來源後,開發人員可以進入DataStudio(資料開發)頁面,基於該資料來源建立同步任務,詳情請參見配置同步任務。
運行同步任務。
任務執行者在DataStudio或營運中心頁面,執行資料同步任務。
說明在DataStudio(資料開發)運行任務時,請確保任務執行者在步驟2(授權可以使用角色的人員)中已被授權,避免任務運行失敗。