OSS投遞任務(新版)運行時,將讀取Logstore中資料並投遞到OSS Bucket中。您可以授予OSS投遞任務使用自訂角色來完成以上操作。如果Logstore和OSS Bucket不屬於同一個阿里雲帳號,您可參考本文檔完成授權操作。
前提條件
已在阿里雲帳號A下建立RAM角色a,在阿里雲帳號B下建立RAM角色b。具體操作,請參見建立可信實體為阿里雲服務的RAM角色及授權。
建立RAM角色時,必須選擇可信實體類型為阿里雲服務。
請檢查角色的信任策略如下,
Service
內容至少包含"log.aliyuncs.com"
。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
步驟一:授予帳號A下的RAM角色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名稱", "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等,則您可以使用模糊比對授權。在實際情境中,請根據實際情況替換Project名稱和Logstore名稱。
{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*", "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*/*" ], "Effect":"Allow" } ] }
設定名稱,然後單擊確定。
例如設定策略名稱稱為log-oss-export-source-policy。
為RAM角色a授權。
在左側導覽列中,選擇 。
單擊RAM角色a對應的新增授權。
選擇自訂策略,並選中步驟2中建立的權限原則(例如log-oss-export-source-policy),單擊確認新增授權。
擷取RAM角色標識(ARN)。
您在該角色的基本資料中查看RAM角色標識,例如acs:ram::13****44:role/logrole。請記錄該資訊,如果您在建立OSS投遞任務時使用的是自訂角色,則需要在讀Logstore RAM角色中輸入該資訊。
步驟二:授予帳號B下的RAM角色b寫OSS Bucket的許可權
授予帳號B下的RAM角色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。
設定名稱,然後單擊確定。
例如設定策略名稱稱為log-oss-export-sink-policy。
為RAM角色b授權。
在左側導覽列中,選擇 。
單擊目標RAM角色b對應的新增授權。
選擇自訂策略,並選中步驟2中建立的權限原則(例如log-oss-export-sink-policy),單擊確認新增授權。
修改RAM角色b的信任策略。
在RAM角色列表中,單擊RAM角色b。
在信任策略管理頁簽中,單擊信任策略。
修改信任策略。
在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角色標識(ARN)。
您可以在該角色的基本資料中查看RAM角色標識,例如acs:ram::11****55:role/ossrole。請記錄該資訊,如果您在建立OSS投遞任務時使用的是自訂角色,則需要在寫OSS RAM角色中輸入該資訊。