Simple Log Service支援通過預設角色、自訂角色或密鑰方式建立資料加工任務。您可在建立資料加工任務選擇自訂角色,本文介紹如何為自訂角色授予Logstore資料存取權限。
前提條件
已建立RAM角色。具體操作,請參見建立可信實體為阿里雲服務的RAM角色。
建立RAM角色時,必須選擇可信實體類型為阿里雲服務,且必須選擇受信服務為Log Service。
請檢查角色的信任策略如下,
Service
內容至少包含"log.aliyuncs.com"
。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
授權RAM角色唯讀訪問源Logstore
使用阿里雲帳號為RAM角色授權後,該RAM角色將具備讀取源Logstore資料的許可權。您可以在建立資料加工任務時,使用該RAM角色。具體操作,請參見建立資料加工任務。
使用阿里雲帳號(主帳號)或Resource Access Management員登入RAM控制台。
建立一個自訂權限原則,例如命名為:
log-etl-source-reader-policy
。該權限原則用於讀取源Logstore中的資料。具體操作,請參見通過指令碼編輯模式建立自訂權限原則。其中在指令碼編輯頁簽,您可選擇使用精確授權或模糊比對授權指令碼替換配置框中的原有內容。
精確授權
例如:源Project名稱為log-project-prod,源Logstore名稱為access_log。在實際情境中,請根據實際情況替換。
{ "Version": "1", "Statement": [ { "Action": [ "log:ListShards", "log:GetCursorOrData", "log:GetConsumerGroupCheckPoint", "log:UpdateConsumerGroup", "log:ConsumerGroupHeartBeat", "log:ConsumerGroupUpdateCheckPoint", "log:ListConsumerGroup", "log:CreateConsumerGroup" ], "Resource": [ "acs:log:*:*:project/log-project-prod/logstore/access_log", "acs:log:*:*:project/log-project-prod/logstore/access_log/*" ], "Effect": "Allow" } ] }
模糊比對授權
例如:源Project名稱為log-project-dev-a、log-project-dev-b、log-project-dev-c等,源Logstore名稱為app_a_log、app_b_log、app_c_log等,則使用模糊比對授權。在實際情境中,請根據實際情況替換。
{ "Version": "1", "Statement": [ { "Action": [ "log:ListShards", "log:GetCursorOrData", "log:GetConsumerGroupCheckPoint", "log:UpdateConsumerGroup", "log:ConsumerGroupHeartBeat", "log:ConsumerGroupUpdateCheckPoint", "log:ListConsumerGroup", "log:CreateConsumerGroup" ], "Resource": [ "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log", "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log/*" ], "Effect": "Allow" } ] }
為RAM角色添加建立的自訂許可權。具體操作,請參見為RAM角色授權。
授權RAM角色寫資料到目標Logstore(同帳號)
源Logstore和目標Logstore屬於同一個阿里雲帳號時,您使用阿里雲帳號為RAM角色授權後,該RAM角色將具備寫入加工結果到目標Logstore的許可權。您可以在建立資料加工任務時,使用該RAM角色。具體操作,請參見建立資料加工任務。
建立一個自訂權限原則,例如命名為:
log-etl-target-writer-policy
。該權限原則用於將加工結果寫入到目標Logstore。具體操作,請參見通過指令碼編輯模式建立自訂權限原則。其中在指令碼編輯頁簽,您可選擇使用精確授權或模糊比對授權指令碼替換配置框中的原有內容。
精確授權
例如:目標Project名稱為log-project-prod,目標Logstore名稱為access_log_output。在實際情境中,請根據實際情況替換。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-prod/logstore/access_log_output", "Effect": "Allow" } ] }
模糊比對授權
例如:目標Project名稱為log-project-dev-a、log-project-dev-b、log-project-dev-c等,目標Logstore名稱為app_a_log_output、app_b_log_output、app_c_log_output等,則使用模糊比對授權。在實際情境中,請根據實際情況替換。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log_output", "Effect": "Allow" } ] }
為RAM角色添加建立的自訂許可權。具體操作,請參見為RAM角色授權。
授權RAM角色寫資料到目標Logstore(跨帳號)
如果源Logstore和目標Logstore不屬於同一個阿里雲帳號,請參見本步驟完成RAM授權。例如將阿里雲帳號A下的源Logstore中的資料加工後儲存至阿里雲帳號B下的目標Logstore中,您可以按照以下步驟登入阿里雲帳號B進行授權。
在執行如下步驟前,阿里雲帳號B已完成授予RAM角色目標Logstore存取權限(同帳號)章節中的操作。具體操作,請參見授權RAM角色寫資料到目標Logstore(同帳號)。
使用阿里雲帳號(主帳號)或Resource Access Management員登入RAM控制台。
在左側導覽列,選擇 。
在RAM角色列表中,單擊目標RAM角色。
在信任策略管理頁簽中,單擊編輯信任策略。
在
Service
配置項中添加源Logstore所屬的阿里雲帳號A的ID
。其中,請根據實際情況替換源Logstore所屬的阿里雲帳號A的ID
。您可以在帳號中心查看阿里雲帳號ID。該策略表示帳號A有許可權通過Log Service擷取臨時Token來操作帳號B的資源。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "源Logstore所屬的阿里雲帳號A的ID@log.aliyuncs.com" ] } } ], "Version": "1" }
擷取RAM角色標識(ARN),具體操作,請參見查看RAM角色。
後續步驟
在資料加工任務中配置RAM角色標識。更多資訊,請參見建立資料加工任務。