通过Python SDK创建跟踪并投递操作事件到日志服务

操作审计默认仅为每个阿里云账号记录最近90天的事件。为了满足长期存储操作事件,对云资源进行安全监控、合规审计和故障诊断等,您可以创建跟踪,将新产生的事件投递到日志服务SLS、对象存储OSS或大数据计算服务MaxCompute中。本文以Python开发工具PyCharm创建单账号跟踪,并将操作事件投递到日志服务为例进行介绍。

前提条件

背景信息

通过Python SDK创建单账号跟踪时,您需要先在日志服务中创建日志项目(LogProject),才能在操作审计中创建跟踪。新创建跟踪的默认状态为已关闭,您需要开启跟踪,才能通过日志服务查询和分析操作事件。

步骤一:在日志服务中创建日志项目

本文以在杭州地域创建日志项目cloud-trail-project-test为例进行介绍。

  1. 在PyCharm中创建一个项目,例如:actiontrail

    您会得到一个文件main.py,用于运行Python SDK代码。

  2. 在PyCharm中单击Terminal或按Alt + F12,打开Terminal

  3. 执行以下命令,安装SDK依赖包。

    pip install alibabacloud_sls20201230

  4. 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:])
  5. 查看新创建的日志项目cloud-trail-project-test

    登录日志服务控制台,在Project列表区域,查看新创建的日志项目。

    image

步骤二:在操作审计中创建并启用跟踪

本文以在杭州地域创建跟踪cloud_trail_test为例进行介绍。

  1. 在PyCharm的正下方单击Terminal或按Alt + F12,打开Terminal

  2. 执行以下命令,安装SDK依赖。

    pip install alibabacloud_actiontrail20200706

  3. 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-testcn-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:])
  4. 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:])
  5. 查看新创建的跟踪cloud_trail_test及其状态(跟踪状态已开启)。

    1. 登录操作审计控制台

    2. 在左侧导航栏,单击跟踪

      跟踪页面,查看新创建的跟踪及其状态。

      image

步骤三:在日志服务中查看操作事件

在日志服务控制台,查看操作审计投递到日志服务的操作事件,并对其进行查询和分析。

  1. 登录日志服务控制台

  2. Project列表区域,单击日志项目cloud-trail-project-test

    在日志库actiontrail_cloud_trail_test中查看跟踪cloud_trail_test的投递事件。

    说明

    创建跟踪时,操作审计自动在目标日志项目(步骤一创建的日志项目)中创建日志库actiontrail_cloud_trail_test

    image

相关文档