MaxCompute結合了阿里云的訪問控制服務(RAM)和令牌服務(STS)實現對數據的安全訪問。本文為您介紹控制服務(RAM)和令牌服務(STS)的授權方式。
OSS的STS模式授權
MaxCompute外部表直接訪問OSS的數據,需要事先將OSS的數據相關權限賦予MaxCompute的訪問賬號,您可以通過以下方式授權:
方式一(推薦):當MaxCompute和OSS的Owner是同一個賬號時,登錄阿里云賬號后,單擊此處完成一鍵授權。
方式二:當MaxCompute和OSS的Owner不是同一個賬號時,您可以自定義角色并授權。
創建RAM角色。
使用OSS賬號登錄RAM控制臺,通過RAM控制臺中的RAM角色創建角色。例如角色oss-admin。
說明更多創建角色操作信息,請參見創建可信實體為阿里云賬號的RAM角色。
修改RAM角色策略內容。
在RAM控制臺中的RAM角色管理頁面,單擊新建的RAM角色名稱后,在信任策略頁簽修改信任策略。當MaxCompute和OSS的Owner不是同一個賬號,設置如下所示,支持跨賬號實現MaxCompute訪問OSS。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "MaxCompute的Owner云賬號ID@odps.aliyuncs.com" ] } } ], "Version": "1" }
說明MaxCompute的Owner云賬號ID
為訪問OSS服務的賬號。更多修改角色策略內容操作,請參見修改RAM角色的信任策略。
新建權限策略。
在RAM控制臺中的權限策略管理頁面,新建權限策略,例如AliyunODPSRolePolicy。策略內容如下,您也可以自定義其他權限。
{ "Version": "1", "Statement": [ { "Action": [ "oss:ListBuckets", "oss:GetObject", "oss:ListObjects", "oss:PutObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListParts" ], "Resource": "*", "Effect": "Allow" } ] }
將新建的權限策略AliyunODPSRolePolicy授權給新建的RAM角色。
更多授權操作信息,請參見為RAM角色授權。
OTS的STS模式授權
MaxCompute外部表直接訪問OTS的數據,需要事先將OTS的數據相關權限賦予MaxCompute的訪問賬號,您可以通過以下方式授權:
方式一(推薦):當MaxCompute和OTS的Owner是同一個賬號時,登錄阿里云賬號后,單擊此處完成一鍵授權。
方式二:當MaxCompute和OTS的Owner不是同一個賬號時,您可以自定義角色并授權。
創建RAM角色。
使用OTS賬號登錄RAM控制臺,通過RAM控制臺中的RAM角色創建角色。例如角色oss-adminots。
更多創建角色操作信息,請參見創建可信實體為阿里云賬號的RAM角色。
修改RAM角色策略內容。
在RAM控制臺中的RAM角色管理頁面,單擊新建的RAM角色名稱后,在信任策略頁簽修改信任策略。當MaxCompute和OTS的Owner不是同一個賬號時,設置如下所示,支持跨賬號實現MaxCompute訪問OTS。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "MaxCompute的Owner云賬號的UID@odps.aliyuncs.com" ] } } ], "Version": "1" }
MaxCompute的Owner云賬號ID
為訪問OTS服務的賬號。新建權限策略。
在RAM控制臺中的權限策略管理頁面,新建權限策略,例如AliyunODPSRolePolicy。策略內容如下,您也可以自定義其他權限。
{ "Version": "1", "Statement": [ { "Action": [ "ots:ListTable", "ots:DescribeTable", "ots:GetRow", "ots:PutRow", "ots:UpdateRow", "ots:DeleteRow", "ots:GetRange", "ots:BatchGetRow", "ots:BatchWriteRow", "ots:ComputeSplitPointsBySize" ], "Resource": "*", "Effect": "Allow" } ] }
將新建的權限策略AliyunODPSRolePolicy授權給新建的RAM角色。
更多授權操作信息,請參見為RAM角色授權。
Hologres的STS模式授權
MaxCompute外部表直接訪問Hologres的數據,需要先將Hologres的數據相關權限賦予MaxCompute的訪問賬號,以下介紹Hologres的STS模式授權操作。
使用Hologres賬號登錄RAM控制臺,通過RAM控制臺中的RAM角色創建角色。
阿里云賬號:
阿里云賬號下的RAM用戶可以通過扮演RAM角色來訪問云資源,詳情請參見創建可信實體為阿里云賬號的RAM角色。
身份提供商:
通過設置SSO實現從企業本地賬號系統登錄至阿里云控制臺,幫您解決企業的統一用戶登錄認證要求。詳情請參見創建可信實體為身份提供商的RAM角色。
修改信任策略配置內容。
在角色頁面,單擊已創建完成的RAM角色名稱。
單擊信任策略頁簽。
在信任策略頁簽,單擊編輯信任策略。
參照如下內容修改信任策略配置。
修改信任策略配置內容與選擇的可信實體類型相關。
可信實體類型為阿里云賬號:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<UID>:root" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<UID>@odps.aliyuncs.com" ] } } ], "Version": "1" }
可信實體類型為身份提供商:
{ "Statement": [ { "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "saml:recipient": "https://signin.aliyun.com/saml-role/sso" } }, "Effect": "Allow", "Principal": { "Federated": [ "acs:ram::<UID>:saml-provider/IDP" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<UID>@odps.aliyuncs.com" ] } } ], "Version": "1" }
說明<UID>即阿里云賬號ID,可在用戶信息頁面獲取。
單擊確定。
添加RAM角色至Hologres實例并授權。
RAM角色需要有Hologres實例的開發權限,才能在權限范圍內使用Hologres。由于RAM角色默認沒有Hologres管理控制臺的查看和操作實例的權限,因此需要阿里云賬號完成RAM相關權限授予才能進行后續操作。添加RAM角色至Hologres實例,您可以通過如下方式進行授權。
通過Hologres管理控制臺授權。
在左側導航欄單擊實例列表,單擊需要授權的Hologres實例名稱。
在實例詳情頁面,單擊賬號管理。
在用戶管理頁面單擊新增用戶添加RAM角色至Hologres實例。
在DB授權頁簽,為該RAM角色授予實例的開發權限。
通過SQL方式授權。
您可以通過SQL方式進行授權,授權SQL請參見Hologres權限模型概述。
若是通過RAM用戶扮演RAM角色,RAM用戶默認沒有Hologres管理控制臺的權限,需要阿里云賬號給RAM用戶在訪問控制頁面授予AliyunRAMReadOnlyAccess權限,否則RAM用戶無法在Hologres管理控制臺進行任何操作。詳情請參見文檔授予RAM用戶權限。
Hologres還支持雙簽名的認證方式,詳情請參見創建Hologres外部表(雙簽名模式)。