操作审计默认仅为每个阿里云账号记录最近90天的事件。为了满足长期存储操作事件,对云资源进行安全监控、合规审计和故障诊断等,您可以创建跟踪,将新产生的事件投递到日志服务SLS、对象存储OSS或大数据计算服务MaxCompute中。本文以Python开发工具PyCharm创建单账号跟踪,并将操作事件投递到日志服务为例进行介绍。
前提条件
请确保您已开通日志服务。具体操作,请参见开通日志服务。
重要开通日志服务不收费,操作审计将操作事件投递到日志服务后,存储操作事件需要收费。具体计费标准,请参见计费概述。
请确保您已安装Python且已搭建Python开发环境(即安装PyCharm)。具体操作,请参见安装Python和在Windows搭建Python开发环境。
请确保您已获取阿里云账号的AccessKey,且已配置好环境变量。具体操作,请参见创建AccessKey和在Windows系统环境变量中设置阿里云AccessKey。
背景信息
通过Python SDK创建单账号跟踪时,您需要先在日志服务中创建日志项目(LogProject),才能在操作审计中创建跟踪。新创建跟踪的默认状态为已关闭,您需要开启跟踪,才能通过日志服务查询和分析操作事件。
步骤一:在日志服务中创建日志项目
本文以在杭州地域创建日志项目cloud-trail-project-test
为例进行介绍。
在PyCharm中创建一个项目,例如:
actiontrail
。您会得到一个文件
main.py
,用于运行Python SDK代码。在PyCharm中单击Terminal或按
Alt + F12
,打开Terminal。执行以下命令,安装SDK依赖包。
pip install alibabacloud_sls20201230
在
main.py
中运行以下代码,在杭州地域创建日志项目cloud-trail-project-test
。代码中需要替换的信息如下:
config.endpoint = f'cn-hangzhou.log.aliyuncs.com'
中的hangzhou
为日志项目归属地域,您可以根据实际需求进行修改。关于日志服务支持的地域,请参见服务接入点。project_name='cloud-trail-project-test'
中的cloud-trail-project-test
为日志项目名称,您可以根据实际需求进行修改。关于日志项目名称的输入要求,请参见CreateProject中的请求参数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:])
查看新创建的日志项目
cloud-trail-project-test
。登录日志服务控制台,在Project列表区域,查看新创建的日志项目。
步骤二:在操作审计中创建并启用跟踪
本文以在杭州地域创建跟踪cloud_trail_test
为例进行介绍。
在PyCharm的正下方单击Terminal或按
Alt + F12
,打开Terminal。执行以下命令,安装SDK依赖。
pip install alibabacloud_actiontrail20200706
在
main.py
中运行以下代码,创建跟踪cloud_trail_test
。代码中需要替换的信息如下:
name='cloud_trail_test'
中的cloud_trail_test
为跟踪名称,您可以根据实际需求进行修改。关于跟踪名称的输入要求,请参见CreateTrail中的请求参数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****
为当前账号ID,cloud-trail-project-test
和cn-hangzhou
为步骤一创建的日志项目及其归属地域,您可以根据实际需求进行修改。
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'
为本步骤中创建的跟踪名称,您可以根据实际需求进行修改。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:])
查看新创建的跟踪
cloud_trail_test
及其状态(跟踪状态为已开启)。登录操作审计控制台。
在左侧导航栏,单击跟踪。
在跟踪页面,查看新创建的跟踪及其状态。
步骤三:在日志服务中查看操作事件
在日志服务控制台,查看操作审计投递到日志服务的操作事件,并对其进行查询和分析。
相关文档
在日志服务中查询和分析操作事件的具体操作,请参见查询和分析日志。
在日志服务中查询和分析操作事件的典型场景,请参见在日志服务SLS中分析操作事件。
通过操作审计控制台创建跟踪的具体操作,请参见创建单账号跟踪。