假設有這樣一個情境,您的Simple Log Service位於阿里雲帳號A,Object Storage Service (OSS)位於阿里雲帳號B。您需要將Simple Log ServiceLogstore中資料投遞到OSS Bucket中,那麼您可參考本文完成自訂角色授權。
步驟一:授予阿里雲帳號A下的RAM角色role-a
讀取Logstore資料的許可權
授予帳號A下的RAM角色a讀取Logstore資料的許可權後,OSS投遞任務可以扮演該角色讀取帳號A下Logstore中的資料。
使用阿里雲帳號A登入RAM控制台。
建立一個自訂權限原則,該策略具備讀取Logstore資料的許可權。
您可選擇使用精確授權或模糊比對授權。
精確授權
在建立權限原則頁面,單擊指令碼編輯頁簽,並使用以下指令碼替換配置框中的原有內容。具體操作,請參見通過指令碼編輯模式建立自訂權限原則。
重要指令碼中的
Project名稱
和Logstore名稱
請根據實際情況替換。{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/Project名稱/logstore/Logstore名稱" ], "Effect":"Allow" } ] }
模糊比對授權
在建立權限原則頁面,單擊指令碼編輯頁簽,並使用以下指令碼替換配置框中的原有內容。具體操作,請參見通過指令碼編輯模式建立自訂權限原則。
重要例如Project名稱為log-project-dev-a、log-project-dev-b、log-project-dev-c等,Logstore名稱為website_a_log、website_b_log、website_c_log等,則您可以使用模糊比對授權。
指令碼中的
log-project-dev-*
和website_*_log*
請根據實際情況替換。
{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*" ], "Effect":"Allow" } ] }
建立RAM角色
role-a
,具體操作,請參見建立可信實體為阿里雲服務的RAM角色。重要建立RAM角色時,必須選擇可信實體類型為阿里雲服務,且必須選擇受信服務為Log Service。
請檢查角色的信任策略如下,
Service
內容至少包含"log.aliyuncs.com"
。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
為RAM角色
role-a
添加建立的自訂許可權。具體操作,請參見為RAM角色授權。
後續操作
擷取RAM角色標識(ARN),具體操作,請參見查看RAM角色。
如果您在建立OSS投遞任務時讀Logstore RAM角色選擇自訂角色,則需要輸入該資訊。更多資訊,請參見建立OSS投遞任務(新版)。
步驟二:授予阿里雲帳號B下的RAM角色b寫OSS Bucket的許可權
授予帳號B下的RAM角色role-b
寫OSS Bucket的許可權後,OSS投遞任務可以扮演該角色將帳號A下的Logstore資料投遞到帳號B下的OSS Bucket中。
使用阿里雲帳號B登入RAM控制台。
建立一個自訂權限原則,該策略具備寫OSS Bucket許可權。
在建立權限原則頁面,單擊指令碼編輯頁簽,並使用以下指令碼替換配置框中的原有內容。具體操作,請參見通過指令碼編輯模式建立自訂權限原則。
{ "Version": "1", "Statement": [ { "Action": [ "oss:PutObject" ], "Resource": "*", "Effect": "Allow" } ] }
說明如果您有更細粒度的OSS許可權控制需求,請參見RAM Policy。
建立RAM角色
role-b
,具體操作,請參見建立可信實體為阿里雲服務的RAM角色。重要建立RAM角色時,必須選擇可信實體類型為阿里雲服務,且必須選擇受信服務為Log Service。
請檢查角色的信任策略如下,
Service
內容至少包含"log.aliyuncs.com"
。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
修改RAM角色
role-b
的信任策略。具體操作,請參見修改RAM角色的信任策略。重要在Service配置項中添加阿里雲帳號A的ID@log.aliyuncs.com,並根據實際情況替換該值。您可以在帳號中心查看阿里雲帳號ID。
該策略表示阿里雲帳號A有許可權通過Log Service擷取臨時Token來操作阿里雲帳號B中的資源。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "阿里雲帳號A的ID@log.aliyuncs.com" ] } } ], "Version": "1" }
為RAM角色
role-b
添加建立的自訂許可權。具體操作,請參見為RAM角色授權。
後續操作
擷取RAM角色標識(ARN),具體操作,請參見查看RAM角色。
如果您在建立OSS投遞任務時寫OSS RAM角色選擇自訂角色,則需要輸入該資訊。更多資訊,請參見建立OSS投遞任務(新版)。