新规实施:申请手机号码将全面实行人脸比对
06-18
前言云安全小技巧系列文章是腾讯云账号与权限团队一线开发人员推出的一系列关于用户安全的小技巧。本系列文章旨在帮助腾讯云用户充分利用腾讯云提供的产品功能,安全解决实际生产中遇到的问题。
文章会提到很多应用场景以及错误的解决方案和正确安全的解决方案。本系列文章不仅会有场景分析,还会有技术分析,所以只要你是腾讯云的用户,无论你是技术新手还是技术专家,都可以一起讨论和实践。
对于用户提出的安全问题,我们将尽快跟进,并从平台角度提供安全合理的解决方案。场景 在实际工作中,我们经常会遇到用户想要定期审核自己的腾讯云账号。
每个用户都有不同的审核规则。审计规则可能有很多,我们就不详细描述了。
这里只是一个简单的例子,腾讯云客户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
上一步是根据云审计字段的映射创建的。 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中。然后就是定期的审核规则,上帝视角可能是这样的。
操作时序图可能是这样的。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-17
06-17
06-18
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用