通過訪問密鑰訪問數(shù)據(jù)
日志服務支持通過默認角色、自定義角色或密鑰方式創(chuàng)建數(shù)據(jù)加工任務。阿里云賬號的訪問密鑰具有最高權(quán)限,不推薦使用。您可使用RAM用戶的密鑰創(chuàng)建數(shù)據(jù)加工任務,本文介紹如何授予RAM用戶訪問Logstore的相關(guān)權(quán)限。
前提條件
已創(chuàng)建RAM用戶。具體操作,請參見創(chuàng)建RAM用戶。
創(chuàng)建RAM用戶時,請選擇訪問方式為使用永久 AccessKey 訪問,并保存AccessKey信息。
RAM用戶的AccessKey Secret只在創(chuàng)建時顯示,不支持查詢,請妥善保管,謹防泄露。
授權(quán)RAM用戶只讀訪問源Logstore
為RAM用戶授權(quán)后,該RAM用戶將具備讀取源Logstore數(shù)據(jù)的權(quán)限。您可以在創(chuàng)建數(shù)據(jù)加工任務時,使用該RAM用戶的訪問密鑰。具體操作,請參見創(chuàng)建數(shù)據(jù)加工任務。
使用阿里云賬號(主賬號)或RAM管理員登錄RAM控制臺。
創(chuàng)建一個自定義權(quán)限策略,例如命名為:
log-etl-source-reader-policy
。該權(quán)限策略用于讀取源Logstore中的數(shù)據(jù)。具體操作,請參見通過腳本編輯模式創(chuàng)建自定義權(quán)限策略。其中在腳本編輯頁簽,您可選擇使用精確授權(quán)或模糊匹配授權(quán)腳本替換配置框中的原有內(nèi)容。
精確授權(quán)
例如:源Project名稱為log-project-prod,源Logstore名稱為access_log。在實際場景中,請根據(jù)實際情況替換。
{ "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" } ] }
模糊匹配授權(quán)
例如:源Project名稱為log-project-dev-a、log-project-dev-b、log-project-dev-c等,源Logstore名稱為app_a_log、app_b_log、app_c_log等,則使用模糊匹配授權(quán)。在實際場景中,請根據(jù)實際情況替換。
{ "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用戶添加創(chuàng)建的自定義權(quán)限策略。具體操作,請參見為RAM用戶授權(quán)。
授權(quán)RAM用戶寫入數(shù)據(jù)到目標Logstore
為RAM用戶授權(quán)后,該RAM用戶將具備寫入加工結(jié)果到目標Logstore的權(quán)限。您可以在創(chuàng)建數(shù)據(jù)加工任務時,使用該RAM用戶的訪問密鑰。具體操作,請參見創(chuàng)建數(shù)據(jù)加工任務。
創(chuàng)建一個自定義權(quán)限策略,例如命名為:
log-etl-target-writer-policy
。該權(quán)限策略用于將加工結(jié)果寫入到目標Logstore。具體操作,請參見通過腳本編輯模式創(chuàng)建自定義權(quán)限策略。其中在腳本編輯頁簽,您可選擇使用精確授權(quán)或模糊匹配授權(quán)腳本替換配置框中的原有內(nèi)容。
精確授權(quán)
例如:目標Project名稱為log-project-prod,目標Logstore名稱為access_log_output。在實際場景中,請根據(jù)實際情況替換。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-prod/logstore/access_log_output", "Effect": "Allow" } ] }
模糊匹配授權(quán)
例如:目標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等,則使用模糊匹配授權(quán)。在實際場景中,請根據(jù)實際情況替換。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log_output", "Effect": "Allow" } ] }
為RAM用戶添加創(chuàng)建的自定義權(quán)限策略。具體操作,請參見為RAM用戶授權(quán)。
后續(xù)步驟
在數(shù)據(jù)加工任務中配置RAM用戶的訪問密鑰。具體操作,請參見創(chuàng)建數(shù)據(jù)加工任務。