Log Service定時SQL任務運行時,將在源Logstore中執行SQL分析操作,並將分析結果儲存到目標儲存中。您可以授予Log Service使用自訂角色來完成以上操作。如果源Logstore和目標Logstore不在同一個阿里雲帳號,您可參考本文檔完成授權操作。定時SQL任務支援Logstore和MetricStore,本文以Logstore為例進行說明。
前提條件
已在阿里雲帳號A下建立RAM角色role-a
,在帳號B下建立RAM角色role-b
。具體操作,請參見建立可信實體為阿里雲服務的RAM角色。
建立RAM角色時,必須選擇可信實體類型為阿里雲服務,且必須選擇受信服務為Log Service。
請檢查角色的信任策略如下,
Service
內容至少包含"log.aliyuncs.com"
。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
授予帳號A下的RAM角色role-a
分析源Logstore的許可權
授予帳號A下的RAM角色role-a
分析源Logstore的許可權後,定時SQL任務可以使用該角色在帳號A下的Logstore中執行SQL分析操作。
使用帳號A登入RAM控制台。
建立具備分析源Logstore日誌許可權的策略。
在左側導覽列,選擇
。單擊建立權限原則。
在建立權限原則頁面中,單擊指令碼編輯,然後將編輯框中的原有指令碼替換為如下內容,您可選擇使用精確授權或模糊比對授權。
精確授權
例如源Project名稱為log-project-prod,源Logstore名稱為website_log。在實際情境中,請根據實際情況替換Project名稱和Logstore名稱。
重要權限原則中的Logstore包括了Logstore和MetricStore。當您的操作對象為MetricStore時,如下策略同樣適用。
{ "Version":"1", "Statement":[ { "Action":[ "log:PostProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-prod/logstore/website_log", "acs:log:*:*:project/log-project-prod/logstore/website_log/*" ], "Effect":"Allow" }, { "Action":[ "log:GetProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-prod" ], "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:PostProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log", "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log/*" ], "Effect":"Allow" }, { "Action":[ "log:GetProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*" ], "Effect":"Allow" } ] }
單擊確定後繼續編輯基本資料,配置如下參數。
參數
說明
名稱
配置策略名稱稱。
備忘
建立策略的簡單注釋。
為RAM角色
role-a
授權。在左側導覽列中,選擇
。單擊目標RAM角色對應的新增授權。
選擇步驟2中建立的權限原則,並單擊確認新增授權。
完成後單擊關閉。
授予帳號B下的RAM角色role-b
寫目標Logstore的許可權
授予帳號B下的RAM角色role-b
寫目標Logstore的許可權後,定時SQL任務可以使用該角色將帳號A下的SQL分析結果寫入到帳號B下的Logstore中。
使用帳號B登入RAM控制台。
建立具備寫目標Logstore許可權的策略。
在左側導覽列,選擇
。單擊建立權限原則。
在建立權限原則頁面中,單擊指令碼編輯,然後將編輯框中的原有指令碼替換為如下內容,您可選擇使用精確授權或模糊比對授權。
精確授權
例如目標Project名稱為log-project-prod,目標Logstore名稱為website_log_output。在實際情境中,請根據實際情況替換Project名稱和Logstore名稱。
重要權限原則中的Logstore包括了Logstore和MetricStore。當您的操作對象為MetricStore時,如下策略同樣適用。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-prod/logstore/website_log_output", "Effect": "Allow" } ] }
模糊比對授權
例如目標Project名稱為log-project-dev-a、log-project-dev-b、log-project-dev-c等,目標Logstore名稱為website_a_log_output、website_b_log_output、website_c_log_output等,則您可以使用模糊比對授權。在實際情境中,請根據實際情況替換Project名稱和Logstore名稱。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log_output", "Effect": "Allow" } ] }
單擊確定後繼續編輯基本資料,配置如下參數。
參數
說明
名稱
配置策略名稱稱。
備忘
建立策略的簡單注釋。
為RAM角色
role-b
授權。在左側導覽列中,選擇
。單擊目標RAM角色對應的新增授權。
選擇步驟2中建立的權限原則,並單擊確認新增授權。
完成後單擊關閉。
修改RAM角色
role-b
的信任策略。在RAM角色列表中,單擊RAM角色
role-b
。在信任策略頁簽中,單擊編輯信任策略。
修改信任策略。
在Service配置項中添加阿里雲帳號A的ID,並根據實際情況替換該值。您可以在帳號中心查看阿里雲帳號ID。
該策略表示帳號A有許可權通過Log Service擷取臨時Token來操作帳號B中的資源。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "阿里雲帳號A的ID@log.aliyuncs.com" ] } } ], "Version": "1" }
完成後單擊儲存信任策略。