通過Python SDK創(chuàng)建跟蹤并投遞操作事件到日志服務(wù)
操作審計默認(rèn)僅為每個阿里云賬號記錄最近90天的事件。為了滿足長期存儲操作事件,對云資源進行安全監(jiān)控、合規(guī)審計和故障診斷等,您可以創(chuàng)建跟蹤,將新產(chǎn)生的事件投遞到日志服務(wù)SLS、對象存儲OSS或大數(shù)據(jù)計算服務(wù)MaxCompute中。本文以Python開發(fā)工具PyCharm創(chuàng)建單賬號跟蹤,并將操作事件投遞到日志服務(wù)為例進行介紹。
前提條件
請確保您已開通日志服務(wù)。具體操作,請參見開通日志服務(wù)。
重要開通日志服務(wù)不收費,操作審計將操作事件投遞到日志服務(wù)后,存儲操作事件需要收費。具體計費標(biāo)準(zhǔn),請參見計費概述。
請確保您已安裝Python且已搭建Python開發(fā)環(huán)境(即安裝PyCharm)。具體操作,請參見安裝Python和在Windows搭建Python開發(fā)環(huán)境。
請確保您已獲取阿里云賬號的AccessKey,且已配置好環(huán)境變量。具體操作,請參見創(chuàng)建AccessKey和在Windows系統(tǒng)環(huán)境變量中設(shè)置阿里云AccessKey。
背景信息
通過Python SDK創(chuàng)建單賬號跟蹤時,您需要先在日志服務(wù)中創(chuàng)建日志項目(LogProject),才能在操作審計中創(chuàng)建跟蹤。新創(chuàng)建跟蹤的默認(rèn)狀態(tài)為已關(guān)閉,您需要開啟跟蹤,才能通過日志服務(wù)查詢和分析操作事件。
步驟一:在日志服務(wù)中創(chuàng)建日志項目
本文以在杭州地域創(chuàng)建日志項目cloud-trail-project-test
為例進行介紹。
在PyCharm中創(chuàng)建一個項目,例如:
actiontrail
。您會得到一個文件
main.py
,用于運行Python SDK代碼。在PyCharm中單擊Terminal或按
Alt + F12
,打開Terminal。執(zhí)行以下命令,安裝SDK依賴包。
pip install alibabacloud_sls20201230
在
main.py
中運行以下代碼,在杭州地域創(chuàng)建日志項目cloud-trail-project-test
。代碼中需要替換的信息如下:
config.endpoint = f'cn-hangzhou.log.aliyuncs.com'
中的hangzhou
為日志項目歸屬地域,您可以根據(jù)實際需求進行修改。關(guān)于日志服務(wù)支持的地域,請參見服務(wù)接入點。project_name='cloud-trail-project-test'
中的cloud-trail-project-test
為日志項目名稱,您可以根據(jù)實際需求進行修改。關(guān)于日志項目名稱的輸入要求,請參見CreateProject中的請求參數(shù)projectName
。
import os import sys from typing import List from alibabacloud_sls20201230.client import Client as Sls20201230Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_sls20201230 import models as sls_20201230_models from alibabacloud_tea_util import models as util_models class Sample: def __init__(self): pass @staticmethod def create_client() -> Sls20201230Client: config = open_api_models.Config( access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] ) config.endpoint = f'cn-hangzhou.log.aliyuncs.com' return Sls20201230Client(config) @staticmethod def main(args: List[str],) -> None: client = Sample.create_client() create_project_request = sls_20201230_models.CreateProjectRequest( project_name='cloud-trail-project-test' ) runtime = util_models.RuntimeOptions() headers = {} try: client.create_project_with_options(create_project_request, headers, runtime) except Exception as error: print(error.message) if __name__ == '__main__': Sample.main(sys.argv[1:])
查看新創(chuàng)建的日志項目
cloud-trail-project-test
。登錄日志服務(wù)控制臺,在Project列表區(qū)域,查看新創(chuàng)建的日志項目。
步驟二:在操作審計中創(chuàng)建并啟用跟蹤
本文以在杭州地域創(chuàng)建跟蹤cloud_trail_test
為例進行介紹。
在PyCharm的正下方單擊Terminal或按
Alt + F12
,打開Terminal。執(zhí)行以下命令,安裝SDK依賴。
pip install alibabacloud_actiontrail20200706
在
main.py
中運行以下代碼,創(chuàng)建跟蹤cloud_trail_test
。代碼中需要替換的信息如下:
name='cloud_trail_test'
中的cloud_trail_test
為跟蹤名稱,您可以根據(jù)實際需求進行修改。關(guān)于跟蹤名稱的輸入要求,請參見CreateTrail中的請求參數(shù)Name
。sls_project_arn='acs:log:cn-hangzhou:141339776561****:project/cloud-trail-project-test'
中的acs:log:cn-hangzhou:141339776561****:project/cloud-trail-project-test
為跟蹤投遞的日志項目的ARN,其中141339776561****
為當(dāng)前賬號ID,cloud-trail-project-test
和cn-hangzhou
為步驟一創(chuàng)建的日志項目及其歸屬地域,您可以根據(jù)實際需求進行修改。
import os import sys from typing import List from alibabacloud_actiontrail20200706.client import Client as Actiontrail20200706Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_actiontrail20200706 import models as actiontrail_20200706_models from alibabacloud_tea_util import models as util_models class Sample: def __init__(self): pass @staticmethod def create_client() -> Actiontrail20200706Client: config = open_api_models.Config( access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] ) config.endpoint = f'actiontrail.cn-hangzhou.aliyuncs.com' return Actiontrail20200706Client(config) @staticmethod def main(args: List[str], ) -> None: client = Sample.create_client() create_trail_request = actiontrail_20200706_models.CreateTrailRequest( name='cloud_trail_test', sls_project_arn='acs:log:cn-hangzhou:141339776561****:project/cloud-trail-project-test' ) runtime = util_models.RuntimeOptions() try: client.create_trail_with_options(create_trail_request, runtime) except Exception as error: print(error.message) if __name__ == '__main__': Sample.main(sys.argv[1:])
在
main.py
中運行以下代碼,開啟跟蹤cloud_trail_test
。代碼中需要替換的信息如下:
name='cloud_trail_test'
為本步驟中創(chuàng)建的跟蹤名稱,您可以根據(jù)實際需求進行修改。import os import sys from typing import List from alibabacloud_actiontrail20200706.client import Client as Actiontrail20200706Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_actiontrail20200706 import models as actiontrail_20200706_models from alibabacloud_tea_util import models as util_models class Sample: def __init__(self): pass @staticmethod def create_client() -> Actiontrail20200706Client: config = open_api_models.Config( access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] ) config.endpoint = f'actiontrail.cn-hangzhou.aliyuncs.com' return Actiontrail20200706Client(config) @staticmethod def main(args: List[str],) -> None: client = Sample.create_client() start_logging_request = actiontrail_20200706_models.StartLoggingRequest( name='cloud_trail_test' ) runtime = util_models.RuntimeOptions() try: client.start_logging_with_options(start_logging_request, runtime) except Exception as error: print(error.message) if __name__ == '__main__': Sample.main(sys.argv[1:])
查看新創(chuàng)建的跟蹤
cloud_trail_test
及其狀態(tài)(跟蹤狀態(tài)為已開啟)。登錄操作審計控制臺。
在左側(cè)導(dǎo)航欄,單擊跟蹤。
在跟蹤頁面,查看新創(chuàng)建的跟蹤及其狀態(tài)。
步驟三:在日志服務(wù)中查看操作事件
在日志服務(wù)控制臺,查看操作審計投遞到日志服務(wù)的操作事件,并對其進行查詢和分析。
登錄日志服務(wù)控制臺。
在Project列表區(qū)域,單擊日志項目
cloud-trail-project-test
。在日志庫
actiontrail_cloud_trail_test
中查看跟蹤cloud_trail_test
的投遞事件。說明創(chuàng)建跟蹤時,操作審計自動在目標(biāo)日志項目(步驟一創(chuàng)建的日志項目)中創(chuàng)建日志庫
actiontrail_cloud_trail_test
。
相關(guān)文檔
在日志服務(wù)中查詢和分析操作事件的具體操作,請參見查詢和分析日志。
在日志服務(wù)中查詢和分析操作事件的典型場景,請參見在日志服務(wù)SLS中分析操作事件。
通過操作審計控制臺創(chuàng)建跟蹤的具體操作,請參見創(chuàng)建單賬號跟蹤。