使用自定義ECS應(yīng)用角色訪問同賬號云資源
本文介紹在E-MapReduce控制臺上,通過創(chuàng)建集群時在基礎(chǔ)配置頁面的高級設(shè)置區(qū)域設(shè)置ECS應(yīng)用角色,實(shí)現(xiàn)以免密的方式訪問同賬號下的其它資源。例如,對象存儲OSS和日志服務(wù)SLS。
背景信息
- 指定集群只能訪問指定OSS的數(shù)據(jù)目錄。
- 指定集群訪問指定的外部資源。
前提條件
已在OSS管理控制臺,創(chuàng)建與EMR集群同一地域下的存儲空間,詳情請參見控制臺創(chuàng)建存儲空間。
操作流程
步驟一:新建權(quán)限策略
進(jìn)入新建自定義權(quán)限策略頁面。
使用云賬號登錄RAM控制臺。
在RAM訪問控制頁面,選擇 。
在權(quán)限策略頁面,單擊創(chuàng)建權(quán)限策略。
在創(chuàng)建權(quán)限策略頁面,單擊腳本編輯頁簽。
輸入權(quán)限策略內(nèi)容,然后單擊繼續(xù)編輯基本信息。
添加如下策略。
{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:ListObjects" ], "Resource": [ "acs:oss:*:*:emr-logs2", "acs:oss:*:*:emr-logs2/*" ], "Effect": "Allow" } ] }
說明策略中涉及的元素如下所示:
Action:是指對具體資源的操作。本示例是OSS的讀取和查詢目錄的權(quán)限。
Resource:是指被授權(quán)的具體對象。本示例是訪問名為emr-logs2的OSS Bucket及其中的內(nèi)容。
更多權(quán)限策略的基本元素,請參見權(quán)限策略基本元素。
輸入權(quán)限策略名稱。
本示例為test-emr。
單擊確定。
步驟二:創(chuàng)建RAM角色
在RAM訪問控制頁面,選擇 。
在角色頁面,單擊創(chuàng)建角色。
創(chuàng)建RAM角色。
單擊阿里云服務(wù)。
單擊下一步。
在配置角色面板,配置以下信息。
參數(shù)
描述
角色名稱
本示例為test-emr。
選擇受信服務(wù)
選擇云服務(wù)器。
單擊完成。
可選:修改授信服務(wù)。
重要如果您創(chuàng)建的集群是EMR 3.32之后版本、EMR 4.5之后版本或EMR 5.x及之后版本,則無需執(zhí)行本步驟。
在角色頁面,單擊剛創(chuàng)建的角色名稱。
單擊信任策略頁簽。
單擊編輯信任策略。
修改
ecs.aliyuncs.com
為emr.aliyuncs.com
。單擊保存信任策略。
添加相應(yīng)權(quán)限。
在角色頁面,單擊剛創(chuàng)建角色名稱的操作列的新增授權(quán)。
在新增授權(quán)頁面,選擇自定義策略,添加新建的權(quán)限策略。
單擊確認(rèn)新增授權(quán)。
單擊關(guān)閉。
步驟三:創(chuàng)建集群并訪問外部資源
在頂部菜單欄處,根據(jù)實(shí)際情況選擇地域和資源組。
單擊創(chuàng)建集群,在基礎(chǔ)配置頁面的高級設(shè)置區(qū)域,添加步驟二:創(chuàng)建RAM角色中創(chuàng)建的角色名稱。創(chuàng)建詳情請參見創(chuàng)建集群。
集群創(chuàng)建成功后,通過SSH登錄集群,詳情請參見登錄集群。
執(zhí)行以下命令,驗(yàn)證授權(quán)是否成功。
hdfs dfs -ls oss://<yourBucketName>/
說明示例中的<yourBucketName>為您OSS Bucket的名稱。
沒有該Bucket訪問權(quán)限時,無法訪問OSS路徑。
有該Bucket訪問權(quán)限時,可以正常訪問OSS路徑。
常見問題
- Q:創(chuàng)建集群時提示NoPermission。A:您可以參照如下方式排查解決。
- 您創(chuàng)建集群使用的用戶是否有創(chuàng)建集群和更換ECS應(yīng)用角色的權(quán)限,如果該RAM用戶權(quán)限為AliyunEMRDevelopAccess可以修改為AliyunEMRFullAccess。
- 創(chuàng)建集群時ECS應(yīng)用角色名稱是否填寫正確。
- 授信策略是否修改為emr.aliyuncs.com。
Q:HDFS無法訪問OSS路徑。
A:您可以參照如下方式排查解決。
確認(rèn)訪問的OSS Bucket是否和集群在同一個地域(Region),如果不在同一地域(Region),在訪問鏈接中需要添加相應(yīng)的Endpoint。
確認(rèn)訪問的OSS Bucket是否包含在新建的權(quán)限策略中,如果沒有,需要修改權(quán)限策略。
確認(rèn)是否在OSS控制臺上設(shè)置了該Bucket的相關(guān)權(quán)限。如果設(shè)置了相關(guān)權(quán)限,您可以在OSS控制臺上取消相關(guān)權(quán)限的設(shè)置,通過設(shè)置權(quán)限策略中的Action內(nèi)容來設(shè)置相關(guān)權(quán)限。