【云安全小技巧】——使用EMR分析云审计数据

发布于:2024-10-24 编辑:匿名 来源:网络

前言云安全小技巧系列文章是腾讯云账号与权限团队一线开发人员推出的一系列关于用户安全的小技巧。本系列文章旨在帮助腾讯云用户充分利用腾讯云提供的产品功能,安全解决实际生产中遇到的问题。

文章会提到很多应用场景以及错误的解决方案和正确安全的解决方案。本系列文章不仅会有场景分析,还会有技术分析,所以只要你是腾讯云的用户,无论你是技术新手还是技术专家,都可以一起讨论和实践。

对于用户提出的安全问题,我们将尽快跟进,并从平台角度提供安全合理的解决方案。场景 在实际工作中,我们经常会遇到用户想要定期审核自己的腾讯云账号。

每个用户都有不同的审核规则。审计规则可能有很多,我们就不详细描述了。

这里只是一个简单的例子,腾讯云客户A。客户A有一个腾讯云主账户,这个主账户下有很多子账户。

A老板希望能够随时关注A账户下的资源子账户,全面了解他们在何时何地经营过什么业务?并且您可以自行定制审核规则。一旦触犯规则,可以及时通知老板。

在收到很多类似的需求后,我们开始反思云审计应该具备什么样的开放功能来帮助用户实现自己的愿望,让客户A的老板能够以上帝的视角俯瞰整个腾讯云账号,只要因为没有预期的干扰可以被及时感知。 (就像《将夜》中的大师,俯视世界)后来我们不断尝试和探索,终于找到了一个可持续的、可扩展的、可移植的解决方案,可以帮助客户A的老板从上帝的角度审视他的业务。

腾讯云账号。为了验证该方案的可用性和鲁棒性,我们已经在现网运行了约两个月的时间。

事实证明,该方案运行稳定,可分析TB级数据。基本概念在介绍整体解决方案之前,我们先介绍几个基本概念。

了解了这些概念之后。我们会详细介绍解决方案,并在介绍解决方案的同时附上关键步骤的源码,以便客户A老板的程序员能够快速实现老板的需求。

毕竟我们都是程序员,为什么要让程序员为难程序员呢?什么是云审计?云审计可以获取您的腾讯云账号下的API调用历史记录,包括通过腾讯云管理控制台、腾讯云SDK、命令行工具以及其他腾讯云服务进行的API调用,并监控腾讯云中的任何部署。行为。

您可以确定哪些子用户和协作者使用腾讯云API、从哪个源IP地址进行调用以及调用发生的时间。具体内容请参见云审计产品页面。

什么是跟踪集 跟踪是一种配置,可用于将云审计的事件传递到腾讯云的 COS 存储桶。简单来说,跟踪集可以帮助用户将 API 调用记录持久保存到 COS 存储桶中。

之所以有这个功能,是因为云审计目前只能帮助用户缓存一段有限时间内的API调用记录,无法实现持久化存储。什么是 COS 对象存储(Cloud Object Storage,COS)是腾讯云为非结构化数据提供的分布式存储服务,支持 HTTP/HTTPS 协议访问。

它可以容纳海量数据,并确保用户无感知带宽和容量扩展。 ,可以作为大数据计算分析的数据池。

腾讯云 COS 提供 Web 管理界面、多语言 SDK、命令行和图形化工具,并完全兼容 S3 API 接口,允许用户直接使用社区工具和插件。 COS还可以与其他云产品结合,比如利用CDN的全球节点提供加速服务,利用数据万向的图像处理能力提供一站式图像解决方案。

具体内容请参考对象存储的产品介绍页面。什么是电子病历? Elastic MapReduce (EMR) 将云技术与 Hadoop、Hive、Spark、Hbase、Storm 等社区开源技术相结合,提供安全、低成本、高可靠、弹性扩展的云托管 Hadoop 服务。

您可以在几分钟内创建安全可靠的专用 Hadoop 集群,以分析集群内数据节点或 COS 上驻留的海量 PB 数据。具体内容请参考EMR的产品介绍页面。

详细计划 了解了以上基本概念后,有经验的程序员大概就知道计划是什么样子了。但我还是决定详细介绍一下详细的计划。

如果你得到意想不到的惊喜怎么办?首先我们画一张图,体验一下作为上帝俯瞰整个解决方案的乐趣。作为一名程序员,你可以站在上帝的角度理解为什么老板要忽略他的云账户。

只有这样,我们才有更多的动力去帮助老板实现这个计划。解决方案描述 从上图可以看出,客户A在腾讯云上拥有大量资源,员工数量也很多。

分支机构遍布世界各地,员工也非常勤奋。那么如果你是这家公司的老板,你是否想默默关注我全球员工在云上的工作状态和行为,并通过这个视角,及时发现安全风险并及时做出调整?以下解决方案介绍的重点是帮助用户快速构建上图描述的解决方案。

所以假设您已经拥有上述所需的所有云资源。例如,当我描述跟踪集的格式时,我不会介绍如何创建跟踪集。

还假设您已经掌握了 MapReduce 的基本概念。如果我在描述 Hive,我不会详细介绍 Hive 是什么。

在开始正式详细描述该解决方案之前,我需要首先谈谈该解决方案目前的局限性。 COS 存储桶必须建在上海地区,因为目前云审计仅支持将 API 调用记录下发到上海地区的 COS 存储桶。

目前仅支持控制流日志分析,不支持数据流审计分析。虽然 COS 桶只能建在上海地区,但是可以记录各个地区的操作记录。

也就是说,我们的数据必须是完整的,不会有死角。 Cloud Audit 并非会记录所有业务审计日志。

支持的业务列表请参见云审计产品文档。 EMR集群也最好建在上海,因为这样可以避免大量的外部网络流量。

创建 EMR 集群时,关键一步是让 EMR 读取您的 COS 资源。这个授权非常重要,不能忽略。

在 Hive 上创建基于 COS 的数据库,用于连接 Hive 数据库。登录EMR Master机器,执行以下命令连接Hive。

代码语言:shell copy cd /usr/local/service/hive/bin && ./beeline -u "jdbc:hive2://10.0.0.1:" -n hadoop -p xxxxxx(你的Hive密码)创建一个COS- based 数据库连接到hive后,可以基于其上的COS存储桶创建数据库。您可以执行以下命令。

代码语言:sql copy create database cloudaudit location '';将云审计的核心字段映射到Hive表中的字段。创建完基于 COS 的数据库后,下一步就是将其存储在 COS 中,将云审计数据映射到 Hive 表中,以便我们可以使用 MapReduce 来分析云审计数据。

(创建这个映射关系时,要充分了解云审计的各个领域,这里不再赘述,用户可以自行了解)下面是具体的建表语句。代码语言:sql copy CREATE EXTERNAL TABLE `cloudaudit_logs`( `useridentity` struct COMMENT '账户信息,其中accountid为主账户和principalid是当前操作账户', `eventtime` string COMMENT '事件发生的时间', `eventsource` string COMMENT '事件来源', `sourceipaddress` string COMMENT '事件发起的IP地址', ` eventregion` string COMMENT '资源的区域' , `eventname` string COMMENT '事件名称,例如:RestartInstances',`resourcetype` string COMMENT '资源类型,例如:CVM', `useragent` string COMMENT '主叫代理', `errorcode` string COMMENT '错误码,0表示正确', `errormessage` string COMMENT '错误描述', ` extraeventdata` struct COMMENT '仅用于登录的额外字段', `requestid` string COMMENT '请求的唯一 ID', `eventid` string COMMENT '请求的唯一 ID日志',`eventtype` string COMMENT '请求类型,ConsoleCall 代表控制台操作,ApiCall 代表 API 调用,ConsoleLogin 代表登录', `apiversion` string COMMENT 'api 版本', `actiontype` string COMMENT '操作类型', `resources` array COMMENT 'resource', `resourcename` string COMMENT '资源名称') PARTITIONED BY (`dt` string) //这是一个分区,很重要目前每小时有 1 个分区,1 个分区对应 COS 存储桶下的一个目录 ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'ignore.malformed.json'='true') STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION '' 定期将 COS 存储桶中的数据映射到 Hive 表。

上一步是根据云审计字段的映射创建的。 Hive表,那么需要定期(目前为一小时)将COS目录下的数据映射到Hive表。

以下是核心Python代码。代码语言:python 代码运行次数:0 复制 Cloud Studio 代码运行 lastHour = (datetime.datetime.now() - datetime.timedelta(hours=1)).strftime('%Y%m%d%H')hive_client = hiveClient.HiveClient(db_host=config.HIVE_CONFIG['host'], port=config.HIVE_CONFIG['port'], user=config.HIVE_CONFIG['user'], 密码=config.HIVE_CONFIG['passWord'], 数据库= config.HIVE_CONFIG['database'], authMechanism=config.HIVE_CONFIG['authMechanism'])# 第一步:首先判断要创建的分区是否存在。

如果不存在,则创建一个新分区partitionSql = 'showpartitionscloudaudit_logs'result = hive_client.query(partitionSql)partitions = []for row in result:partitions.append(row[0])if'dt='+lastHour不在分区中:alterPartitionSql = 'ALTER TABLE cloudaudit_logs ADD PARTITION (dt="' + lastHour + '") location"' + lastHour + '"' hive_client.queryWithoutReturn(alterPartitionSql) 将 COS 中的冷数据聚合为热数据。这句话的含义不难理解。

实际上 COS 中存储的日志数据是往往很大,无法直接作为逻辑开发的数据基础,所以需要对里面的数据进行一次聚合,并将结果数据存储在Mysql等热门介质中,下面是一段核心的Python代码。聚合Hive数据。

语言:javascript copy# 第二步:执行数据统计命令 sql = 'select useridentity.accountid,userIdentity.principalId,sourceIPAddress,eventName,resourceType,errorCode,eventType,' \ ' count(*) as cnt from cloudaudit_logs where dt = " ' + lastHour + '" group by userIdentity.accountid,' \ 'sourceIPAddress,userIdentity.principalId,eventName,resourceType,errorCode,eventType'result = hive_client.query(sql)hive_client.close() 即将执行的操作接下来发生的事情,我想大家都猜到了,就是将结果数据存储在Mysql中。然后就是定期的审核规则,上帝视角可能是这样的。

操作时序图可能是这样的。

【云安全小技巧】——使用EMR分析云审计数据

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 极氪表示“不会造无聊的汽车”,那么它会成为未来出行的标杆吗?

    极氪表示“不会造无聊的汽车”,那么它会成为未来出行的标杆吗?

    以纯电动出行为使命,极氪智能科技成立。 它有集团制造能力的背书,还有初创品牌自身天马行空的想象力,这让它有底气说“不做无聊的车”。 对严格来说,极氪是一个年轻的品牌,但其在新能源领域的思考并不肤浅,安聪慧亲自带队担任极氪智能科技CEO,意义非凡。 极氪的起点高,

    06-21

  • 【创业24小时】2022年1月5日

    【创业24小时】2022年1月5日

    2022年1月5日投融资昨天国内市场共发生18起投资披露事件,其中先进制造6起(中润化工、博瑞吉芯、芯谷微电子、东方能源、星辉新材料、昕原半导体)、医疗健康案例5个(顶级制药、耀明药业、好孕妈妈、赛岚制药、金医盛世)、企业服务3个(超参科技、SphereEx、联泰集群)、本

    06-18

  • 雷锋网2019年度“人工智能最佳掘金案例榜单”正式揭晓

    雷锋网2019年度“人工智能最佳掘金案例榜单”正式揭晓

    如果说过去的四年是人工智能商业化进程的上半场,那么即将结束的这一年已正式引领行业进入下半场。 。 四年前,当工业界和学术界怀揣着用AI打造全新互联网级To C市场的梦想时,四年后的今天,人工智能的主战场早已转移到远离现实的传统行业。 科技感。 三年前,当业界开始认识

    06-17

  • 爆买3700亿,年轻人沉迷彩票

    爆买3700亿,年轻人沉迷彩票

    你幻想过一夜暴富吗? 很多人肯定都想过,尤其是涉世不深的年轻人。 刚毕业找工作的时候,我常常躺在床上想象,如果余额宝突然多了两个零,我要怎么花? 我想买一台顶级的电脑,建一个游戏室,安装各种炫酷的设备。 然后继续幻想,如果还有多个0,怎么花呢? 不,我什么也想不

    06-18

  • 伟创微电子获1亿元A+轮融资,上海国房建设领投

    伟创微电子获1亿元A+轮融资,上海国房建设领投

    投资圈(ID:pedaily)据10月13日消息,伟创微电子(上海)有限公司(以下简称“伟创微电子”) “伟创微电子”)近日宣布完成A+轮融资,融资金额超亿元。 本轮融资由上海国方建设领投,老股东浦东科创、华登国际、湖山资本、正轩投资、林鑫投资持续增持。 伟创微电子成立于今

    06-17

  • 【创业24小时】2022年4月28日

    【创业24小时】2022年4月28日

    投融资昨天,国内市场共发生12起投资披露事件,其中先进制造3起(成岭微电子、欧冶半导体、华引芯)、智能硬件案例3起(桂花网络决明子、捷享灵月、施比特机器人)、医疗健康案例1个(爱瑞奇迹)、本地生活案例1个(DOC咖啡)、娱乐媒体案例1个(卢克星球)、企业服务案例1个

    06-18

  • 宸境科技获数千万美元融资,斯道资本、OPPO、广汽资本联合领投

    宸境科技获数千万美元融资,斯道资本、OPPO、广汽资本联合领投

    投资界(ID:pedaily)6月4日消息,航天智能公司宸境科技宣布获得数千万美元融资,由斯道资本领投,OPPO、广汽资本联合领投。 上汽加州创业投资基金、越秀产业基金、复星锐正资本、新旺达集团等也参与投资,老股东火山石资本持续支持投资。 本轮融资的完成体现了新老股东对宸

    06-17

  • 富士生物完成数千万元A轮融资,深圳尚扬投资

    富士生物完成数千万元A轮融资,深圳尚扬投资

    投资圈(ID:pedaily)2月1日报道称,成都富士生物科技有限公司(以下简称富士生物)与深圳尚扬资产管理有限公司(以下简称深圳尚扬)签署战略投资协议。 深圳尚扬对富士生物科技进行数千万元A轮投资。 该投资已于近期完成。 富士生物科技于今年4月成立。 公司专注于创新分子

    06-18

  • 耀明投资完成第二轮逾3300美元融资

    耀明投资完成第二轮逾3300美元融资

    2020年8月15日,专注于中国早期及成长期的私募股权投资基金耀明投资宣布完成首支基金——华禾创业投资基金(以下简称“基金”)第二期募资。 注册于开曼群岛的华禾创业投资基金已获得超过3300万美元的投资承诺,超过其最初3000万美元的融资目标。   在刚刚结束的第二轮融资

    06-18

  • 政府资金注入芯片行业:在很多环节消耗殆尽

    政府资金注入芯片行业:在很多环节消耗殆尽

    环球网讯 - 自由软件之父理查德斯托曼曾在网络上公开表示:他使用配备中文的电脑的原因CPU的一是国外公司的CPU有后门。 国内相关单位对部分国外CPU经过严格测试,确认存在功能不明的“冗余”模块。 他们还发现有超过20条未公开的指令,包括加密、解密和浮点运算。 其中,有3条

    06-06

  • 申通快递:1月快递服务业务收入25.65亿元,同比增长21.27%

    申通快递:1月快递服务业务收入25.65亿元,同比增长21.27%

    申通快递发布今年1月份业务简报。 报告显示,1月份快递服务业务收入25.65亿元,同比增长21.27%;完成业务额9.89亿元,同比增长17.30%。

    06-17

  • 万物新生活(爱回收)最新财报:营收29.6亿,非GAAP营业利润再创新高

    万物新生活(爱回收)最新财报:营收29.6亿,非GAAP营业利润再创新高

    投资界(ID:pedaily)8月23日消息,二手消费电子交易及服务平台万物新生(爱回收)集团发布第二季度业绩报告。 财报显示,今年第二季度,五五新生集团总营收29.6亿元,同比增长38.1%,超过业绩指引高端。 本季度实现非美国通用会计准则营业利润1万元(调整后,剔除员工股权激

    06-18