使用 AWS Go SDK 读取审计日志(CloudTrail)

这篇具有很好参考价值的文章主要介绍了使用 AWS Go SDK 读取审计日志(CloudTrail)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

公司的海外业务需要将云上的操作读取到内部的日志文件中,永久保存,供内部审计使用。

由于之前没有用过AWS相关的SDK,在使用过程中也遇到一些困难,这里记录一下,并且总结一下过程。

代码

快速开始
代码参考地址:https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/go/example_code/cloudtrail/lookup_events.go

func AwsCloudTrail() (_err error) {

    //初始化session,通过aws.config 将Region 和 AK、SK进行配置(Region、AK、SK需要自己的)
	sess := session.Must(session.NewSession(&aws.Config{
		Region:      aws.String("ap-southeast-1"),
		Credentials: credentials.NewStaticCredentials("AK", "SK", ""),
	}))
	svc := cloudtrail.New(sess)
	maxResult := int64(30)
    
    //构造请求参数,可以配置时间、limit等,具体支持参数看后面提供的文档链接
	input := &cloudtrail.LookupEventsInput{EndTime: aws.Time(time.Now()), MaxResults: &maxResult}
    
    //发送请求
	resp, err := svc.LookupEvents(input)
	if err != nil {
		fmt.Println("Got error calling CreateTrail:")
		return err
	}
    
    //读取结果
	fmt.Println("Found", len(resp.Events), "events before now")
	for _, event := range resp.Events {
		fmt.Println("Event:")
		fmt.Println(aws.StringValue(event.CloudTrailEvent))
		fmt.Println("")
		fmt.Println("Name    ", aws.StringValue(event.EventName))
		fmt.Println("ID:     ", aws.StringValue(event.EventId))
		fmt.Println("Time:   ", aws.TimeValue(event.EventTime))
		fmt.Println("User:   ", aws.StringValue(event.Username))

		fmt.Println("Resources:")

		for _, resource := range event.Resources {
			fmt.Println("  Name:", aws.StringValue(resource.ResourceName))
			fmt.Println("  Type:", aws.StringValue(resource.ResourceType))
		}

		fmt.Println("")
	}

	return nil
}

原始文档

CloudTrail 文档:https://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/APIReference/Welcome.html
CloudTrail GO SDK文档:https://docs.aws.amazon.com/sdk-for-go/api/service/cloudtrail/#CloudTrail.LookupEvents
AWS GO 使用案例文档:https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/go/example_code/cloudtrail/lookup_events.go
stackoverflow 问题文档:https://stackoverflow.com/questions/41544554/how-to-run-aws-sdk-with-credentials-from-variables
查看AWS 支持的Region:https://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html

总结复盘

起初对于审计日志没有最基础的概念,可以理解成系统的操作日志,在系统上的所有操作都会被记录下来,变成一个事件(Event)
公司海外云使用的阿里和AWS,所以首先想到可以先接入阿里云,好处是阿里云的文档中文更友好,接入更加容易,对一些基础概念可以更好的掌握。
一般的云厂商都会把各种资源封装成一个服务,同样是查看审计日志阿里云就封装成审计服务,这与阿里云的SLS完全不一样,方向错了,就越走越远了。

AWS 将审计日志封装成CloudTrail 通过调用历史记录,可以对云上操作进行监控和审计。
【1】 查看CloudTrail文档,(查看上面 CloudTrail 文档)但是会有很对的Actions文档,选择哪一个?
【2】确定Action,查看相应的SDK,以及使用方法,阿里云使用的关键字是LookupEvent,所以就查看AWS有没有相关的内容。
【3】问题是SDK文档提供的是源码类似,并没有如何使用,比如我如何New CloudTrail, 参数如何传递,在New例子中,并没有使用AK,SK的地方。
【4】文档不能提供帮助,开始Google, 找到了SDK 使用示例(AWS GO 使用案例文档)但是还是没有找到如何设置这个 session,接下来问提变成AK,SK的如何与session结合,或者与New CloudTrail结合。
【5】在寻找过程中,有很多aws.Config关键字,以前没用过,感觉可以查看整体如何使用SDK的配置,查看开发者指南,果然通过“Configuring the SDK”找到了Region、Credentials的使用方式,Credentials就包括了AK、SK的设置方式。其实有四种方式。我们没有配置文件,所以首选的Static Credentials的方式。
【6】问题演成GO如何使用Static Credentials,这个时候可以Google一下,也能找到如何与session配置结合。

难者不会,会者不难,即使一个简单的事情,当我们没有概念的时候也会觉得很复杂,关键是总结出一套探索的方法。文章来源地址https://www.toymoban.com/news/detail-750766.html

到了这里,关于使用 AWS Go SDK 读取审计日志(CloudTrail)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用cmake配置aws-cpp-sdk以及在cmake项目中使用

    clion msvc 15(2017) cmake 这里不多赘述 注意命令里一定要加–recurse-submodules参数,否则编译的时候会提示项目找不到子项目 先设置build directory为build,然后设置cmake options BUILD_ONLY:设置要编译的模块,多个模块之间用\\\";\\\"分隔 CMAKE_INSTALL_PREFIX:cmake的下载路径,完成安装之后使用f

    2024年02月02日
    浏览(43)
  • Windows下Qt使用AWS SDK for C++连接MinIO服务器

    MinIO——分布式对象存储服务器。 它是一个是一个高性能的对象存储服务器,用于构建云存储解决方案,出于工作需求用到了这个MinIO来管理文件。 但,我用的是Qt,c++语言,并且使用环境是windows,可MinIO的C++ SDK只能Linux使用,不支持Windows,如果非要自己编译Windows版本的话估

    2024年02月02日
    浏览(77)
  • 日志审计-syslog日志外发

    不同的 Linux 版本,syslog 服务名可能为 syslog,也可能为 rsyslog;以下以 syslog 为例说明。 Linux 主机所有的日志文件一般都在/var/log 下,默认只是不记录 FTP 的 活 动 , Linux系统的日志文件是可以配置的,Linux syslog设备依据两个重要的文件:/etc/syslogd 守护进程和/etc/syslog.conf 配置

    2024年02月05日
    浏览(41)
  • FISCO BCOS(十七)——— go SDK的使用

    1、创建一个工作目录 2、下载go-sdk

    2024年02月12日
    浏览(61)
  • kubernetes--kubernetes审计日志(api访问日志)

    目录 一、审计日志介绍: 二、事件和阶段: 三、Kubernetes审计日志: 四、审计日志的启用: 五、收集审计日志方案:        在Kubernetes集群中,API Server的审计日志记录了哪些用户、哪些服务请求操作集群资源,并且可以编写不通规则,控制忽略、存储的操作日志。    

    2024年02月10日
    浏览(43)
  • 区块链-FISCO BCOS Go SDK使用(一)

    上一章,介绍了智能合约的编译和部署,这一章,介绍fisco-bcos go-sdk的用法,首先,先下载go-sdk源码到本地 Go开发环境 Golang = 1.17 基本开发组件 Git(Windows、Linux及MacOS需要) Git bash(仅Windows需要) 如果用的是fisco-bcos2.x.使用以下命令 如果是fisco-bcos3.x 如果缺少库,可以提示安

    2024年01月20日
    浏览(54)
  • 安全审计——等级保护日志审计要求的一种解决方案

        在网络安全等级保护中,对日志有着一系列的要求,通常以部署日志审计系统来满足等保的要求,此处我们选择syslog来实现日志的集中收集,统一管理。     在这里我们主要目标是满足安全区域边界、安全管理中心里的下面两条的要求。其中安全管理中心的日志

    2024年02月16日
    浏览(53)
  • 日志审计系统简介

    日志审计系统简介 什么是日志审计? 综合日志审计平台,通过集中采集信息系统中的系统安全事件、用户访问记录、系统运行日志、系统运行状态等各类信息,经过规范化、过滤、归并和告警分析等处理后,以统一格式的日志形式进行集中存储和管理,结合丰富的日志统计

    2024年02月11日
    浏览(40)
  • 云原生安全日志审计

    记得添加,把配置文件挂载进去 /etc/kubernetes/manifests/kube-apiserver.yaml  具体配置文件如下 策略文件如下所示    移动云帮助中心 云原生安全-从k8s日志审计视角检测自动化工具攻击 http://elkeid.bytedance.com/docs/ElkeidData/k8s_rule.html https://github.com/jetstack/kubernetes.github.io/blob/master/docs/

    2024年02月06日
    浏览(41)
  • 一键式开启:IDaaS 日志接入 SLS日志审计发布

    应用身份服务 IDaaS (Identity as a Service)是阿里云原生身份管理系统,可以统一管理 各应用 中分散的账号,并集中分配 应用 访问控制权限,降低低效、重复的账号访问配置和运维工作。IDaaS 旗下的EIAM(Enterprise IAM)面向政企内部身份管理,其服务对象为企业员工、实习生、合作

    2023年04月26日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包